fms回调as3和as3调用fms
fms的asc目前还不是as3,所以as3要连接fms只要
var myNetConnection:NetConnection = new NetConnection();
_myNetConnection.objectEncoding = ObjectEncoding.AMF0;
_myNetConnection.addEventListener(NetStatusEvent.NET_STATUS,netStatusEventHandle);
_myNetConnection.connect("your fms uri",...arg);
function netStatusEventHandle(e:NetStatusEvent):void {
//your handle code
}
连接fms至少没有因为as2到as3有太多的问题,只要设置下objectEncoding就好了
as3调用fms
客户端修改netStatusEventHandle
function netStatusEventHandle(e:NetStatusEvent):void {
if (e.info.code == "NetConnection.Connect.Success") {
_myNetConnection.call("serverHandle",new Responder(callServerSucHandle,callServerFailHandle),...arg);
}
}
function callServerSucHandle(rO:Object):void {
//success handle code
}
function callServerFailHandle(rO:Object):void {
//failed handle code
}
fms中的main.asc
application.serverHandle = function (...arg) {
//callServer handle code
};
就OK啦
目前麻烦的还是fms调用客户端的netconnection
按as2时代,还是相当的简单
_yourNetConnection.serverCallBackFun = function (..arg){
}
main.asc
只要client.call("serverCallBackFun ",responderHandle,...arg);就搞定
function responderHandle(...arg) {
}
as3就不能这样啦,当初我试过用一个myNetConnection去派生,问题多多
后来才发现NetConnection有个Client属性,包括set get,问题就解决啦
写一个ClientObj类
package {
public class ClientObj{
public function callClient(...arg):void {
//如果要return也是可以的,修改相应就好啦,记得main.asc中的responderHandle要修改就好了
}
}
}
之后就
var _clientObj:ClientObj = new ClientObj();
_myNetConnection.client = _clientObj;
好啦
just try and have fun!