我需要一些关于这个问题的澄清,因为我刚刚遇到加载到重用的加载器对象的swfs问题。
ApplicationDomain澄清需要
因此可以说我有3个SWF。
的main.swf
childA.swf
childB.swf
的main.swf中有一个装载机对象得到重用(myloader.load( “childA.swf”))和childA或childB SWF将通过用户交互加载。
这两个子swfs都有一个com包,该包中包含一个名为config的包。
配置文件对于刚刚命名的两个类都是不同的文件。
两个孩子也SWF派遣的主要监听
现在我有问题,如果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被创建并在加载时被分配给上下文。
这就像我现在可以整天加载和卸载的梦一样。
我的困惑是孩子发送的事件仍然有效,当我不认为主SWF应该接受它,因为它不在同一个appDomain中。
我的意思是不应该阻止事件?
唉唉, “因为他们是孩子域” 这是我失踪的关键。 –
哦,只是需要注意。我隐约记得大约3年前阅读过一些内容,说运行时会将应用程序域添加到包中。因为这是很久以前的事情,所以不要引用我的话,那时我没有付出任何努力。 –