我正在开发一个Flash CS5 / AS3预加载器,带宽分析器告诉我我的第1帧大小很大 - 大约850kb。第2帧是128kb。这会在大量装载过程中产生白色屏幕,然后是短暂的,现在不必要的预加载器,然后是swf的其余部分。
我有两个框架的设置,第一个是带有以下代码的预加载器:
stop();
addEventListener(Event.ENTER_FRAME, preLoad)
function preLoad(event:Event):void{
var bytestoLoad:Number = loaderInfo.bytesTotal;
var numberLoaded:Number = loaderInfo.bytesLoaded;
if (bytestoLoad == numberLoaded){
removeEventListener(Event.ENTER_FRAME, preLoad)
gotoAndStop(2);
} else {
preLoaderInst.preLoaderFill.scaleX = numberLoaded/bytestoLoad;
preLoaderInst.bytesPercent.text = Math.floor(numberLoaded/bytestoLoad*100) + "%";
}
}
第2帧只有:
stop();
与fla关联的.as文件有很多其他信息,一个完整的游戏。如果此处有更多详细信息,请与我们联系。
我已经浏览了我的库和所有带有Linkage的符号,取消选中“在第1帧中导出”。预加载器也很小,只有文本框和形状。
如何在第1帧中获取更多关于它的加载细节,以便将其移动到第2帧?非常感谢您的时间!
答案 0 :(得分:0)
我对你的fla文件一无所知,但是如果你的库中有为AS导出的对象。他们有一个属性“第1帧出口”。这将使您的所有对象在第一帧加载。
希望它有所帮助,我更喜欢制作另一个加载main的swf文件。这将解决您的问题。取消选中“在第1帧中导出”对您没有多大帮助。 你的方式听起来像activeden preloaders,这不是最好的方式。
答案 1 :(得分:0)
您应该将第一帧留空,只需在其中添加预加载项。
在库中,检查为actionscript导出的所有符号。您必须取消选中“在第一帧导出”复选框。
此时你的符号根本不会在swf中导出,除非你把它们放在舞台上的某个地方。
我的建议是在第2帧上放置每个符号的一个实例,并通过直接跳到加载器中的第3帧跳过此帧:gotoAndStop(3);
根据建议,你应该考虑使用另一个swf加载主swf。