Я сделал кнопку/дверь и добавил, как класс, я хочу это так, когда вы нажимаете на него, он отправляет событие, которое сигнализирует функцию на главной странице ACTIONSCRIPT запуститьAS3 Использование Event Dispatcher
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class Door extends MovieClip {
var direct:String;
var doorId:int;
var dispatcher = new EventDispatcher();
public function Door() {
this.addEventListener(MouseEvent.CLICK, changeRoom)
this.buttonMode = true;
}
function changeRoom(e:MouseEvent):void{
trace("door click")
dispatcher.dispatchEvent(new Event("doorClick"));
}
}
}
главная страница выглядит следующим образом
var doorTop = new Door();
doorTop.addEventListener("doorClick",goToRoom);
//should i be doing stage.addEventListener("doorClick",goToRoom);
function goToRoom(e:Event):void
{
trace("i went here")
}
, что я делаю неправильно? кажется достаточно прямым вперед
У меня вопрос: что, если класс не расширяет Диспетчер событий, что было бы правильным путем? Как только он будет получен, как определить, кто его назвал? – artSir
Если вам нужно использовать события с классом, вы должны ** всегда ** расширять 'EventDispatcher'. Вы никогда не должны создавать экземпляр фактического EventDispatcher в своем коде. Ничто не останавливает вас (вы должны приложить слушателя к 'object.dispatcher' в этом случае, а не к' object'), но вам даже не нужно. Большинство объектов уже расширяют EventDispatcher, тоже –
спасибо, что я могу использовать, чтобы определить, кто отправил событие? что-то вроде this.target.e? – artSir