Es ermöglicht lose gekoppelte Ereignisse bei der Kommunikation innerhalb von und zwischen Komponenten. Für ein Ereignis können beliebig viele Handler registriert werden.
Ereignisse haben einen Namen (casesensitiver String). Ein Auslöser ruft einfach fireEvent auf. Ist bereits ein Handler zu diesem Namen in der betreffenden EventObject-Instanz registriert, wird/werden die Callbackfunktion/en aufgerufen. Eine Komponente muss daher dokumentieren, welche Ereignisse ausgelöst werden, damit andere sich dafür registrieren können.
Für cancelable events (typischerweise sind dies onBeforeDoSomthing Ereignisse) sollte ein Cancel-Flag im EventArgument-Objekt angeboten und ausgewertet werden. Das Prüfen des Rückgabewertes der Handlerfunktion ist auch möglich, ist aber bei mehreren Handlern für ein Ereignis u.U. nicht gut zu handhaben.
Die Klasse kann erstellt werden
- attachEvent(name, fnPtr, customArg, scope) : int
- fireEvent(name, obj, stopOnNegativeReturn) : bool/object
- releaseEvent(handle)
registriert einen Eventhandler
string | name |
casesensitiver Name des Events, für das die Registrierung erflogt |
function | fnPtr |
Callbackfunktion mit der Signatur: {bool} function(object eventArgs[, object customArgs]) (bei onBefore... Events muss true zurückgegeben werden, damit die Bearbeitung fortgesetzt wird) |
object | [customArg] |
optionales Objekt, welches im Ereignisfall der Callbackfunktion als zweites Argument (customArgs) übergeben wird |
object | [scope] |
optionales Objekt, welches als Ausführungskontext (this) für die Callbackfunktion dienen soll |
int | releaseHandle (zur Verwendung mit releaseEvent) |
Löst ein Event aus, d.h. alle auf name registrierten Handler werden in umgekehrter Reihenfolge ihrer Registrierung ausgeführt.
Events, die es erlauben die anstehende Aktion abzubrechen sollten mit "onBefore..." beginnen und im Event-Argument die Eigenschaft
cancel=false bereitstellen, die von den Handlern bei Bedarf auf true gesetzt wird. Die Verwendung von stopOnNegativeReturn
kann ebenfalls in Betracht gezogen werden.
string | name |
Name des Events |
object | obj |
EventArgs-Objekt, welches der Callbackfunktion übergeben wird |
bool | [stopOnNegativeReturn] |
Bei true wird die Verarbeitung weiterer registrierter Handler abgebrochen, sobald der Rückgabewert einer Callbackfunktion gleich false ist. (Ereignisse, die dies nutzen sollten mit onBefore... beginnen.) |
bool/object | Rückgabewert der als letztes ausgeführten Callback-Funktion |
Hebt eine Event-Registrierung mit Hilfe der bei der Registrierung erhaltenen Kennung wieder auf.
int | handle |
Kennung (handle) des Event-Handlers, der abgemeldet werden soll. |