Hola Jorge, gracias por la respuesta. He conseguido crear una conexión, pero no consigo pasar un mensaje de chat a través de ella. A ver si puedes ver el error:
Clase Interaction.as
Código ActionScript :
private var ncFMS:NetConnection;
private var roFMS:GlobalObject;
public function Interaction():void
{
roFMS = new GlobalObject();
roFMS.addEventListener("onMessage", publishMessage);
ncFMS = new NetConnection();
ncFMS.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusFMS);
ncFMS.connect("rtmp://localhost:1936/live/0");
ncFMS.client = this;
}
private function onNetStatusFMS(e:NetStatusEvent):void
{
trace(e.info.code);
switch (e.info.code)
{
case "NetConnection.Connect.Success":
if (roFMS.connect("0", ncFMS, false) == true)
{
trace("true");
roFMS.sendMessage("Hello World"); //Aquí SÍ LLEGA
}
else
{
trace("Error creando el RED5 SharedObject");
}
break;
}
}
private function publishMessage(e:Event):void
{
trace("publishMessage = " + e.target.chatMsg);
}
Clase GlobalObject.as
Código ActionScript :
public class GlobalObject extends EventDispatcher
{
private var nc:NetConnection;
public var soName:String;
public var so:SharedObject;
public var connected:Boolean;
public var chatMsg:String = "";
public var docObj:Object
public var rect_ar:Array = new Array(4);
public function GlobalObject()
{
super();
}
public function connect(p_soName:String, p_nc:NetConnection, p_persistant:Boolean):Boolean
{
// store Connection reference
nc = p_nc;
soName = p_soName;
// create StoredObject
trace("connectat al SO = " + p_soName+ ", nc.uri = " + nc.uri + "-->" + p_persistant);
so = SharedObject.getRemote(p_soName, nc.uri, p_persistant);
so.client = this;
// setup the onSync events
so.addEventListener(SyncEvent.SYNC, onSync);
// connect to the SO
connected = !so.connect(p_nc);
return connected;
}
public function disconnect():void
{
so.close();
}
public function chatMessage(msg:String):void
{
trace("message2 " + msg); // Aquí NO LLEGA
chatMsg = msg;
dispatchEvent(new Event("onMessage", chatMsg));
}
public function onSync(evt:SyncEvent):void
{
// an update has been recieved, send out to the concerned parties
trace("onSync");
}
public function sendMessage(msg:String):void
{
trace("message " + msg); // Aquí SÍ LLEGA
so.send("chatMessage", msg);
}
}
Alguna idea? No me da errores de compilación ni nada por el estilo, pero no consigo que el "so.send()" mande la información.
Muchas gracias.