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