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被加载完成一秒后调用,如果加载完成后立即调用会出现链接还未建立的情况

 

posted on 2013-12-29 19:36  DerekYu  阅读(1032)  评论(0)    收藏  举报

导航