GODPAPER | All Packages | All Classes | Index | Frames No Frames |
OnceSignal

Package | org.osflash.signals
Class | public class OnceSignal
Inheritance | OnceSignal 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 Property `valueClasses`

Public Properties

| Property | Defined 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

| Property | Defined By
--- | --- | ---
|  | slots : SlotList | OnceSignal
|  | _valueClasses : Array | OnceSignal

Public Methods

| Method | Defined 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

| Method | Defined By
--- | --- | ---
|  | registerListener(listener:Function, once:Boolean = false):ISlot | OnceSignal
|  | registrationPossible(listener:Function, once:Boolean):Boolean | OnceSignal

Property Detail

_valueClasses | property

`protected var _valueClasses:Array`

numListeners | property |

`numListeners:uint` [read-only]

The current number of listeners for the signal.

Implementation
`public function get numListeners():uint`

slots | property |

`protected var slots:SlotList`

valueClasses | property |

`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.

Thu Jan 16 2014, 01:11 PM +08:00