AS3 - AIR 主机和 SWF 发送器之间的 LocalConnection

AS3 - LocalConnection between AIR master & SWF sender

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

master/receiver 文件:

// 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 bytes after decompression

K1/test-SWF.swf - 625 bytes after decompression

END of test-SWF.swf[SWF]

我感觉我什么都试过了。有人可以指出哪里出了问题或我遗漏了什么吗? 谢谢,

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

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

这样,无论发布目标是什么(浏览器、桌面、移动设备...),都可以从子应用程序调用该方法。

@Organis 感谢您的帮助!