Optimization 有没有更好的方法来修复我的AS2预加载程序?

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

我在场景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 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();
    }
}