as2.0与as3.0通信 localconnection
最近在游戏中遇到一个加载as2.0写的小游戏的问题,玩家在玩小游戏之后会提交一些数据给服务器,但是所有的数据借口都是as3.0写的,它们之间好像不能直接调用。于是我查了些资料,发现可以通过LocalConnection进行数据传输。
下面是我实现的代码:
//as2调用as3 //as2 var caller:LocalConnection = new LocalConnection(); caller.send("_AS3_L4cd_2008_08_02","submitScore",send_str); //1、链接的名字 2、as3中定义的方法 3、需要传递的参数 //as3 var server:LocalConnection = new LocalConnection() server.addEventListener(StatusEvent.STATUS,function(event:StatusEvent):void{ //这个监听必须要,不知道为什么 trace(event.level); }); server.connect("_AS3_L4cd_2008_08_02"); server.client = this; server.allowDomain("*"); server.allowInsecureDomain("*"); //as3调用as2 //as2 var server:LocalConnection = new LocalConnection(); server.connect("_AS3_L4cd_2012_11_22"); server.allowDomain = function(sendingDomain) { return true; }; //可以接受as3传递的值 server.managerInfo = function(s:String) { start_str = s; }; //as3 var caller:LocalConnection = new LocalConnection(); var manager:String = "1;Derek;2012-11-21;flkdjafljl31534153;"; flash.utils.setTimeout(function ():void{ caller.send("_AS3_L4cd_2012_11_22","managerInfo",manager); },1000); //as2的swf被加载完成一秒后调用,如果加载完成后立即调用会出现链接还未建立的情况
浙公网安备 33010602011771号