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

Иногда нам нужно знать произошло ли событие на подписчике или пришло вследствие 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 Вы можете почитать в докладе Константина Ковалёва.

Таґи: , ,

Коментарів: 50 to “Как понять, что событие произошло именно на подписчике?”

  1. Chapaev:

    я бы сказал не интересно, а разумно

  2. Междуреченск:

    Только вчера об этом думал, так что пост как нельзя в тему!

  3. Зырянов:

    Большой пост Занесу в закладки. С утра прочту

  4. Aksjonov:

    я бы сказал не интересно, а разумно

  5. Golovin:

    Отличная статья Спасибо огромное

  6. Истомин:

    Да, есть над чем задуматься. Спасибо!

  7. Jugancev:

    Подойдя к второму обзацу необходимо будет побороть в себе желание его пропустить

  8. Nosov:

    Как хорошо что удалось отыскать такой замечательный блог, и тем более отлично, что есть такие автора толковые!

  9. Юганцев:

    Хорошая работа!

  10. Олег:

    У автора очень приятный слог

  11. Пырьев:

    спасибо, прочитал на одном дыхании

  12. Медведев:

    Спасибо за статью, всегда рад почитать вас!

  13. Kulikov:

    Оценка 5, базару ноль

  14. Carev:

    Где-то я это уже видел… А если по теме то спасибо.

  15. Громов:

    Спасибо, интересно было прочитать.

  16. Перов:

    Спасибо за Ваш труд!!

  17. Izmajlov:

    весьма информативно,молодца!

  18. Domashev:

    А я на рассылочку подписался))) Буду всегда в курсе))))

  19. Leonov:

    красиво, сделал! Благодарю!!!

  20. Балашов:

    не информативно как- то

  21. Вазов:

    Вот мы в своих блогах пишем о себе, о жизни - это понятно. А когда речь заходит о известных личностях, не могут ли они засудить раскрученного блогера за то, что он упоминает известные имена, а роялти со своей прибыли им не платит?

  22. Путятин:

    Здорово!

  23. Абрамов:

    Мне кажется очень полезная штука

  24. Турбин:

    Спасибо, интересно было прочитать.

  25. Щукин:

    Действительно интересно. Хотелось бы еще чего-нибудь об этом же.

  26. Zadorozhnyj:

    Отлично написано. Позитива конечно не хватает, но читал на одном дыхании

  27. Belov:

    Вот скажите, класно же, что такие отличные посты есть в интернете. Автору большое спасибо!

  28. Трухин:

    Класно! Нашел, наконец толковый блог на просторах интернета) Ура!

  29. Tolstobrov:

    Спасибо, интересно было прочитать.

  30. Bobr:

    одумайтесь, многотысячная армия Ваших читателей не поймет Вас, не простит!

  31. Dementev:

    на края луны, без вины, без вина, она одна о_0 пробило еп*

  32. Mitrofanov:

    Сорри за оффтоп, кто-нить смотрел ролики на ютьюбе про конец света? Ну, про андронный колайдер Ваще страшно!

  33. Silvestrov:

    И придратся не к чему, а я так люблю покритиковать…

  34. Федор:

    Хорошая работа!

  35. Blohin:

    Я извиняюсь, что немного не в тему, а что такое RSS? и ка на него подписаться?

  36. Чеботарёв:

    Ваще не вдохновило(((

  37. Завражин:

    Как хорошо что удалось отыскать такой замечательный блог, и тем более отлично, что есть такие автора толковые!

  38. Remizov:

    Спасибо. Прочитал с интересом. Блог в избранное занес=)

  39. Гаврилов:

    Все-таки потрясное изобретение - блог. Казалось бы обычный сайт, но изменили подачу информации, передали сайт в руки одного человека и открылась еще одна грань общения с миром.

  40. Firsov:

    Где-то я это уже видел… А если по теме то спасибо.

  41. Sluchevskij:

    Здравствуй! Спасибо за подаренные хорошие эмоции…

  42. Bogatyrjov:

    Пост не однозначный. нельзя бросаться в крайности.

  43. Потёмкин:

    Очень познавательно. Спасибо.

  44. Кашканов:

    Шрифт трудно читается у вас на блоге

  45. Максимушкин:

    Что ж… и такое мнение допустимо. Хотя, думаю, возможны и другие варианты, так что не огорчайтесь.

  46. Чесноков:

    Здорово!

  47. Чижиков:

    Кругом война, смерть, глупость, а вы тут… сами знаете, чем занимаетесь.

  48. Shvedov:

    Как Вы смотрите на то, что бы написать в блоге свое мнение по поводу конфликта Россия-Грузия (создать для этого какой-то раздел типа “гарячие обсуждения”), это гарантированно привлечет на блог дополнительный трафик!!!

  49. Жилин:

    За такие посты надо награды давать, на полном серьезе!

  50. Игорь:

    Сенкс. Интересно, и вообще полезный у Вас блог

Залиште свій коментар