|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
FileReference крашит плеер при попытке повторной загрузки файла
Код один в один взят из хэлпа.
1. Грузим картинку test.jpg. Она, естественно, грузится. 2. Не закрывая клиента, открываем ее редактором, меняем, например, размер холста и сохраняем под тем же именем test.jpg. 3. Пытаемся повторно загрузить картинку test.jpg - выполнение доходит до fileRef.load() и все с грохотом падает, что на сайте, что в локальном дебагплеере. Как обработать ситуацию? Кусок код загрузки, если кому лень лезть в хэлп: private function upload() : void { fileRef = new FileReference(); fileRef.addEventListener(Event.SELECT, selectHandler); fileRef.addEventListener(Event.COMPLETE, completeHandler); fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadCompleteDataHandler); fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler); var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png"); var allTypes:Array = new Array(imageTypes); try { var success:Boolean = fileRef.browse(allTypes); } catch (error:Error) { trace("Unable to browse for files."); } } private function selectHandler(e:Event):void { trace("selectHandler: name=" + fileRef.name ); fileRef.load(); } В общем, проблема оказалась в том, что создавался экземпляр FileReference на каждую загрузку. Пока грузили файлы с разными именами - все было ок. Сделал так, чтобы объект FileReference в приложении был в единственном экземпляре и и все заработало. |
|
|||||
Регистрация: Aug 2012
Сообщений: 108
|
нужна защита от дурака - чтобы второй раз не вызывался пока первый не закрыт
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
|
Часовой пояс GMT +4, время: 13:48. |
|
« Предыдущая тема | Следующая тема » |
|
|