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



在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()之后无法立即获取文件名。这就是为什么你有一个来自过去通话的名字。要修复代码,您应该订阅selectcancel事件,并仅在select事件之后更改文本(请参阅文档)。

相关内容

  • 没有找到相关文章

最新更新