Flex:FileReference和Image未处理的IOErrorEvent

时间:2010-04-21 23:10:45

标签: flex image filereference ioerror

以下代码显示了一个按钮,允许您选择文件(应该是图像)并将其显示在图像组件中。当我选择无效图像(例如不支持的图像类型,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)"/>

1 个答案:

答案 0 :(得分:1)

不幸的是,这是Flex SDK的一个错误。看看SWFLoader,方法loadContent。它没有几种情况的错误处理程序(包括在内)。该错误已在SDK 3.4中修复,因此最好进行更新。