Packageorg.osflash.signals
Classpublic class OnceSignal
InheritanceOnceSignal Inheritance Object
Implements IOnceSignal
Subclasses Signal

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/

Default MXML PropertyvalueClasses



Public Properties
 PropertyDefined By
  numListeners : uint
[read-only] The current number of listeners for the signal.
OnceSignal
  valueClasses : Array
An optional array of classes defining the types of parameters sent to listeners.
OnceSignal
Protected Properties
 PropertyDefined By
  slots : SlotList
OnceSignal
  _valueClasses : Array
OnceSignal
Public Methods
 MethodDefined By
  
OnceSignal(... valueClasses)
Creates a Signal instance to dispatch value objects.
OnceSignal
  
addOnce(listener:Function):ISlot
Subscribes a one-time listener for this signal.
OnceSignal
  
dispatch(... valueObjects):void
Dispatches an object to listeners.
OnceSignal
  
remove(listener:Function):ISlot
Unsubscribes a listener from the signal.
OnceSignal
  
removeAll():void
Unsubscribes all listeners from the signal.
OnceSignal
Protected Methods
 MethodDefined By
  
registerListener(listener:Function, once:Boolean = false):ISlot
OnceSignal
  
registrationPossible(listener:Function, once:Boolean):Boolean
OnceSignal
Property Detail
_valueClassesproperty
protected var _valueClasses:Array

numListenersproperty 
numListeners:uint  [read-only]

The current number of listeners for the signal.


Implementation
    public function get numListeners():uint
slotsproperty 
protected var slots:SlotList

valueClassesproperty 
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.
Constructor Detail
OnceSignal()Constructor
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).
Method Detail
addOnce()method
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.
dispatch()method 
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.
registerListener()method 
protected function registerListener(listener:Function, once:Boolean = false):ISlot

Parameters

listener:Function
 
once:Boolean (default = false)

Returns
ISlot
registrationPossible()method 
protected function registrationPossible(listener:Function, once:Boolean):Boolean

Parameters

listener:Function
 
once:Boolean

Returns
Boolean
remove()method 
public function remove(listener:Function):ISlot

Unsubscribes a listener from the signal.

Parameters

listener:Function

Returns
ISlot — a ISlot, which contains the Function passed as the parameter
removeAll()method 
public function removeAll():void

Unsubscribes all listeners from the signal.