Air アプリケーションは、次の外部 SWF を再生するまで、外部 SWF を何度も再生します。メモリ リークを避けるために、unloadAndStop() を使用しています。私は2つのタイマーを使用しています。最初の unloadAndStops は swf です。2 番目は 2 秒間待ってから、再度ロードします。
このアプローチ(弱参照の使用と相まって)は、メモリを抑制しているようです。ただし、タイマーではなくイベントリスナーを使用したいと思います。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);
}