複合型オブジェクト(FlexではRemoteClassとマークされている)をNetConnection経由で他のクライアントに送信する必要があります。
[RemoteClass]
public class ComplexType
{
public var _someString:String;
public var _someInt:int;
}
...そして使用する..。
_nc = new NetConnection();
_nc.connect("rtmp://localhost/echo/");
_nc.addEventListener(NetStatusEvent.NET_STATUS, _onNetStatus);
_nc.client = {};
_nc.client.echoCallback = _echoCallback;
var dto:ComplexType = new ComplexType();
dto._someInt = 4;
dto._someString = "abrakadabra";
_nc.call("echo", null, dto);
ただし、サーバー側のコールバック関数は強く型付けされたオブジェクトを理解せず、次のように返送するようです。
private function _echoCallback(...args):void
{
trace(ObjectUtil.toString(args));
/*
(Array)#0
[0] (Object)#1
_someInt = 4
_someString = "abrakadabra"
*/
}
サーバー側は次のようになります。
application.onAppStart = function () {
trace("Application.onAppStart > application started");
Client.prototype.echo = function (complexType /*ComplexType*/) {
trace("Client.echo > calling echo");
application.broadcastMsg("echoCallback", complexType);
}
}
NetConnectionを介して強く型付けされたオブジェクトを中継する方法はありますか?
EDIT1:ObjectUtil.toString()出力を含むコールバック関数のソースコードを追加しました