以下代码显示了一个按钮,允许您选择文件(应该是图像)并将其显示在图像组件中。当我选择无效图像(例如不支持的图像类型,word文档)时,我收到以下错误:
“错误#2044:未处理的IOErrorEvent:。text =错误#2124:已加载的文件是未知类型。”
我知道我可以将FileFilter传递给FileReference:browse调用,但这超出了我的意思。我的问题是...... 我想自己处理IOErrorEvent,我错过了哪个事件监听器?
private var file:FileReference = new FileReference();
private function onBrowse():void {
file.browse(null);
file.addEventListener(Event.SELECT, handleFileSelect);
file.addEventListener(Event.COMPLETE, handleFileComplete);
file.addEventListener(IOErrorEvent.IO_ERROR, handleFileIoError);
}
private function handleFileSelect(event:Event):void {
file.load();
}
private function handleFileComplete(event:Event):void {
myImage.source = file.data;
}
private function handleFileIoError(event:Event):void {
Alert.show("handleFileIoError");
}
private function handleImageIoError(evt:IOErrorEvent):void {
Alert.show("handleImageIoError");
}
<mx:Button click="onBrowse()" label="Browse"/>
<mx:Image id="myImage" width="100" height="100" ioError="handleImageIoError(event)"/>
答案 0 :(得分:1)
不幸的是,这是Flex SDK的一个错误。看看SWFLoader,方法loadContent。它没有几种情况的错误处理程序(包括在内)。该错误已在SDK 3.4中修复,因此最好进行更新。