Flex: FileReference и необработанное изображение IOErrorEvent - PullRequest
0 голосов
/ 22 апреля 2010

В следующем коде показана кнопка, позволяющая выбрать файл (должен быть изображением) и отобразить его в компоненте изображения.Когда я выбираю недопустимое изображение (например, неподдерживаемый тип изображения, текстовый документ), я получаю следующую ошибку:

"Ошибка # 2044: необработанное IOErrorEvent :. text = Ошибка # 2124: загруженный файлнеизвестный тип. "

Я знаю, что могу передать FileFilter в FileReference: вызов просмотра, но это не главное.У меня вопрос ... Я хочу обработать 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 Ответ

1 голос
/ 22 апреля 2010

К сожалению, это ошибка Flex SDK. Взгляните на SWFLoader, метод loadContent. У него нет обработчика ошибок для нескольких случаев (включая ваш). Ошибка исправлена ​​в SDK 3.4, поэтому может быть хорошей идеей сделать обновление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...