Events in JayMo
Zur Ereignis-Verarbeitung besitzt JayMo ein integriertes Event-System.
Die Verwendung eines Events lässt sich in 3 Bereiche aufteilen:
- Event-Definition
- Event-Handler (was soll ggf. gemacht werden?)
- Auslösen des Events
Bezeichner
Jedes Event benötigt einen Bezeichner, also einen Titel, über den es aufgerufen werden kann. Der Bezeichner beginnt mit einem "@", gefolgt von einem Kleinbuchstaben und ggf. weiteren Klein- und Großbuchstaben.
@abcDef
Definition
Jede Definition in JayMo wird mit einem doppelten Doppelpunkt eingeleitet, ebenso hier:
::@abcDef
Hiermit wird das neue Event angelegt und ist nun nutzbar. Dies ist ebenso im Root-Typ möglich.
Event-Handler
Was soll nun geschehen, wenn dieses Event ausgelöst wird?
Hierzu werden Event-Handler benötigt. Da ein Event-Handler speziell für eine Objekt-Instanz definiert wird, dient diese somit als Basis-Objekt:
this::@abcDef
Print "Event has started!"
Aufruf
Ein Event kann nur innerhalb eines Typs ausgelöst werden. Hierzu wird es wie eine Funktion aufgerufen:
this.@abcDef
Dies führt dazu, dass alle definierten Event-Handler ausgeführt werden.
Vollständiges Beispiel
::@abcDef
this::@abcDef
Print "Start 1"
this::@abcDef
Print "Start 2"
this.@abcDef