Очень часто при разработке своих собственных классов, бывает нужно создать события, для автоматического оповещения о том или ином процессе.
Одним из оптимальных вариантов для создания событий являеться класс EventDispatcher, у него есть ряд плюсов по сравнению со стандартным AsBroadcasterom, два самых важных:
- AsBroadcaster недокументированный класс
- EventDispatcher умеет рассылать не все события кучей а по одному
Пример
Код:
import mx.events.EventDispatcher;
class MyMC extends MovieClip {
//Создаем методы которые нам передаст EventDispatcher,
private var dispatchEvent:Function; //Данный метод будет вещать события
public var addEventListener,removeEventListener:Function; //Данные два метода будут подписывать и удалять слушатели
public var onMove:Function; // А это наше будущее событие
public function MyMC () {
EventDispatcher.initialize(this); //данный метод класса EventDispatcher передает нам методы для вещания и добавления листенеров
this.addEventListener('onMove',this); // подписываем себя на событие
}
public function move(x:Number,y:Number) {
_x=x;
_y=y:
dispatchEvent({type:'onMove',xp:x,yp:y}); //вещаем событие с двумя параметрами(новые координаты
}
}