Я пытаюсь отправить идентификатор через прослушиватель событий в его функцию прослушивания. Теперь это работало до того, как я создал кнопки только с использованием кода, но когда я решил использовать существующие клики, он остановился, и я не могу понять, почему.Проблемы с попыткой получить идентификатор из eventLlistener
Вот мой код кнопки.
private function addButtons(){
button1 = new ButtonMC();
//add the buttons
button1.id = 1;
button1.addEventListener(MouseEvent.CLICK, gameClick, false, 0, true);
button1.buttonMode = true;
addChild(button1);
trace("button1 = "+button1.id);
}
след находит button1.id никаких проблем. Так хорошо до сих пор. Когда я запустил это, функция-слушатель отчитается как «undefined». Вот мой код функции слушателя. (не все это .. только соответствующая часть).
private function gameClick(evt:MouseEvent):void{
trace("clicked "+evt.target.id);
var gameTypeID = evt.target.id;
}
Этот код находится в своем собственном отдельном классе, который генерирует стартовый экран. Кнопки movieClip являются дубликатами MC в библиотеке, которая экспортируется как ButtonMC. Я совершенно не понимаю, почему это сейчас не работает. Когда он работал с «сгенерированными» кнопками, где все еще были обычные клики, поэтому я не вижу здесь никакой разницы. Возможно, это предмет с областью видимости, но со всем этим кодом в одном классе я не понимаю, почему это будет проблемой.
Может ли кто-нибудь указать мой идиотизм и сообщить мне, пожалуйста? Ваша помощь, как всегда, очень ценится.
try casting evt.target как ButtonMC: trace ("clicked" + ButtonMC (evt.target) .id); или попробуйте использовать evt.currentTarget.id – TheDarkIn1978
Что вы имеете в виду отчеты как неопределенные. Это ошибка? Я запускал этот код с помощью flex, с обычным объектом Button, и все было в порядке. – Ryan