Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 闪光预加载仅在90%时启动_Flash_Actionscript 3_Flash Cs5_Preloader - Fatal编程技术网

Flash 闪光预加载仅在90%时启动

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_

我正在用Flash CS5/AS3开发一个游戏,我正在尝试让我的预加载程序工作。目前,当我加载带有“simulate download”的SWF文件时,该文件将被加载,但我的预加载程序不会显示。当负载约为90%时,预载器确实会显示一段时间

我没有选择“导出到第一帧”,因为这是互联网告诉我要做的,但是几乎每个版本的Flash/AS都有很多不同的教程,我相当困惑;我不知道如何解决这个问题

我的预加载程序代码如下:

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内容。