Показать сообщение отдельно
Старый 05.08.2013, 12:26
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 14  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Wolsh, благодарю за багфикс, теперь все три картинки выводятся.

Цитата:
А чего Вы ждали, у Вас же один Лоадер сохраняется в приватной переменной, последний из создаваемых в цикле.
Или Вы думали, что одна переменная будет хранить все три Лоадера в себе?))
Хм, всё-равно что-то я не до конца просекаю фишку.

Рассмотрим по итерациям.
1. i = 0, Создаем экземпляр imageLoader, Грузим в него "text1.png", Запускаем слушатель.
2. Выходим из цикла for. В переменную BitData записываем картинку text1.png, Перекидываем ее в BitItem.
3. Засовываем его в PicArray[0], Наращиваем переменную индекса массива.
4. Возвращаемся в цикл for, получаем i = 1, повторяем.

Я же успел значение text1.png засунуть в массив!
И при следующей итерации, то же должно произойти с text2.png...

Цитата:
Или Вы думали, что одна переменная будет хранить все три Лоадера в себе?))
Ээ, ну она временно хранит один лоадер, и успевает передать его в массив. Или не успевает?

Цитата:
Соответственно в обработчике Вы у этого последнего Лоадера и забираете то что он загрузил,
независимо от того, какой Лоадер на самом деле послал событие COMPLETE:
Код AS3:
BitData = Bitmap(imageLoader.content).bitmapData;
Странно, а разве на каждой итерации не должен происходить выход из цикла for в слушатель?
Я предполагал, что либо этот выход происходит каждый раз, и я успеваю засунуть значение в массив.
Либо же, как-то асинхронно запустяццо три слушателя, и каждый (уже сложнее представить такое, лол) как-то разрулит ситуацию сам, ведь он успел получить соответствующую ему строку.

Цитата:
А надо
Код AS3:

BitData = Bitmap(e.currentTarget.content).bitmapData;
Эта строка мне понятна чисто технически: она более точна и берет данные от экземпляра текущего события.
Однако почему она не равнозначна той записи (по указанным выше моментам), не очень понятно.