Архів для март 11, 2008

Блохи по-русски

вторник, март 11, 2008

С этого момента блохи будут выходить на двух языках русском и украинском.

Переключить язык можно с помощью соответствующего меню в sidebar’е.

Старые статьи и интерфейс будет переводиться постепенно. Прогресс можно наблюдать на странице “Переводы”.

Как понять, что событие произошло именно на подписчике?

вторник, март 11, 2008

Иногда нам нужно знать произошло ли событие на подписчике или пришло вследствие bubbling. Например, нам нужно отследить нажатие мыши на stage, но нам точно нужно знать что пользователь кликнул именно на stage, а не на его child. Мы конечно можем сделать

stage.mouseChildren = false;

но это чаще всего не подходит.

Можно поступить двумя равносильными способами.

В обработчике для stage выполняем проверку на равенство event.target с event.currentTarget:

  1. function stageClickHandler(event:MouseEvent):void
  2. {
    1. if(event.target != event.currentTarget)
      1. return;
    1. // Your code here
  3. }

Или проверим какая фаза event flow. Если она равна 2 (target phase), то событие произошло именно на stage. В ином случае, прекращаем выполнение обработчика:

  1. function stageClickHandler(event:MouseEvent):void
  2. {
    1. if(event.eventPhase != 2)
      1. return;
    1. // Your code here
  3. }

Подробнее про событийную модель в ActionScript 3.0 Вы можете почитать в докладе Константина Ковалёва.