2012-07-24 89 views
1

我有一個加載到父級的子SWF的問題。加載是非常基本的,一切都應該沒問題。問題是當孩子有多個框架,SWF只是無限循環。完成後,孩子將有多個框架和前進/後退按鈕,但我已經將其蒸餾到兩個幀,每個幀都有不同的圖像,沒有代碼保存stop(); 我有另一個家長,我沒有創建(你不想看到),將接受一個AS2的SWF,但循環AS3,這是整個項目的起源... 任何洞察力非常感謝.. ..加載子SWF AS3 - > AS3 - 子循環無限期

這是父代碼:

var _swfLoader:Loader; 
var _swfContent:MovieClip; 

loadSWF("test4.swf"); 

function loadSWF(path:String):void { 
    var _req:URLRequest = new URLRequest(); 
    _req.url = path; 

    _swfLoader = new Loader(); 
    setupListeners(_swfLoader.contentLoaderInfo); 

    _swfLoader.load(_req); 
} 

function setupListeners(dispatcher:IEventDispatcher):void { 
    dispatcher.addEventListener(Event.COMPLETE, addSWF); 
    dispatcher.addEventListener(ProgressEvent.PROGRESS, preloadSWF); 
} 

function preloadSWF(event:ProgressEvent):void { 
    var _perc:int = (event.bytesLoaded/event.bytesTotal) * 100; 
    // swfPreloader.percentTF.text = _perc + "%"; 
} 

function addSWF(event:Event):void { 
    event.target.removeEventListener(Event.COMPLETE, addSWF); 
    event.target.removeEventListener(ProgressEvent.PROGRESS, preloadSWF); 

    _swfContent = event.target.content; 
    _swfContent.addEventListener("close", unloadSWF); 

    addChild(_swfContent); 
} 

function unloadSWF(event:Event):void { 
    _swfLoader.unloadAndStop(); 

removeChild(_swfContent); 
    _swfContent = null; 
} 
+2

這是一個iOS項目嗎? – weltraumpirat 2012-07-24 21:46:42

回答

1

難道DaveGaur回答你的問題嗎? AS3 Stop external swf

默認情況下,當MovieClip添加到舞臺時,它將播放。如果MovieClip只有一幀,這看起來就不一樣了。在所有框架和子項都被加載之前,不會調用完整事件。戴夫說,當第一幀準備好播放時,INIT事件被調用。因此,對於您的代碼,Dave可能會在setupListeners附近提供類似以下內容:

dispatcher.addEventListener(Event.INIT, stopContent, false, 0, true); 

function stopContent(event:Event) { 
    event.target.removeEventListener(Event.INIT, stopContent); 
    _swfContent = event.target.content as MovieClip; 
    _swfContent.stop(); 
}