Optimization 有没有更好的方法来修复我的AS2预加载程序?
我在场景1中有一个带有预装器的游戏,时间线上有以下代码Optimization 有没有更好的方法来修复我的AS2预加载程序?,optimization,actionscript-2,preloading,Optimization,Actionscript 2,Preloading,我在场景1中有一个带有预装器的游戏,时间线上有以下代码 stop(); loadingBar._xscale = 1; var loadingCall:Number = setInterval(preloadSite, 50); function preloadSite():Void { var siteLoaded:Number = _root.getBytesLoaded(); var siteTotal:Number = _root.getBytesTotal(); var percen
stop();
loadingBar._xscale = 1;
var loadingCall:Number = setInterval(preloadSite, 50);
function preloadSite():Void {
var siteLoaded:Number = _root.getBytesLoaded();
var siteTotal:Number = _root.getBytesTotal();
var percentage:Number = Math.round(siteLoaded/siteTotal*100);
loadingBar._xscale = percentage;
bytesDisplay.text = percentage + "%";
if (siteLoaded >= siteTotal) {
clearInterval(loadingCall);
gotoAndPlay("StartMenu", 1);
}
}
当没有音乐文件链接到第1帧时,代码工作正常。如果有链接的音乐文件,则在预加载程序显示之前加载所有内容
我发现预加载非常好,它谈到了链接问题,建议我将所有大文件放在第2帧,在预加载之后,然后跳过它们。我按照建议将我的大文件放在第2帧上,预加载程序再次工作
我的问题是,有没有更好的办法。这个解决方案看起来像是黑客攻击。我能想到的唯一更好的选择是,不要将MP3文件存储在Flash文件中,而是将其与Flash文件的内容一起加载到预加载程序中。如果您将MP3文件存储在其他联机位置(如服务器上),则可以这样做
stop();
loadingBar._xscale = 1;
var sound:Sound = new Sound();
sound.loadSound("http://www.example.com/sound.mp3", false);
var loadingCall:Number = setInterval(preloadSite, 50);
function preloadSite():Void {
var siteLoaded:Number = _root.getBytesLoaded()+sound.getBytesLoaded();
var siteTotal:Number = _root.getBytesTotal()+sound.getBytesTotal();
var percentage:Number = Math.round(siteLoaded / siteTotal * 100);
loadingBar._xscale = percentage;
bytesDisplay.text = percentage + "%";
if (siteLoaded >= siteTotal) {
clearInterval(loadingCall);
gotoAndPlay("StartMenu", 1);
sound.start();
}
}