我需要对这个主题进行一些澄清,因为我刚刚遇到了将 swfs 加载到重用的加载器对象的问题。
所以假设我有 3 个 SWF。
Main.swf
childA.swf
childB.swf
Main.swf 中有一个加载器对象,可以重用 (myloader.load("childA.swf")),并且 childA 或 childB swf 将通过用户交互加载。
两个子 swf 都有一个 com 包,该包中有一个名为 config 的类。
配置文件是两个名称相同的类的不同文件。
两个子 swf 还调度 Main 侦听的事件
现在我遇到的问题是,如果先加载 childA,然后在加载 childB 之后,它仍然会显示为 childA。基本上,无论哪个最先被加载到该装载机中,都会成为赢家。
这让我发疯了,因为我所做的任何事情都不会导致 swf 卸载。直到我找到以下代码。
var appDomain:ApplicationDomain = new ApplicationDomain();
var context:LoaderContext = new LoaderContext(false, appDomain);
_contentPanel.load(new URLRequest(str), context);
我在某处谈论如何真正卸载 swf 的帖子上偶然发现了这段代码。显然,这也适用于如何真正加载 swf。
如您所见,在加载时创建了一个新的 appDomain 并将其分配给上下文。
这就像一个梦想,我现在可以整天加载和卸载。
我的困惑是孩子调度的事件仍然有效,当我认为 Main swf 不应该接收它时,因为它不在同一个 appDomain 中。
我的意思是不应该阻止事件吗?