AS3-AIR主节点与SWF发送方之间的LocalConnection

时间:2018-09-18 08:24:19

标签: android actionscript-3 flash air localconnection

我无法在为AIR设置的主文件和为FlashPlayer(常规SWF)设置的从文件之间使用本地连接。 这是两个测试文件的代码...

主/接收文件:

// test-AIR.fla
import flash.display.Loader;
var loadK1:Loader=new Loader();
loadK1.load(new URLRequest("K1/test-SWF.swf"));
addChild(loadK1);
var localConnection:LocalConnection = new LocalConnection();
localConnection.allowDomain("*");
localConnection.client = this;
localConnection.connect("_connectionName");
function onMethod(timeString:String):void {
    trace("onMethod called at: " + timeString);
    }

发件人...

// K1/test-SWF.fla
var localConnection:LocalConnection = new LocalConnection();
localConnection.send("_connectionName", "onMethod");
trace("END of test-SWF.swf");

然后,这是显示未调用onMethod的输出:

  

[SWF] test-AIR.swf-解压缩后1170字节

     

K1 / test-SWF.swf-解压缩后625字节

     test-SWF.swf [SWF]的

END

我有种尝试的感觉。有人可以指出出什么问题或我缺少什么吗? 谢谢,

1 个答案:

答案 0 :(得分:1)

由于两个SWF都位于同一SecurityDomain中,因此它们可以互不限制地访问彼此的显示列表。因此,我通过在显示列表层次结构中调用方法来解决了该问题:

MovieClip(this.parent.parent).onMethod();

这样,无论发布目标是什么(浏览器,台式机,移动设备...),都可以从子应用中调用该方法。

@Organis谢谢您的帮助!