我遇到了将子SWF加载到父级中的问题。加载是非常基本的,一切都应该没问题。问题是当孩子有多个框架时,SWF会无限循环。完成后,孩子将有多个框架和前进/后退按钮,但我已经将它分解为两个框架,每个框架上有不同的图像,没有代码保存为stop(); 我有另一个我没有创建的父(你不想看)会接受AS2 SWF但在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;
}
答案 0 :(得分:1)
DaveGaur在这里回答了你的问题吗? AS3 Stop external swf
默认情况下,当将MovieClip添加到舞台时,它将播放。如果MovieClip只有一个帧,则看起来不会有所不同。在加载所有帧和子项之前,不会调用Complete事件。 Dave说当第一帧准备好播放时调用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();
}