Swf 卸载,但该 swf 中的 AS3 仍然执行

问题描述 投票:0回答:1

我有一个 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,至少我对它的理解是,它已卸载,消失了,不在这里!感谢您对此事的任何见解!

actionscript-3 air swfloader
1个回答
0
投票

我提供了一个最适合我的更新答案,我在解决其他问题时偶然发现了它。事实证明答案非常简单。发布答案以防将来对某人有帮助。

事实证明,在 AS3 中,可以使用以下方法卸载 swf,并停止加载的 swf 执行其中的任何内容。这对我有用!

    loader.unloadAndStop(true); 
© www.soinside.com 2019 - 2024. All rights reserved.