我的空中应用程序一遍又一遍地播放外部 swf,直到播放下一个外部 swf。为了避免内存泄漏,我使用了 unloadAndStop()。我正在使用两个计时器。第一个 unloadAndStops swf。第二个等待两秒钟,然后再次加载它。
这种方法(加上使用弱引用)似乎可以控制内存。但是,我宁愿不使用计时器,而是使用事件侦听器。当 unloadAndStop 完成然后再次加载 swf 时,是否有一个事件侦听器。
这是我的想法:
var TIMER_INTERVAL:int = int(duration);
var t:Timer = new Timer(TIMER_INTERVAL);
t.addEventListener(TimerEvent.TIMER,updateTimer,false,0,true);
t.start();
private function updateTimer(e:TimerEvent):void
{
swfLoader.unloadAndStop(true);
swfLoader.addEventListener(Event.UNLOAD,onSWFUnloadComplete,false,0,true);
}
private function updateTimer(e:TimerEvent):void
{
var swfSource2:String = File.applicationStorageDirectory.nativePath.toString();
swfLoader.load(swfSource2+'\\'+name_xml);
}