2013-07-23 5 views
1

서버에서 비동기 적으로 라이브러리를 다운로드하고 있습니다. Directory_Listing 처리기에서 상태 표시 줄을 업데이트 중입니다. 업데이트 된 상태 표시 줄은 렌더링되지 않습니다. 아래는 핸들러 코드입니다.File.getdirectorylisting asynchronousously

private function fetchAllFilesFromDirectory(f:File):void 
    { 
     var list:Array=f.getDirectoryListing(); 
     Application.application.status = "Downloading Local Library..."+list.length+"% Loaded"; 
    } 

아무도 해결책을 말해 줄 수 있습니까?

미리 감사드립니다.

+0

누군가가 여전히 여기에서 같은 작업을 수행하는 코드를 찾고 있다면 - http://stackoverflow.com/a/31763242/5180320 –

답변

3

getDirectoryListingAsync()이라는 함수의 비동기 버전을 사용하는 대신 getDirectoryListing()을 사용하고 있습니다. Adobe 웹 사이트의 샘플에이 샘플을 사용하는 방법이 나와 있습니다.

import flash.filesystem.File; 
import flash.events.FileListEvent; 

var directory:File = File.userDirectory; 
directory.addEventListener(FileListEvent.DIRECTORY_LISTING, directoryListingHandler); 
directory.getDirectoryListingAsync(); 

function directoryListingHandler(event:FileListEvent):void { 
    var list:Array = event.files; 
    for (var i:uint = 0; i < list.length; i++) { 
     trace(list[i].nativePath); 
    } 
} 

하나의 콜백으로 전체 응답을 얻으므로 진행률 표시 줄을 표시 할 수 없습니다. 대신 응용 프로그램이 응답을 기다리고 있음을 나타내는 회 전자를 사용할 수 있습니다. 콜백이 트리거되면 애니메이션을 끄고 결과를 표시합니다.