|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2008
Сообщений: 61
|
UILoader.loadBytes() - как поймать Event.COMPLETE?
В десятке использую UILoader для загрузки изображений с сервера и с компа пользователя. С загрузкой с сервера все понятно. С компа тоже загружает, но не перехватывается событие Event.COMPLETE. Локально загружаю через loadBytes().
Выручайте: как быть? |
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
|
|
|||||
Регистрация: May 2008
Сообщений: 61
|
У вас какой-то свой UILoader, у которого есть свойство contentLoaderInfo? Дайте поюзать...
|
|
|||||
Регистрация: May 2008
Сообщений: 61
|
Странно, что у Вас работает... Может, разные версии flex_sdk? Я во Flash CS4 компилирую...
Вот тестовый код: // UILoader лежит на сцене // надо поймать событие загрузки изображения в этот лоадер uiLoader.addEventListener(Event.COMPLETE, load_complete); var file:FileReference = new FileReference(); file.addEventListener(Event.SELECT, file_select); file.addEventListener(Event.COMPLETE, file_complete); // кнопка тоже на сцене fileButton.addEventListener(MouseEvent.CLICK, fileButton_click); function fileButton_click(event:MouseEvent):void { var filter:String = "*.jpg; *.jpeg; *.gif; *.png"; var photoFileTypes:FileFilter = new FileFilter("Images" + " (" + filter + ")", filter); file.browse(new Array(photoFileTypes)); } function file_select(event:Event):void { file.load(); } function file_complete(event:Event):void { uiLoader.loadBytes(file.data); } function load_complete(event:Event):void { // этот код не выполняется! trace("load_complete"); } |
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Antisly
Ну я же написал: Слушать событие надо не у самого UILoader'a, а у его свойства contentLoaderInfo. |
|
|||||
Регистрация: May 2008
Сообщений: 61
|
А я вам уже отвечал, что у UILoader нет такого свойства! Не путайте с Loader!
|
|
|||||
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Извиняюсь, действительно с Loader'ом спутал.
Вот вариант (плохой, конечно, но как сделать по-другому, не знаю): var file:FileReference = new FileReference(); file.addEventListener(Event.SELECT, file_select); file.addEventListener(Event.COMPLETE, file_complete); fileButton.addEventListener(MouseEvent.CLICK, fileButton_click); function fileButton_click(event:MouseEvent):void { var filter:String = "*.jpg; *.jpeg; *.gif; *.png"; var photoFileTypes:FileFilter = new FileFilter("Images" + " (" + filter + ")", filter); file.browse(new Array(photoFileTypes)); } function file_select(event:Event):void { file.load(); } function file_complete(event:Event):void { uiLoader.addEventListener(Event.ENTER_FRAME, checkContent); uiLoader.loadBytes(file.data); } function checkContent(event:Event):void { if (uiLoader.content != null) { uiLoader.removeEventListener(Event.ENTER_FRAME, checkContent); load_complete(); } } function load_complete():void { trace("load_complete"); } |
|
|||||
Регистрация: May 2008
Сообщений: 61
|
Сделал по-другому: использую Loader.loadBytes(), отслеживаю Event.COMPLETE, делаю что надо, а затем присваиваю этот лоадер свойству source у UILoader
|
|
|||||
можеш показати що вийшло?
|
Часовой пояс GMT +4, время: 09:25. |
|
« Предыдущая тема | Следующая тема » |
|
|