Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   FAQ (http://www.flasher.ru/forum/forumdisplay.php?f=86)
-   -   [AS2] Как мне создать свои события, и что такое mx.events.EventDispatcher (http://www.flasher.ru/forum/showthread.php?t=65962)

Nirth 23.06.2005 17:29

[AS2] Как мне создать свои события, и что такое mx.events.EventDispatcher
 
Очень часто при разработке своих собственных классов, бывает нужно создать события, для автоматического оповещения о том или ином процессе.
Одним из оптимальных вариантов для создания событий являеться класс EventDispatcher, у него есть ряд плюсов по сравнению со стандартным AsBroadcasterom, два самых важных:
  1. AsBroadcaster недокументированный класс
  2. 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}); //вещаем событие с двумя параметрами(новые координаты
        }
}



Часовой пояс GMT +4, время: 04:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.