Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 14.03.2010, 12:13
DenisS1 вне форума Посмотреть профиль Отправить личное сообщение для DenisS1 Найти все сообщения от DenisS1
  № 1  
Ответить с цитированием
DenisS1

Регистрация: Oct 2009
Сообщений: 27
Question Загрузка нескольких изображений (странная проблема...)

Нужно загрузить несколько изображений по ссылкам, хранящимся в массиве. Загруженные изображения сохраняю в другой массив.
Код AS3:
private var imgLoader:Loader=new Loader();
private var _i:int=0, _j:int=0;
// функция загружает изображения для карты (рекурсивно)
public function loadImages():void{
  trace(GraphicsLayer.figures[_i].imageURL[_j]);
  imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingImageComplete);
  imgLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, handlerForIOError);
  imgLoader.load(new URLRequest(GraphicsLayer.figures[_i].imageURL[_j]));
}  
private function loadingImageComplete(e:Event):void{ 
  imgLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadingImageComplete);
  imgLoader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, handlerForIOError);   	
  GraphicsLayer.figures[_i].images[_j]=imgLoader;
  trace("Загружено в "+(_j).toString());
  _j++;
  if(_j==GraphicsLayer.figures[_i].imageURL.length){_j=0; _i++;}
  if(_i==GraphicsLayer.n){_i=0; _j=0; return}
  loadImages();
}
private function handlerForIOError(e:Event):void{
  trace("Error: Неудачная попытка загрузки изображения "+
  GraphicsLayer.figures[_i].imageURL[_j]);
  _j++;
  if(_j==GraphicsLayer.figures[_i].imageURL.length){_j=0; _i++;}
  if(_i==GraphicsLayer.n){_i=0; _j=0; return}
  loadImages();
}
В результате всегда загружается только последнее изображение. Никаких сообщений об ошибке при этом не выводится. Судя по trace-у, изображения грузятся куда надо.
Это уже не первый вариант. До этого делал циклом - тогда последнее изображение загружалось вместо всех предыдущих, т.к. цикл, не дождавшись окончания загрузки, шёл дальше.
Подскажите, как сделать? Раньше никогда не сталкивался с такой задачей. Делаю программу на конкурс, сегодня последний день.


P.S. Оказалось, достаточно добавить после GraphicsLayer.figures[_i].images[_j]=imgLoader; ещё одну строчку: imgLoader=new Loader();


Последний раз редактировалось DenisS1; 14.03.2010 в 13:38. Причина: Всё заработало
Создать новую тему   Часовой пояс GMT +4, время: 20:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
загрузка , загрузка файлов в цикле , Изображения

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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