2010-02-26 4 views
1

ZIP 보관 파일에서 여러 이미지를로드하고 ZIP 보관 파일의 모든 파일을로드 한 후 몇 가지 작업을 수행해야합니다. 나는 FZip 라이브러리를 사용하여 ZIP 파일로 조작합니다. 내 문제는 때로는 모든 파일의 로딩이 진행되지 않는다는 것입니다. 이 코드에서플래시 : 여러 이미지로드 및 전체로드 예상

내가 시작로드 프로세스 : 때때로

loadedImages = zip.getFileCount(); 
trace("Starting... " + loadedImages); 
for (var i:uint = 0; i < loadedImages; i++) 
{ 
    var file:FZipFile = zip.getFileAt(i); 
    // NamedLoader - common flash.display.Loader who remembers the name of the file 
    var pictLdr:Loader = new NamedLoader(file.filename); 
    trace("start " + i); 
    pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); 
    pictLdr.loadBytes(file.content, new LoaderContext(false, ApplicationDomain.currentDomain)); 
} 

private function imageLoaded(e:Event):void 
{ 
    // do some actions, like getting file content and store it 
    trace("Loaded: " + loadedImages); 
    loadedImages--; 
    // if all images has been loaded, I show some scene 
    if (loadedImages == 0) 
    { 
     showScene(); 
    }  
} 

모든 이미지는 다운로드하지 난이 추적 출력이 있습니다

Starting... 36 
start 0 
start 1 
start 2 
start 3 
start 4 
start 5 
start 6 
start 7 
start 8 
start 9 
start 10 
start 11 
start 12 
start 13 
start 14 
start 15 
start 16 
start 17 
start 18 
start 19 
start 20 
start 21 
start 22 
start 23 
start 24 
start 25 
start 26 
start 27 
start 28 
start 29 
start 30 
start 31 
start 32 
start 33 
start 34 
start 35 
Loaded: 36 
Loaded: 35 
Loaded: 34 
Loaded: 33 
Loaded: 32 
Loaded: 31 
Loaded: 30 
Loaded: 29 
Loaded: 28 
Loaded: 27 
Loaded: 26 
Loaded: 25 
Loaded: 24 
Loaded: 23 
Loaded: 22 
Loaded: 21 
Loaded: 20 
Loaded: 19 
Loaded: 18 
Loaded: 17 
Loaded: 16 
Loaded: 15 
Loaded: 14 
Loaded: 13 

모든 로더가 시작을 알 수있다, 그러나 모든 마무리 . 예외는 발생하지 않으며 때때로 발생합니다. 나는 왜 그런지 이해하지 못한다.

+0

피들러 (Fiddler) 또는 파이어 버그 (Firebug)를 사용하여 실패한 요청을 확인해 보셨습니까? –

+0

예, 시도했습니다. 브라우저 캐시를 끄면 GET 쿼리가 전송되고 응답은 OK (200)입니다. 그러나 때로는 이미지가 완전히로드되지 않습니다. –

답변

3

로드를 큐에 넣고 한 번에 하나씩 실행하십시오. 즉, image_0이 완료 될 때까지 image_1로드를 시작하지 마십시오. 비슷한,

나는 비슷한 행동을 보았고 부하를 대기열에 넣어 문제를 해결했습니다. 무슨 일이 벌어 질지는 Flash가 모든 Loader 객체에서 하나의 LoaderInfo 객체 만 사용한다는 것입니다.이 경우에는 내게 인용하지 마십시오. 그런 일련의 파일을로드하려고 시도하면 불규칙하게 동작 할 수 있습니다. 행운을 빕니다!

+0

정말 작동합니다. 고맙습니다! –