Actionscript 3 AS3预加载外部swf赢得';不能达到100%

Actionscript 3 AS3预加载外部swf赢得';不能达到100%,actionscript-3,flash,preloader,Actionscript 3,Flash,Preloader,我有一个flash接口文件,我正试图用预加载程序加载外部SWF。我的问题是,在尝试玩swf之前,预加载程序从未达到100%。预加载程序将显示,最多计数一个百分比,然后消失。然后swf在第一帧上挂起几秒钟(有时超过10秒!),同时完成加载。它最终开始发挥作用。装载机达到的百分比是完全随机的。一次可能达到40%,下一次仅为7% 我正在将外部SWF加载到舞台上一个名为“visloader”的空电影剪辑中 这是我的加载程序代码: loader= new SWFLoader("nameOfSlide.sw

我有一个flash接口文件,我正试图用预加载程序加载外部SWF。我的问题是,在尝试玩swf之前,预加载程序从未达到100%。预加载程序将显示,最多计数一个百分比,然后消失。然后swf在第一帧上挂起几秒钟(有时超过10秒!),同时完成加载。它最终开始发挥作用。装载机达到的百分比是完全随机的。一次可能达到40%,下一次仅为7%

我正在将外部SWF加载到舞台上一个名为“visloader”的空电影剪辑中

这是我的加载程序代码:

loader= new SWFLoader("nameOfSlide.swf", {container:visloader, autoPlay:false, onProgress:progressHandler, onComplete:completeHandler});

loader.load();
以下是我的进度和完整功能:

//--------------PROGRESS HANDLER----------------------------------------------------------------
function progressHandler(e:Event):void{
    //set alpha of loading animation to 1 so it is visible
    progClip.alpha = 1;
    progClip.loadPct.text = "" + Math.floor((loader.bytesLoaded/loader.bytesTotal)*100) + "%";
}

//--------------COMPLETE HANDLER-----------------------------------------------------------------

function completeHandler(e:Event):void{
    //hide the preloader animation
    progClip.alpha = 0;
    //myClip was created in the variables section above to hold the loaded swf
    //must use 'rawContent' to get control over the swf (play/pause, etc...)
    myClip = e.target.rawContent;       

    myClip.play();
}
“progClip”是舞台上的电影剪辑,带有一个旋转的圆圈和一个名为“loadPct”的文本字段

正在加载的外部主权财富基金相当大。有些超过5MB。不知道这是否重要。我为不同的客户端使用了完全相同的预加载程序,文件稍小,没有问题。我完全不知所措

我想以前没有人问过这个问题。我搜索了论坛,结果一无所获。希望这里有人知道我在说什么


提前谢谢

如果SWFLoader过早地触发了完整事件,并且您无法通过查看类本身来了解原因,那么您可以尝试在progressHandler中使用EnterFrame或计时器检查loader.ByTestTotal==loader.bytesLoaded的时间。当它发生时,移除相关的侦听器并从那里开始


我知道这是一个小问题,但如果SWFLoader不能正常工作,那就是修复类或获取另一个库。我现在要亲自去看看,希望这有帮助/有效

SWFLoader是自定义类吗?此外,您正在加载的SWF是否加载它自己的外部资源?是的。对不起,我应该在描述中加上这个。SWFLoader是一个greensock类(制作tweenlite的家伙)。你可以在这里找到:谢谢你的回复!我想你是对的,一定是SWFLoader打电话给complete太早了。我只是废弃了它,并以正常的方式加载了外部swf,具有单独的进度和完整的功能。我之所以使用SWFLoader,首先是因为我试图加载到一个空的movieClip中。我用代码设置了深度,所以我也不再需要了。现在可以了!谢谢你的想法!