我知道 AS3 加载器的类 unloadAndStop() 假设在我加载一个 SWF 阶段时卸载并停止所有内容,但它是否也会更改库中的对象(即使它们不在舞台上?)。
我将描述我的问题以解决它:我正在将 SWF 动态加载到我的 AS3 应用程序中,并使用 applicationDomain 和 getDefinition 从它们中提取所需的符号。我正在加载的 SWF/FLA 阶段是空的,我所拥有的只是库中导出的符号。
当我加载其中具有预编译剪辑的符号时会发生问题(在我的情况下,是 Partigen 发射器,但我认为这并不重要),它可能具有事件侦听器或计时器 - 这些剪辑上的代码停止当加载剪辑的父 SWF 的加载程序调用 unloadAndStop() 时,工作和行为很奇怪。我假设 unloadAndStop() 从中删除了所需的事件侦听器,但不知道为什么(同样,它不在舞台上)。
我会编写我自己的 unloadAndStop() 来过滤这些预编译的剪辑或检查那里真正发生了什么,但我很确定 unloadAndStop() 会做一些通过 API 不可用的事情。
什么可以解释这种行为?任何人都可以想到一个可能的解决方案?谢谢你。