2010-08-21 143 views
0

有人能幫我解決這個問題嗎?AS3預加載問題

我在Chrome和IE中預加載swf時遇到了一些問題。 它只適用於Firefox。

當我預加載Flash,Iam獲得bytesTotal爲0. 因此,當我bytesLoaded除以bytesTotal將導致無窮大。

我在GZIP上看過這篇文章。 http://patrickmcd.com/2009/04/20/flash-preloading-errors-turn-off-gzip/

但測試了響應壓縮沒有被壓縮。

這裏是我的預加載腳本:

addEventListener(Event.ENTER_FRAME, preloadSelf); 

function preloadSelf(e:Event):void { 
     var bytestotal:int = stage.loaderInfo.bytesTotal; 
     var bytesloaded:int = stage.loaderInfo.bytesLoaded; 
     var shellLoaded:int = bytesloaded/bytestotal * 100; 
     trace("bytestotal : ", bytestotal); 
     trace("bytesloaded : ", bytesloaded); 
     trace("shellLoaded : ", shellLoaded); 


     if (shellLoaded== 100) { 
      removeEventListener(Event.ENTER_FRAME, preloadSelf); 
      doSomethingElse(); 
     } 

}

回答

0
 
addEventListener(Event.ENTER_FRAME, preloadSelf); 

function preloadSelf(e:Event):void { 

    if(stage.loaderInfo.bytesLoaded > 0) 
    { 
     var bytestotal:int = stage.loaderInfo.bytesTotal; 
     var bytesloaded:int = stage.loaderInfo.bytesLoaded; 
     var shellLoaded:int = bytesloaded/bytestotal * 100; 
     trace("bytestotal : ", bytestotal); 
     trace("bytesloaded : ", bytesloaded); 
     trace("shellLoaded : ", shellLoaded); 


     if (shellLoaded== 100) { 
      removeEventListener(Event.ENTER_FRAME, preloadSelf); 
      doSomethingElse(); 
     } 
    } 
} 

+0

爲什麼他的包裹ENTER_FRAME邏輯,如果聲明的幫助? – Aaron 2010-08-21 17:22:54

+0

只能真正回答第3段,它不能解決任何問題,它是一個安全開關。由於存在一個EnterFrame事件,而不是在內容開始加載時插入的ProgressEvent,因此理論上函數可以返回0值。另一方面,我們不能肯定這是與鏈接文章中提到的情況相同的情況。 – PatrickS 2010-08-21 17:54:56