我有一个 AS3 Air 应用程序(桌面应用程序)- 让我们称之为 MAIN,它加载一堆 swf。因此,MAIN 加载 swfA,然后卸载它。 MAIN 有一个事件监听器,用于监听 swfA 的卸载。跟踪显示 swfA 在卸载事件触发时已成功卸载。然而,swfA 中包含的 as3 在 swfA 卸载后仍会执行很长时间。我怎么知道? swfA 中有一个计时器事件,即使 swfA 已卸载,该事件仍然会执行。
这是一个功能还是我的代码缺少任何内容。
这是 MAIN 中的基本代码
swfLoader.load(new URLRequest("swfA")); // load the SWF file
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onSwfLoad);
swfLoader.contentLoaderInfo.addEventListener(Event.UNLOAD, onSwfUnload);
这是 swfA 中的基本代码
var timer: Timer = new Timer(1000, 60);
timer.addEventListener(TimerEvent.TIMER, onTick);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimeUp);
timer.start();
卸载 swf 和所有 ActionScript3 不执行的期望行为,作为卸载 swf,至少我对它的理解是,它已卸载,消失了,不在这里!感谢您对此事的任何见解!
我提供了一个最适合我的更新答案,我在解决其他问题时偶然发现了它。事实证明答案非常简单。发布答案以防将来对某人有帮助。
事实证明,在 AS3 中,可以使用以下方法卸载 swf,并停止加载的 swf 执行其中的任何内容。这对我有用!
loader.unloadAndStop(true);