0
我的空中應用程序一直播放外部swf,直到播放下一個外部swf。爲了避免內存泄漏,我使用了unloadAndStop()。我正在使用兩個定時器。第一個unloadAndStops swf。第二秒鐘等待兩秒鐘,然後重新加載它。as3 air unloadAndStop()事件監聽器或計時器
這種方法(加上使用弱引用)似乎可以保持內存不受影響。然而,我寧願不使用計時器,但事件監聽器。是否有一個事件監聽器,當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);
}
'unloadAndStop'不是一個異步方法,所以卸載事件是不合適的。 – BadFeelingAboutThis
感謝您的迴應。如果unloadAndStop是同步的,那麼爲什麼沒有函數{swfLoader.unloadAndStop(true); swfLoader.load(swfSource2 +'\\'+ name_xml);}更好地管理內存? – complexi
你能更具體嗎? – BadFeelingAboutThis