0

次のコードは、ファイル(画像である必要があります)を選択して画像コンポーネントに表示できるボタンを示しています。無効な画像(サポートされていない画像タイプ、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)"/>
4

1 に答える 1

1

残念ながら、これはFlexSDKのバグです。SWFLoader、メソッドloadContentを見てください。いくつかの場合(あなたを含む)のエラーのハンドラーはありません。このバグはSDK3.4で修正されているため、更新を行うことをお勧めします。

于 2010-04-22T12:15:46.223 に答える