new EventDispatcher()
This constructor simply calls the initDispatcher method. This class is supposed
to be extended using Inheritance
extension. It can be either light extended or fully extended. When light extension is performed
the initDispatcher method should be called in the extended class constructor.
Example
//using light extension
define(["Inheritance","EventDispatcher"],function(Inheritance,EventDispatcher) {
var MyClass = function() {
this.initDispatcher();
//do stuff
}
MyClass.prototype = {
foo: function() {
//still doing stuff
//send an eventName event to the listeners (their eventName method will be called)
this.dispatchEvent("eventName",[paramForHandlers,otherParamForHandlers]);
//do more stuff
}
};
Inheritance(MyClass,EventDispatcher,true);
return MyClass;
});
define([],function() {
var MyClassListener = function() {
//do stuff
}
MyClassListener = {
eventName: function(param1,param2) {
//handle event
}
};
return MyClassListener;
});
Method Summary
- addListener
- Adds a listener and fires the onListenStart event to it sending itself as only parameter.
- dispatchEvent
- Fires an event on all the listeners.
- getListeners
- Returns an array containing the currently active listeners.
- initDispatcher
- Initializes the required internal structures and configures the dispatcher for sending asynchronous events.
- removeListener
- Removes a listener and fires the onListenEnd event to it sending itself as only parameter.
- useSynchEvents
- Configures the EventDispatcher to send either synchronous or asynchronous events.
Method Detail
-
addListener(aListener)
-
Adds a listener and fires the onListenStart event to it sending itself as only parameter. Note that the onListenStart event is only fired on the involved listener not on previously registered listeners.
Parameters:
Name Type Description aListener
EventDispatcherListener a listener to receive events notifications. The listener does not need to implement all of the possible events: missing events will not be fired on it. -
dispatchEvent(evt, params)
-
Fires an event on all the listeners.
Parameters:
Name Type Argument Description evt
String The name of the event to be fired. A method with this name will be called on the listeners. params
Array <optional>
An array of objects to be used as parameters for the functions handling the event. - See:
-
- useSynchEvents
-
getListeners() → {Array.<EventDispatcherListener>}
-
Returns an array containing the currently active listeners.
Returns:
an array of listeners.- Type
- Array.<EventDispatcherListener>
-
<protected> initDispatcher()
-
Initializes the required internal structures and configures the dispatcher for sending asynchronous events.
If called more than once it will reset the status of the instance.
This method MUST be called at least once before event dispatching can be exploited, otherwise most methods will fail either silently or with unexpected exceptions as no init-checks are performed by them.- See:
-
- useSynchEvents
-
removeListener(aListener)
-
Removes a listener and fires the onListenEnd event to it sending itself as only parameter. Note that the onListenEnd event is only fired on the involved listener not on previously registered listeners.
Parameters:
Name Type Description aListener
EventDispatcherListener the listener to be removed. -
useSynchEvents(useSynch)
-
Configures the EventDispatcher to send either synchronous or asynchronous events.
Synchronous events are fired on listeners before the #dispatchEvent call of the related event is returned. Asynchronous events are fired after the current code block is completed and possibly after more code blocks are executed. Can be considered as if the calls are performed inside setTimeout with timeout 0.Parameters:
Name Type Argument Default Description useSynch
Boolean <optional>
false true to fire events synchronously, any other value to fire them asynchronously. - See:
-
- initDispatcher