Flash 闪光预加载仅在90%时启动
我正在用Flash CS5/AS3开发一个游戏,我正在尝试让我的预加载程序工作。目前,当我加载带有“simulate download”的SWF文件时,该文件将被加载,但我的预加载程序不会显示。当负载约为90%时,预载器确实会显示一段时间 我没有选择“导出到第一帧”,因为这是互联网告诉我要做的,但是几乎每个版本的Flash/AS都有很多不同的教程,我相当困惑;我不知道如何解决这个问题 我的预加载程序代码如下:Flash 闪光预加载仅在90%时启动,flash,actionscript-3,flash-cs5,preloader,Flash,Actionscript 3,Flash Cs5,Preloader,我正在用Flash CS5/AS3开发一个游戏,我正在尝试让我的预加载程序工作。目前,当我加载带有“simulate download”的SWF文件时,该文件将被加载,但我的预加载程序不会显示。当负载约为90%时,预载器确实会显示一段时间 我没有选择“导出到第一帧”,因为这是互联网告诉我要做的,但是几乎每个版本的Flash/AS都有很多不同的教程,我相当困惑;我不知道如何解决这个问题 我的预加载程序代码如下: stop(); this.addEventListener(Event.ENTER_
stop();
this.addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void{
var total:Number = this.stage.loaderInfo.bytesTotal;
var loaded:Number = this.stage.loaderInfo.bytesLoaded;
percent_txt.text = Math.floor((loaded/total)*100)+ "%";
if (total == loaded){
play();
this.removeEventListener(Event.ENTER_FRAME, loading);
}
}
但不确定这是否有帮助。希望有人知道一个快速解决方法。我在某个地方读到,这可能与声音文件有关(我确实有一些这样的文件),但是,是的,不太确定从哪里开始
提前谢谢 编译和运行应用程序时,单击菜单中的查看,然后单击带宽探查器。这将让您看到每个帧有多大,即在该帧上加载了多少数据。如果第一帧的大小超过30kb,则会出现问题。试着让你的预加载程序尽可能简单(没有图像等)。同样如您所说,确保您已取消选择所有资产上的“在第1帧中导出” 我还将用
root.loaderInfo
替换this.stage.loaderInfo
stop();
var total:uint = root.loaderInfo.bytesTotal;
var loaded:uint = 0;
addEventListener(Event.ENTER_FRAME, loading);
function loading(e:Event):void
{
loaded = root.loaderInfo.bytesLoaded;
percent_txt.text = Math.floor((loaded/total)*100)+ "%";
if(total >= loaded)
{
removeEventListener(Event.ENTER_FRAME, loading);
play();
}
}
如果在主时间轴的第1帧上有任何内容,您将永远无法预加载该内容-只有在第1帧上的内容加载后,您的电影才会开始播放。尝试将所有非必要的“内容”移动到第2帧,并将该帧设置为actionscript的导出帧。您现在应该可以在90%之前看到您的预加载程序。预加载完成后,使用gotoAndPlay(2)将电影发送到第2帧 或者(可能是最佳实践),制作一个“loader”swf,其唯一功能是加载主swf。将您的预加载程序放在加载程序swf中,而不放其他内容,并将所有其他内容保留在主swf中。使用Loader类或第三方加载库(如BulkLoader)加载主swf,并在加载完成后将其放置在舞台上
希望这会有所帮助。可能您在第一帧中仍然引用了一些较重的内容。如果您在Windows上,可以尝试使用SWix()分析swf。查找SymbolClass内容。