![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: May 2008
Сообщений: 61
|
В десятке использую UILoader для загрузки изображений с сервера и с компа пользователя. С загрузкой с сервера все понятно. С компа тоже загружает, но не перехватывается событие Event.COMPLETE. Локально загружаю через loadBytes().
Выручайте: как быть? |
|
|||||
|
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
|
|
|||||
|
Регистрация: May 2008
Сообщений: 61
|
Цитата:
![]() |
|
|||||
|
Регистрация: 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, время: 12:00. |
|
|
« Предыдущая тема | Следующая тема » |
|
|