Возникновение событий

6 views
Skip to first unread message

Steve Reich

unread,
Mar 23, 2010, 11:55:59 AM3/23/10
to Russian Adobe Flash Platform User Group
Подскажите, можно ли в AS остановить дальнейшее выполнение скрипта,
пока не будет сгенерировано какое-то событие/события ?
Пытался завести статическую переменную, значение которой меняется в
хэндлере события и проверяется в while - без результатов.
У меня есть цикл, проходящий по массиву, создающий рисунки, делающий
скейлы, ротэйты и тд. Но нужно останавливать дальнейший проход по
этому циклу, пока картинка не загрузится и не будет выполнены действия
над ним. Подскажите, как быть.

Татьяна Белая

unread,
Mar 23, 2010, 11:59:27 AM3/23/10
to fp...@googlegroups.com
если картинка не загрузилась, запомнить индекс, прервать скрипт и
повесить на картинку событие onLoadComplete. либо в каждом кардре
проверять загрузилась ли картинка.
когда загрузится продолжить с индекса.
> --
> Вы получили это сообщение, поскольку подписаны на группу Russian
> Adobe Flash Platform User Group.
>
> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу fp...@googlegroups.com
> .
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу fpug+uns...@googlegroups.com
> .
> О дополнительных функциях можно узнать в группе по адресу http://groups.google.com/group/fpug?hl=ru
> .
>

Steve Reich

unread,
Mar 23, 2010, 12:20:15 PM3/23/10
to Russian Adobe Flash Platform User Group
У меня flex - кадры мне непонятны :)
Дело в том, что мне нужны другие данные из текущей итерации, кроме
самого рисунка. Пытался их сохранять и обращаться к ним из лиссенера -
перетираются данными следующей итерации.
При этом сам индекс итерации тоже нельзя сохранить.
Хочу попробовать счас удалять элемент, останавливать return-ом
выполнение, а потом снова дергать эту функцию из лиссенера.

Очень не хватает чего-то типа while(!
item.hasEventDispatched(Event.COMPLETE)) {}

Омар Валиев

unread,
Mar 23, 2010, 1:32:44 PM3/23/10
to fp...@googlegroups.com
Вы хотите писать код для программы работающей из командной строки, у
flash другая модель общения с окружающим миром. Попробуйте сохранять
данные текущей итерации, которые понадобятся позже.

Haspadar

unread,
Mar 23, 2010, 6:12:00 PM3/23/10
to fp...@googlegroups.com
Да, это я уже понял. Но, согласитесь, проблема не самая необычная, а решение трудно назвать красивым

23 марта 2010 г. 19:32 пользователь Омар Валиев <valie...@gmail.com> написал:
Вы хотите писать код для программы работающей из командной строки, у flash другая модель общения с окружающим миром. Попробуйте сохранять данные текущей итерации, которые понадобятся позже.

Orion

unread,
Mar 24, 2010, 4:52:14 AM3/24/10
to Russian Adobe Flash Platform User Group

Странный подход, в разрезе Flash/Flex точнее было бы:

"После загрузки картинки, у меня есть цикл, делающий
скейлы, ротэйты и тд, загруженному изображению".

Смысл в while? Тогда уж Timer, но тоже бред - имхо бесполезная в вашем
случае трата ресурсов.

Steve Reich

unread,
Mar 24, 2010, 5:35:27 AM3/24/10
to Russian Adobe Flash Platform User Group
Это не подход. О подходе-то и вопрос. У меня в базе есть куча
картинок, векторных и растровых, с сохраненными экшенами над ними.
Нужно все это вывести теперь. Какой это было бы правильно сделать в
AS, если не в цикле?

Orion

unread,
Mar 24, 2010, 5:40:22 AM3/24/10
to Russian Adobe Flash Platform User Group
1. Загрузили из базы список картинок.
2. а) Через цикл грузим картинки, и подвешиваем листенеры на окончание
загрузки удачное или нет (быстро но много одновременных запросов).
б) Создаем очередь и грузим картинки по очереди, также вешая
листенеры (медленно но запросы по очереди).
3. Потом способов много, если изначально нет данных о действиях,
которые нужно произвести, то при удачном окончании загрузки картинки,
запрашиваем эти данные и также вешаем листенеры на удачное или
неудачное завершение.
4. Собственно производим те действия какие надо.

Несколько замечаний:
* 2. а). Если грузим ByteArray т.е. "голые" картинки, а не объекты, то
имеет смысл использовать AsyncToken для идентификации того что мы
загрузили, допустим хранить id изображения.
* После того как листенер сработал убираем за собой
removeEventListener...

Reply all
Reply to author
Forward
0 new messages