Se me conecta perfectamente con el servidor, pero me da el siguiente error cuando llamo a la función msgFromSrvr() -->
ReferenceError: Error #1069: Property msgFromSrvr not found on Chat and there is no default value.
Error #2044: Unhandled AsyncErrorEvent:. text=Error #2095: flash.net.SharedObject was unable to invoke callback msgFromSrvr. error=ReferenceError: Error #1069: Property msgFromSrvr not found on Chat and there is no default value.
Les dejo el código por si les puede ayudar:
Clase Chat.as:
Código ActionScript :
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.events.StatusEvent;
import flash.events.SyncEvent;
import flash.events.TimerEvent;
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
import flash.net.SharedObject;
import flash.utils.Timer;
public class Chat extends MovieClip
{
private var _father:MovieClip;
private var _chat_mc:MovieClip;
private var nc:NetConnection;
private var ro:SharedObject;
private var _userName:String;
private var _sUserNames:String;
private var _sAllUsers:String;
private var _firstMsg:String;
private var _auxMsg:String;
private var _serverPath:String = "rtmpt://localhost:82/SOSample/";
private var _chatChannel:String = "0";
NetConnection.defaultObjectEncoding = ObjectEncoding.AMF0;
SharedObject.defaultObjectEncoding = ObjectEncoding.AMF0;
public function Chat(father:MovieClip)
{
init("myName");
}
public function init(userName:String):void {
_userName = userName;
_chat_mc = new chat_mc();
_chat_mc.userName_lbl.text = _userName;
_chat_mc.send_btn.label = "Enviar";
_chat_mc.userList_lbl.text = "Usuarios conectados";
_chat_mc.conect_btn.label = "Conectar";
_chat_mc.disconect_btn.label = "Desconectar";
_chat_mc.minimize_cb.label = "Minimizar";
_chat_mc.chatBody.text = "";
_chat_mc.conect_btn.visible = false;
addChild(_chat_mc);
createConnection();
listeners();
}
private function listeners():void {
_chat_mc.send_btn.addEventListener(MouseEvent.CLICK, sendMessage);
_chat_mc.minimize_cb.addEventListener(MouseEvent.CLICK, minimizeHandler);
}
private function createConnection():void {
//Connect to Server
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
nc.connect(_serverPath + _chatChannel, _userName);
nc.client = this;
}
private function netStatus(e:NetStatusEvent):void {
if (e.info.code != "NetConnection.Connect.Success") {
_chat_mc.chatBody.text = "No se ha podido realizar la conexión\n";
}else {
ro = SharedObject.getRemote("ChatUsers", nc.uri);
if (ro) {
ro.addEventListener(SyncEvent.SYNC, OnSync);
ro.connect(nc);
ro.client = this;
}
}
}
private function OnSync(e:SyncEvent):void {
trace("sync "+e.target.data);
}
private function sendMessage(e:MouseEvent):void {
if (_chat_mc.message.text != "") {
nc.call("msgFromClient", null, _chat_mc.message.text);
_chat_mc.message.text = "";
}
}
private function msgFromSrvr(msg:String):void {
trace("msgFromSrvr");
writeMessage(msg);
}
private function writeMessage(msg:String):void {
_chat_mc.chatBody.text += msg;
}
}
// y el main.asc
application.onAppStart = function()
{
application.users_so = SharedObject.get("ChatUsers");
application.history = "";
application.nextId = 0;
}
application.onConnect = function(newClient, userName)
{
trace("conectem l'usuari: "+userName);
newClient.name = userName;
newClient.id = "u" + application.nextId++;
application.users_so.setProperty(newClient.name, userName);
application.acceptConnection(newClient);
//newClient.call("setHistory", null, application.history);
newClient.msgFromClient = function(msg) {
msg = userName + ": " + msg + "\n";
trace("msgFromClient "+msg);
application.users_so.send("msgFromSrvr", msg);
}
}
application.onDisconnect = function(client)
{
trace("disconnect: " + client.name);
application.users_so.setProperty(client.name, null);
}
Alguna idea?
Muchas gracias por su tiempo
Manel Pi
