File.getdirectorylisting isynchronously

时间:2013-07-23 06:59:52

标签: actionscript-3 flex flex4.5

我正在异步地从服务器下载库。在其DirectoryListing处理程序中,我正在更新状态栏。但是更新的状态栏没有呈现.Below是处理程序的代码。

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

任何人都可以告诉我一个解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您正在使用getDirectoryListing()而不是使用名为getDirectoryListingAsync()的函数的异步版本。 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);
    }
}

请注意,即使这样也不会让您显示进度条,因为您将在一次回调中获得整个响应。您可以使用微调器,这表示应用程序正在等待响应。触发回调后,关闭动画并显示结果。