2012-10-20 29 views
0

我确定这是一个简单的问题,我忽视了一些显而易见的事情。ActionScript3 Extrenal Preloader不会播放影片剪辑

我有一个外部预加载的SWF,在第一个(也是唯一的)框架中的一个图层上只包含影片剪辑(loader_graphic);并在第一个帧中的另一个图层上加载脚本。影片剪辑只是一个简单的循环动画,没有进度指示器。如果我不包含脚本,它的效果很好。

该脚本加载外部SWF,并且本身就像它应该那样工作。

当我将两者结合起来后,我得到了影片剪辑的第一帧,然后冻结,直到外部SWF被完全加载。一旦它被加载,它会播放一次并停止。我有点新的AS3,我知道,预装的是改变了公约之一,所以我可能没有它编码正确:

loader_graphic.play(); 

import flash.display.Loader; 
import flash.net.URLRequest; 
import flash.events.ProgressEvent; 


var l:Loader = new Loader(); 
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop); 
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done); 
l.load(new URLRequest("external.swf")); 

function loop(e:ProgressEvent):void 
{ 
    var perc:Number = e.bytesLoaded/e.bytesTotal; 
} 


function done(e:Event):void 
{ 
    loader_graphic.stop(); 
    addChild(l); 
} 

任何帮助表示赞赏。

+0

这可能没有关系,但请确保external.swf中的脚本没有指向舞台,因为在加载影片将其添加到addChild()之前,stage属性将为空。在external.swf的构造函数中加入这样的内容:'addEventListener(Event.ADDED_TO_STAGE,init);'并且在调用init()之后不要引用该阶段。 – null

回答

0

事实证明,预加载器一直在玩。它只是因为主SWF超载Flash播放器而停滞不前。

它正在加载的主要SWF包括从标准Web服务器流式传输的F4V视频,并且玩家一次处理所有内容太多。我嵌入了视频,而这一切都运行良好。