Actionscript 3.0 Определение отправителя события слушателя? - PullRequest
1 голос
/ 20 февраля 2010

возможно ли определить, какой объект вызывает функцию на основе прослушивателя событий? например, у меня есть 2 кнопки на сцене, которые при нажатии вызывают одну и ту же функцию. Мне бы хотелось, чтобы функция определяла, какая кнопка была отправителем.

firstButton.addEventListener(MouseEvent.CLICK, myFunction);
secondButton.addEventListener(MouseEvent.CLICK, myFunction);

function myFunction(e:MouseEvent):void
 {
 var myString:String = "The button that called this function was (??)";
 trace(myString);
 }

Ответы [ 3 ]

5 голосов
/ 20 февраля 2010

Используйте свойство currentTarget из Событие , класс

function myFunction(e:MouseEvent):void {
 var myString:String = "The button that called this function was "+e.currentTarget;
 trace(myString);
}
1 голос
/ 16 апреля 2010

Я просто хочу добавить к этому: в объекте события, который вы получаете в функции, есть два свойства, которые иногда могут сбивать с толку, чтобы различать их:

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

e.currentTarget - currentTarget возвращает объект, который вы запросили из события или на языке adobes «Объект, который активно обрабатывает объект Event с помощью прослушивателя событий.».

так что ваша currentTarget и target могут давать разные результаты, и вы должны помнить об этом. постскриптум если ваши события не всплывают (не визуальные события / события мыши, не связанные с взаимодействием с пользователем), то ваши currentTarget и target будут одинаковыми или если вы спросите объект, отправивший событие, в случае всплывающего события.

1 голос
/ 20 февраля 2010

внутри myfunction, e.currentTarget должен содержать ссылку на кнопку, отправившую событие.

...