Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ожидание загрузки (http://www.flasher.ru/forum/showthread.php?t=211452)

Korchy 04.09.2015 12:26

Ожидание загрузки
 
Наверное тупой вопрос, но что-то он меня сомневает.
Есть список игроков с аватарками. Аватарки могут быть и не загружены сразу т.к. список большой. Поэтому при обращении к списку, в каждом элементе списка (карточке игрока), я проверяю на загрузку картинок с аватарками.
userList простой список с указателями на данные игроков.
При обращении к определенной карточке, если аватарка не загружена, всегда сразу вызывается загрузка с последующим диспатчем события LOADED.

Так вот, корректно ли выводить список карточек так:
Код AS3:

var currentUserCard:userCard = usersList.ById(userid);
if (currentUserCard.Loaded == false) {
  // Не может ли событие выскочить здесь, т.е. после проверки условия (что не загружена аватарка) но до подписки на это событие ???
  currentUserCard.addEventListener(userCard.LOADED, onCardLoaded);
}
else showCard(currentUserCard);
 
private function onCardLoaded(e:Event):void{
  showCard(e.target);
}

Я понимаю, что код исполняется последовательно и событие выскочить не должно вроде бы, но что-то точат сомнения.
По логике сначала должна быть подписка на событие, а потом вызов загрузки. Но тогда при каждом обращении к карточке надо не забывать писать лишнюю инструкцию currentUserCard.loadAvatar().
Или все же можно вызывать ее в конструкторе карточки и ждать события как я написал выше?

udaaff 04.09.2015 17:02

Не выскочит там событие. Пишите так. Всё логично. Если аватар загружен - показываем, нет - подписываемся и ждем загрузки.

Korchy 04.09.2015 17:30

Спасибо! Тоже думаю, что вроде бы все логично, но червячок сомнения точит :(


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

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