为什么在我第二次点击fileReferencer.browse按钮后TextInput会更新

时间:2011-06-20 14:10:37

标签: flash flex actionscript-3 textinput filereference

在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框中。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

Flash Player完全异步。因此,在调用fileReferencer.browse()后,您无法立即获取文件名。这就是为什么你有一个过去的电话名称。要修复代码,您应订阅selectcancel个事件,并仅在select个事件后更改文字(请参阅the documentation)。