在Flex 4中,我试图用浏览按钮获得的文件名,制作一个简单的浏览按钮来更新TextInput对象的文本字段。它不一定是完整的路径,我只想显示文件名。它只在第二次点击浏览按钮后显示,而不是在我第一次选择文件后显示。这是我的代码:
import flash.net.FileReference;
private var fileReferencer:FileReference = new FileReference();
private var excelFilter:FileFilter = new FileFilter("*.xlsx", "*.xlsx;*.xls;");
protected var fileName:String = new String("");
protected function BrowseButton_clickHandler(event:MouseEvent):void
{
fileReferencer.browse([excelFilter]);
fileName = fileReferencer.name;
fileInputAddress.text = fileName;
}
因此,概括一下,只有在第二次点击浏览按钮时,文件名才会显示在我的TextInput框中。
我做错了什么?
Flash Player是完全异步的。因此,在调用fileReferencer.browse()
之后无法立即获取文件名。这就是为什么你有一个来自过去通话的名字。要修复代码,您应该订阅select
和cancel
事件,并仅在select
事件之后更改文本(请参阅文档)。