ГлавнаяActionScript 3 — «100 советов» › Фазы событий

Фазы событий

June 19th, 2006
В ActionScript 3 для отображаемых объектов добавлены три фазы распространения событий:
  • Захват, capturing
  • Обработка, targeting
  • Подъем, bubbling

1. захват (capturing)
Событие начинается со stage и спускается вниз, вызывая обработчики связанные с этим событием у всех объектов (если же обработчика не существует, ничего не происходит).

Код:
event +---------|----+ | parent | | | +------V-+ | | |child | | | | | | | +--------+ | +--------------+

2. обработка (targeting)
На стадии обработки вызывается обработчик события объекта которому собственно оно и предназначалось.

Код:
+--------------+ | parent | | +------ -+ | | |child | | | |event X | | | +--------+ | +--------------+

3. подъем (bubbling)
Перебираются все объекты, начиная с “виновника” события и до stage.

Код:
+---------^----+ | parent | | | +------|-+ | | |child | | | | | event| | | | +--------+ | +--------------+

По умолчанию addEventListener подписывает обработчик события только на две фазы 2 (обработка) и 3 (подъем). Это позволяет вашему обработчику события реагировать на событие у себя а так же на это событие и у детей.
Если вы хотите реагировать на стадию захвата (1), необходимо в addEventListener указать третьим параметром true.

Код:
target.addEventListener("event", listener, true);

При этом обработчик события будет реагировать только на стадию захвата. Если вы хотите подписать обработчик события на все стадии нужно вызвать addEventListener дважды:

Код:
target.addEventListener("event", listener, true); // захват target.addEventListener("event", listener, false); // обработка и подъем

Категория: ActionScript 3 — «100 советов» Ярлыки: ,

Смотрите также

Определение добавления или удаления со Stage Определение фазы события
  1. Пока без комментариев.
  1. Пока нету.