Actionscript 3.0 Определение отправителя прослушивателя событий?

StackOverflow https://stackoverflow.com/questions/2300073

Вопрос

можно ли определить, какой объект вызывает функцию, на основе прослушивателя событий?например, у меня на сцене есть 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);
 }
Это было полезно?

Решение

Используйте свойство текущая цель из Событие сорт

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

Другие советы

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top