我需要通過NetConnection發送複雜類型的對象(在Flex中標記爲RemoteClass)到其他客戶端。如何通過NetConnection將複雜類型轉發給FMS?
[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()輸出
請問您的服務器AS「知道」之類的,你要發送?類文件必須包含在兩端才能解析ComplexType。 – weltraumpirat 2011-02-22 19:03:10
如何在FMS 4中定義自定義類?我只想傳遞對象。 – 2011-02-22 23:29:26