如何在Adobe FLEX中创建“浏览文件夹”对话框?

时间:2011-02-15 08:50:09

标签: flex actionscript-3

了解某人,如何在Adobe FLEX中创建“浏览文件夹”对话框?这有可能吗?

感谢名单。

3 个答案:

答案 0 :(得分:19)

如果是Air应用程序,您可以这样做:

var f : File = new File;
f.addEventListener(Event.SELECT, onFolderSelected);
f.browseForDirectory("Choose a directory");

如果它是纯粹的As3应用程序,则无法浏览文件夹,只需通过FileReference类浏览文件。

答案 1 :(得分:5)

在Web中,用于多文件上传,(对于单个文件上传,使用FileRefernce)

private var _refAddFiles:FileReferenceList;
private function browse():void
{
    _refAddFiles = new FileReferenceList();
    var fileFilter:FileFilter=new FileFilter("*.jpg","*.jpg;*.jpeg;");
    _refAddFiles.addEventListener(Event.SELECT, onSelectFile);
    _refAddFiles.browse([fileFilter]);
}

<mx:Button click="browse"/>

这将有效,选择后你想做什么,

private function onSelectFile(event:Event):void
{
    _arrUploadFiles = [ ];
    if (_refAddFiles.fileList.length >= 1)
    {               
        for (var k:Number = 0; k < _refAddFiles.fileList.length; k++)
        {
            _arrUploadFiles.push({ name: _refAddFiles.fileList[k].name,
                                    file: _refAddFiles.fileList[k]});
        }
    }

}

答案 2 :(得分:3)

这是一个快速功能集,用于在Flex中创建一个漂亮的文件夹浏览器:

private var file:File = new File();

private function pickFile(event:MouseEvent):void {
    file.addEventListener(Event.SELECT, openFile);              
    file.browseForDirectory("Select folder...");
}

private function openFile(event:Event):void{
    folderPath.text = file.nativePath;
}

第一个函数处理文件夹浏览器,第二个函数使用完整文件夹路径填充文本输入。

<强> HOWTO:

在舞台上,创建一个简单的mx:按钮,并为click事件添加对pickFile()函数的调用:

<mx:Button click="{pickFile(event);}" />

然后,在舞台上放置一个mx:TextInput组件,以便在选择后显示文件夹路径:

<mx:TextInput id="folderPath" editable="false" />

通过这种方式,您可以单击按钮以显示系统文件夹浏览器,并选择一个文本输入以显示选择后的完整文件夹路径。

要改善按钮外观,可以嵌入一个漂亮的文件夹图标: - )

只是我的2c。 : - )