Показать сообщение отдельно
Старый 05.08.2013, 17:44
Котейка вне форума Посмотреть профиль Отправить личное сообщение для Котейка Найти все сообщения от Котейка
  № 19  
Ответить с цитированием
Котейка
 
Аватар для Котейка

Регистрация: Aug 2013
Сообщений: 56
Цитата:
Хотя некоторые сомнения всё-таки остаются.
Например, если сборщик мусора сжирает первые две инициации initListener, тогда, вроде как и эта строка
Код AS3:
BitData = Bitmap(e.currentTarget.content).bitmapData;
не должна помогать, потому что двое первых e.currentTarget.content уже были "сожраны лангоньерами".
Вы не поняли в чем фишка. Вы сами каждую итерацию цикла перезаписываете переменную imageLoader на новую, так что в конце цикла она хранит ссылку на третий объект. Загрузка файлов работает асинхронно, она не задерживает остальной ход работы программы. Вот и получается что у вас работает так:
Код:
>Цикл отработал initListener == ссылке на последний лоадер. Загрузки начались. 
>>... прошел некий отрезок времени
>Файлы загрузились.
Цитата:
Я протестировал - оба варианта работают.
Оба и будут, но в случае с глобальной приватной переменной у вас остается лишняя ссылка на последний лоадер.

Порядок не зависит от размера файла, кто первый загрузился того и тапки. Конечно первый чаще загружается самый маленький, но при таком маленьком разбросе в размерах, как у вас, это может быть какой угодно файл.
P.S. Про порядок вижу вам уже ответили пока я пост писал.
P.P.S. Если по хорошему, то в вашем случае глобальная переменная класса нужна только одна - массив со ссылками на загруженные картинки. (у вас PicArray)