2010-05-10 61 views
0

我有一個SWF,我添加了一個Preloader場景。當我在Flash CS4中按Ctrl + Enter時,預加載器工作正常,並選擇View> Simulate Download。AS3 Preloader不能在瀏覽器中使用,但在Flash Professional中使用

預加載器顯示,當電影滿了時,電影按預期繼續。

但是,當我將SWF嵌入到某些HTML中,並在任何瀏覽器中從本地主機加載時,電影不會繼續,直到我右鍵單擊並選擇「播放」。

當我使用Charles Web Debugging Proxy工具並扼制連接時,再次預加載正常工作,並且電影在完成時繼續?

任何想法可能會出錯?下面是預加載來源:

import flash.events.ProgressEvent; 

loaderInfo.addEventListener(ProgressEvent.PROGRESS, update); 

function update(e:ProgressEvent):void 
{ 
    var percent:Number = Math.floor((e.bytesLoaded * 100)/e.bytesTotal); 

    if(preloaderClip is MovieClip) 
    { 
     preloaderClip.gotoAndStop(percent); 
    } 

    if(percent == 100) 
    { 
     play(); 
    } 
} 

// Extra test for IE 
var percent:Number = 
    Math.floor((this.loaderInfo.bytesLoaded * 100)/this.loaderInfo.bytesTotal); 

if(percent == 100) 
{ 
    nextFrame(); 
} 
stop(); 

回答

0

耶!修復!我簡單地添加了以下代碼的ADDED_TO_STAGE事件監聽器:

private function onAddedToStage(event:Event):void 
{ 
    var percent:Number = 
     Math.floor((this.loaderInfo.bytesLoaded * 100)/this.loaderInfo.bytesTotal); 

    MonsterDebugger.trace(this, "ADDED_TO_STAGE " + percent + " loaded..."); 

    if(percent == 100) 
    { 
     gotoAndPlay("in", "Main"); 
    } 
} 
1

你可能在你的代碼的某種競爭條件,因此,當負荷接近瞬間它未能趕上COMPLETE事件或類似的規定。

要比沒有任何代碼看起來更加具體很難。

+0

Kewl,我添加了preloader的源代碼,感謝您的及時回覆! – 2010-05-10 15:07:03

相關問題