2010-08-21 6 views
0

누구든지이 문제를 해결할 수 있습니까?AS3 사전로드 문제

Chrome 및 IE에서 swf를 미리로드하는 중 일부 문제가 있습니다. Firefox에서만 작동합니다.

플래시가 미리로드 될 때 총 바이트 수는 0으로 계산됩니다. 그래서 bytesTotal은 무한대로 나뉩니다.

이 글은 GZIP에서 읽었습니다. http://patrickmcd.com/2009/04/20/flash-preloading-errors-turn-off-gzip/

그러나 응답 압축이 gzipped 않았는지 테스트했습니다.

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

가 왜 if 문의 도움으로 자신의 ENTER_FRAME 논리를 포장 않습니다

여기 내 사전로드 스크립트입니까? – Aaron

+0

단락 3에 실제로 대답하기 만하면 문제가 해결되지 않으며 보안 스위치입니다. 콘텐츠가로드되기 시작할 때 진행되는 ProgressEvent가 아닌 EnterFrame 이벤트가 있기 때문에 이론적으로 함수가 0 값을 반환 할 수 있습니다. 다른 한편, 이것이 링크 된 기사에서 언급 된 것과 동일한 경우 시나리오라는 것은 확실하지 않습니다. – PatrickS