Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема с Loader (http://www.flasher.ru/forum/showthread.php?t=172586)

Sal 13.12.2011 13:56

Проблема с Loader
 
Товарищи, подскажите в чем может быть затык:
гружу фотку пользователя вконтакте, вот так:

Код AS3:

var img_load = new Loader;
var pic_cont:Bitmap = new Bitmap;
var mc_MyClip:MovieClip = new MovieClip;
 
img_load.contentLoaderInfo.addEventListener(Event.COMPLETE, on_pic_load);
img_load.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSECURITY_ERROR);
img_load.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIO_ERROR);                       
 
function onSECURITY_ERROR(event:SecurityErrorEvent)  {
        debug_outpt.appendText("Ошибка запроса к серверу: " + event.toString() + "\n");
}
 
function onIO_ERROR(event:IOErrorEvent)  {
        debug_outpt.appendText("Ошибка запроса к серверу: " + event.toString() + "\n");
}
 
function on_pic_load(e:Event):void {
var userPhotoBitmap:Bitmap = Bitmap(e.target.content);
mc_MyClip.addChild(userPhotoBitmap);
debug_outpt.appendText("Фотка загружена \n");
}
 
img_load.load(new URLRequest(pic_url));

При тестировании локально - фотки грузятся на ура, заливаю вконтакт, перестают грузиться (не срабатывает on_pic_load() ).
Ссылка на pic_url правильная и локально и в загруженном приложении вконтакт, проверял 100% (пример ссылки: http://cs9851.vkontakte.ru/u56032503/b_f0ded3fd.jpg).
SecurityErrorEvent или IOErrorEvent не вызываются, просто тишина. Кто может помочь с бедой?

Zebestov 13.12.2011 15:14

Код нужно оформить тегами [АS3][/АS3] (кнопка AS3 в редакторе сообщения)

BuKT 13.12.2011 15:19

Может проблема в том, что флешка создаётся с атрибутом local-with-filesystem и находится в "доверенной" папке?

GBee 13.12.2011 15:50

А если сам лоадер добавить на mc_MyClip, а про битмап совсем закомментить, работает?

maxkar 13.12.2011 16:55

Цитата:

Сообщение от Sal (Сообщение 1051124)
Код AS3:

img_load.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onIOError);
 
function onIOError(event:IOErrorEvent) {
debug_outpt.appendText("Ошибка: " + event.toString() + "\n");
}

SecurityErrorEvent или IOErrorEvent не вызываются, просто тишина. Кто может помочь с бедой?

И плеер при этом не дебажный... По документации SecurityErrorEvent не является IOErrorEvent. Так что должно быть исключение несоответствия типов при диспетчеризации сообщения.

Sal 13.12.2011 19:29

Цитата:

Сообщение от GBee (Сообщение 1051174)
А если сам лоадер добавить на mc_MyClip, а про битмап совсем закомментить, работает?

да, так сработало. добавил лоадер в мувик без ожидания события окончания загрузки, буквально так:

Код AS3:

loader_MyLoader.load(new URLRequest(pic_url));
mc_MyClip.addChild(img_load);

и все получилось. Не пойму только теперь как поймать событие окончания загрузки фотки, чтобы обработать фотку в битмапе.

Цитата:

Сообщение от maxkar (Сообщение 1051178)
И плеер при этом не дебажный... По документации SecurityErrorEvent не является IOErrorEvent. Так что должно быть исключение несоответствия типов при диспетчеризации сообщения.

извиняюсь, накосячил при копировании кода в пост, поправил код примера. плеер дебажный, но ошибок не выдает

Цитата:

Сообщение от BuKT (Сообщение 1051171)
Может проблема в том, что флешка создаётся с атрибутом local-with-filesystem и находится в "доверенной" папке?

локально local-with-filesystem
когда запускаю вконтакте, видимо remote
но судя по предыдущему опыту с прямым добавлением на мувик загрузка то происходит, но не вызывается события COMPLETE загрузки :confused:

Добавлено через 16 часов 27 минут
Проблема решена, всем спасибо за участие. Вот итоговый код, который помог подгрузить фотки:

Код AS3:

var img_load = new Loader;
var pic_cont:Bitmap = new Bitmap;
var mc_MyClip:MovieClip = new MovieClip;
var lc:LoaderContext = new LoaderContext(true);
 
img_load.contentLoaderInfo.addEventListener(Event.COMPLETE, on_pic_load);
img_load.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSECURITY_ERROR);
img_load.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIO_ERROR);                       
 
function onSECURITY_ERROR(event:SecurityErrorEvent)  {
        debug_outpt.appendText("Ошибка запроса к серверу: " + event.toString() + "\n");
}
 
function onIO_ERROR(event:IOErrorEvent)  {
        debug_outpt.appendText("Ошибка запроса к серверу: " + event.toString() + "\n");
}
 
function on_pic_load(e:Event):void {
var userPhotoBitmap:Bitmap = Bitmap(e.target.content);
mc_MyClip.addChild(userPhotoBitmap);
debug_outpt.appendText("Фотка загружена \n");
}
 
img_load.load(new URLRequest(pic_url), lc);

т.е. лоадеру было добаволено указание lc

Код AS3:

var lc:LoaderContext = new LoaderContext(true);
img_load.load(new URLRequest(pic_url), lc);

Всем спасибо за участие!


Часовой пояс GMT +4, время: 04:30.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.