2012-07-24 68 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(); 
}