为啥我第二次点击 fileReferencer.browse 按钮后 TextInput 会更新
Posted
技术标签:
【中文标题】为啥我第二次点击 fileReferencer.browse 按钮后 TextInput 会更新【英文标题】:Why is TextInput updating after I hit fileReferencer.browse button a second time为什么我第二次点击 fileReferencer.browse 按钮后 TextInput 会更新 【发布时间】:2011-09-18 17:52:37 【问题描述】:在 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 框中。
我做错了什么?
【问题讨论】:
请不要在帖子标题中添加标签(AKA Flex 4)。谢谢! 【参考方案1】:Flash Player 是完全异步的。所以你不能在调用fileReferencer.browse()
后立即获得文件名。这就是为什么你有一个来自过去电话的名字。要修复您的代码,您应该订阅 select
和 cancel
事件并仅在 select
事件之后更改文本(请参阅 the documentation)。
【讨论】:
就在您回答这个问题时,我发现一篇博客文章使用了您的确切答案。非常感谢你的帮助。如果有人对该链接感兴趣,那就是here以上是关于为啥我第二次点击 fileReferencer.browse 按钮后 TextInput 会更新的主要内容,如果未能解决你的问题,请参考以下文章
当我第二次设置它的 ItemsSource 时,为啥这个选择器会崩溃?