我无法在为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
我有种尝试的感觉。有人可以指出出什么问题或我缺少什么吗? 谢谢,
答案 0 :(得分:1)
由于两个SWF都位于同一SecurityDomain中,因此它们可以互不限制地访问彼此的显示列表。因此,我通过在显示列表层次结构中调用方法来解决了该问题:
MovieClip(this.parent.parent).onMethod();
这样,无论发布目标是什么(浏览器,台式机,移动设备...),都可以从子应用中调用该方法。
@Organis谢谢您的帮助!