Dart DocumentationstagexlEventDispatcher

EventDispatcher class

class EventDispatcher {

 Map<String, EventStream> _eventStreams;

 //-----------------------------------------------------------------------------------------------

 EventStream<Event> on(String eventType) {

   var eventStreams = _eventStreams;
   if (eventStreams == null) {
     eventStreams = new Map<String, EventStream>();
     _eventStreams = eventStreams;
   }

   var eventStream = eventStreams[eventType];
   if (eventStream == null) {
     eventStream = new EventStream._internal(this, eventType);
     eventStreams[eventType] = eventStream;
   }

   return eventStream;
 }

 //-----------------------------------------------------------------------------------------------

 bool hasEventListener(String eventType) {

   var eventStreams = _eventStreams;
   if (eventStreams == null) return false;
   var eventStream = eventStreams[eventType];
   if (eventStream == null) return false;

   return eventStream.hasSubscriptions;
 }

 StreamSubscription<Event> addEventListener(String eventType, EventListener eventListener, {
   bool useCapture: false, int priority: 0 }) {

   return this.on(eventType)._subscribe(eventListener, useCapture, priority);
 }

 void removeEventListener(String eventType, EventListener eventListener, {
   bool useCapture: false }) {

   this.on(eventType)._unsubscribe(eventListener, useCapture);
 }

 void removeEventListeners(String eventType) {
   this.on(eventType).cancelSubscriptions();
 }

 void dispatchEvent(Event event) {
   _dispatchEventInternal(event, this, EventPhase.AT_TARGET);
 }

 //-----------------------------------------------------------------------------------------------
 //-----------------------------------------------------------------------------------------------

 bool _hasPropagationEventListeners(Event event) {

   var eventStreams = _eventStreams;
   if (eventStreams == null) return false;
   var eventStream = eventStreams[event.type];
   if (eventStream == null) return false;

   return eventStream._hasPropagationSubscriptions(event);
 }

 _dispatchEventInternal(Event event, EventDispatcher target, int eventPhase) {

   event._stopsPropagation = false;
   event._stopsImmediatePropagation = false;

   var eventStreams = _eventStreams;
   if (eventStreams == null) return;
   var eventStream = eventStreams[event.type];
   if (eventStream == null) return;

   eventStream._dispatchEventInternal(event, target, eventPhase);
 }

}

Subclasses

DisplayObject, RenderContext, ResourceManager, SoundChannel

Methods

StreamSubscription<Event> addEventListener(String eventType, EventListener eventListener, {bool useCapture: false, int priority: 0}) #

StreamSubscription<Event> addEventListener(String eventType, EventListener eventListener, {
 bool useCapture: false, int priority: 0 }) {

 return this.on(eventType)._subscribe(eventListener, useCapture, priority);
}

void dispatchEvent(Event event) #

void dispatchEvent(Event event) {
 _dispatchEventInternal(event, this, EventPhase.AT_TARGET);
}

bool hasEventListener(String eventType) #

bool hasEventListener(String eventType) {

 var eventStreams = _eventStreams;
 if (eventStreams == null) return false;
 var eventStream = eventStreams[eventType];
 if (eventStream == null) return false;

 return eventStream.hasSubscriptions;
}

EventStream<Event> on(String eventType) #

EventStream<Event> on(String eventType) {

 var eventStreams = _eventStreams;
 if (eventStreams == null) {
   eventStreams = new Map<String, EventStream>();
   _eventStreams = eventStreams;
 }

 var eventStream = eventStreams[eventType];
 if (eventStream == null) {
   eventStream = new EventStream._internal(this, eventType);
   eventStreams[eventType] = eventStream;
 }

 return eventStream;
}

void removeEventListener(String eventType, EventListener eventListener, {bool useCapture: false}) #

void removeEventListener(String eventType, EventListener eventListener, {
 bool useCapture: false }) {

 this.on(eventType)._unsubscribe(eventListener, useCapture);
}

void removeEventListeners(String eventType) #

void removeEventListeners(String eventType) {
 this.on(eventType).cancelSubscriptions();
}