Архив рубрики: Флешовые события – Event

Серия статей посвященных работе с событиями (Event) в коде ActionScript 3.0. Три фазы события. Приоритет события. Отмена события.

68. Event Part6. Путешествие малыша event

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

В предыдущей статье, если помните, я говорил о том, что в момент когда срабатывает событие, создается один экземпляр event, и передается он всем слушателям события. Я решил написать эту небольшую статью и показать вам на примере то, как создается объект event, и как он передается “из рук в руки” между всеми слушателями.

Напишем небольшое приложение в котором имеются следующие классы:

  • Application.as – главный класс приложения
  • ClassA.as – дополнительный класс внутри Application
  • ClassB.as – дополнительный класс внутри Application
  • Dispatcher.as – класс который отправляет событие
  • MyEvent.as – наш пользовательский класс-событие

В момент инициализации приложения, три класса Application, ClassA и ClassB подписываются на событие MyEvent.TEST у объекта Dispatcher. У объекта Dispatcher есть “облако событие”, и все кто вызывает метод addEventListener, начинают слушать это облако. Схематически это показано на картинке:
event-part5-1
Читать далее
Эту статью прочитали 1136 раз

66. Event Part5. Создаем собственные события

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

Работая над ActionScript приложениями, вы наверняка использовали стандартные флешовые события, например событие клика мыши MouseEvent.CLICK. Вы когда нибудь задумывались что в коде ActionScript можно создавать свои собственные события? В этой статье мы поговорим о том как создавать и “диспатчить” события. Не стоит недооценивать силу и мощь событий. Правильная событийная модель приложения – залог успешной реализации и последующей поддержки вашего flash-приложения. Очень советую вам уделить теме событий как можно больше времени.

Что бы вам легче было понять назначение собственных событий, приведу простой пример. Допустим нам необходимо сделать в игре таймер. Конечно вы можете в основном классе приложения использовать Timer, или Event.ENTER_FRAME. А если ваш таймер должен делать какие то дополнительные действия, например отображать тикающие циферки, и циферки должны постепенно краснеть когда времени осталось меньше чем 50% от максимального. В этом случае гораздо разумнее было бы создать класс AppTimer и реализовать в нем весь необходимый функционал. Возникает вопрос: как из класса AppTimer главному классу приложения Game сообщить информацию о том что время вышло? Как в событии передавать каждую секунду главному классу количество оставшихся секунд? Эти и другие вопросы мы посторонимся разобрать в этой статье.
Читать далее
Эту статью прочитали 1589 раз

65. Event Part4. Отмена события на полпути. stopPropagation, stopImmediatePropagation

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

Как вы помните из второй статьи серии Event, распространение событий делится на три фазы: захват, цель и пузыри. Часто случается так, что в определенный момент необходимо отменить дальнейшее распространение события. Попробую привести реальный пример с кодом ActionScript 3.0, что бы понять для чего это может понадобится.

Допустим у вас на stage лежит спрайт с именем parentView. Внутри parentView лежит другой спрайт: childView. Вы слушаете событие MouseEvent.CLICK на объектах parentView и childView. Вот как выглядит ActionScript код этого примера: Читать далее
Эту статью прочитали 1430 раз

64. [junior] Event Part3. Приоритет события. priority

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

События – это очень мощный инструмент в языке ActionScript. И поэтому очень важно научиться правильно применять их в разработке Flash-приложений. В предыдущих статьях серии мы разобрали общие вопросы событий, и три фазы события. В этой статье мы поговорим о том как можно задавать очередность срабатывания событий.

Если например в одном классе(или в другом) клик по одному объекту слушают два обработчика, и вам необходимо сделать так что бы один обработчик выполнялся строго раньше другого, вы можете воспользоваться четвертым параметром в методе addEventListener, это параметр priority(приоритет). По умолчанию параметр имеет значение 0. Если вы зададите значение приоритета больше нуля, то этот обработчик будет гарантировано выполняется раньше. Если у обработчиков заданы одинаковые значения приоритета(например значение по умолчанию 0), то обработчики срабатывают в том порядке, в котором они были добавлены с помощью метода addEventListener. Что бы понять как это работает, посмотрите на пример ActionScript3.0 кода:
Читать далее
Эту статью прочитали 958 раз

45. Event Part2. Три фазы событий ActionScript. useCapture

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

В предыдущей статье мы разбирали общие принципы работы событий в коде ActionScript3.0. Так же мы рассмотрели метод addEventListener. У этого метода много интересных параметров. Первые два обязательных параметра параметры мы рассмотрели в предыдущей статье серии. В этой мы подробно разберем для чего же предназначен третий(необязательный) параметр useCapture.

И так, давайте рассмотрим ActionScript-код в котором в главном классе ( на главном таймлайне) имеется спрайт-контейнер с именем parentView. Внутри него имеются два спрайта с именами childView1 и childView2. Внутри спрайта childView1 есть спрайт с именем subchildView. Рассмотрим ситуацию когда мы кликаем на объекте childView1, и разберем в деталях что же происходит в этот момент. Читать далее
Эту статью прочитали 1617 раз

44. [junior] Event Part1. Работа с событиями

junior – серия статей для начинающих ActionScript-разработчиков.
Все статьи серии:
http://flashpress.ru/blog/category/junior/

События служат для сообщения о наступлении какого либо действия другим объектам. События нужны например для того что бы узнать в какой момент произошел клик по объекту(событие MouseEvent.CLICK). Или например у вас есть класс Car.as который отображает автомобиль в вашей игре. Когда у автомобиля заканчивается бензин, ваш класс может сгенерировать ваше собственное событие и сообщить остальным классам о том, что нужна дозаправка. Как создавать свои события мы разберем в отдельной статье из серии статей посвященной событиям. Читать далее
Эту статью прочитали 1252 раз