Signal dispatches events to multiple listeners.
It is inspired by C# events and delegates, and by
signals and slots
in Qt.
A Signal adds event dispatching functionality through composition and interfaces,
rather than inheriting from a dispatcher.
Project home:
http://github.com/robertpenner/as3-signals/
valueClasses
protected var _valueClasses:Array
numListeners:uint
[read-only]
The current number of listeners for the signal.
Implementation public function get numListeners():uint
protected var slots:SlotList
valueClasses:Array
An optional array of classes defining the types of parameters sent to listeners.
Implementation public function get valueClasses():Array
public function set valueClasses(value:Array):void
Throws | ArgumentError — ArgumentError : Invalid valueClasses argument: item at index should be a Class but was not.
|
public function OnceSignal(... valueClasses)
Creates a Signal instance to dispatch value objects.
Parameters | ... valueClasses — Any number of class references that enable type checks in dispatch().
For example, new Signal(String, uint)
would allow: signal.dispatch("the Answer", 42)
but not: signal.dispatch(true, 42.5)
nor: signal.dispatch()
NOTE: In AS3, subclasses cannot call super.apply(null, valueClasses),
but this constructor has logic to support super(valueClasses).
|
public function addOnce(listener:Function):ISlot
Subscribes a one-time listener for this signal.
The signal will remove the listener automatically the first time it is called,
after the dispatch to all listeners is complete.
Parameters
| listener:Function — A function with arguments
that matches the value classes dispatched by the signal.
If value classes are not specified (e.g. via Signal constructor), dispatch() can be called without arguments.
|
Returns | ISlot — a ISlot, which contains the Function passed as the parameter
|
Throws | flash.errors:IllegalOperationError — IllegalOperationError : You cannot addOnce() then add() the same listener without removing the relationship first.
|
|
| ArgumentError — ArgumentError : Given listener is null .
|
public function dispatch(... valueObjects):void
Dispatches an object to listeners.
Parameters
| ... valueObjects — Any number of parameters to send to listeners. Will be type-checked against valueClasses.
|
Throws | ArgumentError — ArgumentError : Incorrect number of arguments.
|
|
| ArgumentError — ArgumentError : Value object is not an instance of the appropriate valueClasses Class.
|
protected function registerListener(listener:Function, once:Boolean = false):ISlot
Parameters
| listener:Function |
|
| once:Boolean (default = false )
|
Returns protected function registrationPossible(listener:Function, once:Boolean):Boolean
Parameters
| listener:Function |
|
| once:Boolean |
Returns public function remove(listener:Function):ISlot
Unsubscribes a listener from the signal.
Parameters
Returns | ISlot — a ISlot, which contains the Function passed as the parameter
|
public function removeAll():void
Unsubscribes all listeners from the signal.
Lundi Février 11 2013, 01:50 PM +01:00