Rückrufparameter
Wenn Sie ein Ereignis abhören, erstellen Sie eine Funktion namensCallback, die jedes Mal ausgeführt wird, wenn das Ereignis eintritt. Die Rückruffunktion empfängt mehrere Parameter, bei denen es sich um Objekte handelt, die Ihnen Informationen über das Ereignis mitteilen, damit Sie entscheiden können, was zu tun ist.
Die Rückrufparameter für jedes Ereignis variieren, umfassen jedoch:
obj
Das Objekt, das geändert wurde. Alle Änderungen, die Sie an diesem Objekt vornehmen, werden auch im Spiel gespeichert. Wenn Sie also ein Grafikobjekt nach links verschieben möchten, ändern Sie die Eigenschaftleft
vonobj
mitset
.
-
obj.get("property")
gibt den aktuellen Wert für die Eigenschaft zurück. -
obj.set("property", "newvalue")
legt einen neuen Wert für die Eigenschaft fest. Wenn Sie mehrere Eigenschaften gleichzeitig ändern, können Sie ein Objekt übergeben:obj.set({left: 10, top: 20});
vor
Dies ist ein Objekt der Eigenschaften vonobj
, wie sie waren, bevor aufgrund dieses Ereignisses Änderungen vorgenommen wurden. Nützlich, um festzustellen, „wie stark“ sich eine Eigenschaft geändert hat.
HINWEIS:Dies ist ein Basisobjekt, daher greifen Sie auf die Eigenschaften mithilfe der Klammernotation zu:prev["bar1_value"]
, NICHT mithilfe der Set- oder Get-Funktionen.
Veranstaltungsbestellung
Ereignisse werden synchron ausgelöst (d. h. jede Funktion startet erst, wenn die vorherige beendet ist), und zwar in der Reihenfolge von der ersten zur letzten Grenze und auch von der spezifischen Eigenschaft zum allgemeinen Objekt. Also Folgendes gegeben:
on("change:graphic", function1); on("change:graphic", function2); on("change:graphic:left", function3);
Wenn sich die Eigenschaft der Objekteund
geändert hätte, wäre die Reihenfolge Funktion3, dann Funktion1, dann Funktion2.
Wenn Sie außerdem mehrere Skripts in Ihrer Kampagne haben, werden die Skripts in derselben Reihenfolge geladen, in der sie auf Ihrer Seite „Kampagnenskripte“ erscheinen, von links nach rechts.
Hinweis: Ereignisse werden nur durch Änderungen ausgelöst, die von Spielern/dem Spielleiter des Spiels vorgenommen wurden. Ereignisse werden nicht durch API-Änderungen ausgelöst. Wenn also ein Spieler eine Figur auf der Tischplatte bewegt, erhalten Sie ein „change:graphic“-Ereignis. Wenn du die Eigenschaft desselben Bildes in einem Mod (API) Skript änderst, wird kein "change:graphic" Ereignis ausgelöst.
Kampagnenereignisse
bereit
Dieses Ereignis wird ausgelöst, nachdem alle aktuellen Daten für die Kampagne geladen wurden. Wenn Sie also eine Liste aller Objekte in einer Kampagne oder ein bestimmtes Objekt finden möchten, das sich bereits in der Kampagne befindet, achten Sie darauf, erst danach zu suchen, nachdem das Ready-Ereignis ausgelöst wurde. Wenn Sie außerdem anadd
-Ereignisse (z. B.add:graphic
) binden, bevor dasready
-Ereignis ausgelöst wird, erhalten Sie Add-Ereignisse für Objekte, die bereits in der Kampagne vorhanden waren.
on("ready", function() { var tokenThatAlreadyExisted = getObj("graphic", "-ABc123"); });
change:campaign:playerpageid
Wird immer dann ausgelöst, wenn sich die Seite ändert, auf der sich die Spieler gerade befinden.
change:campaign:turnorder
Wird immer dann ausgelöst, wenn sich die Zugreihenfolgeliste für die Kampagne ändert.
change:campaign:initiativepage
Wird immer dann ausgelöst, wenn die Zugreihenfolge für eine Seite ausgeblendet oder angezeigt wird. Dies ist möglicherweise nicht mit der ID der aktuell aktiven Seite identisch. Wenn dies auf false
gesetzt ist (einschließlich wenn ein Mod (API) Skript es auf false setzt), wird die Zugreihenfolge für alle Spielleiter/Spieler geschlossen. Wenn Sie eine gültige Seiten-ID festlegen, wird sie für alle GMs/Spieler geöffnet.
Objektereignisse
ändern:Grafik
Wird immer dann ausgelöst, wenn sich ein Grafikobjekt (fast jede Art von Objekt auf der Tischplatte, einschließlich Spielsteinen, Karten und Karten) ändert.
Hinweis: Über die API erstellte Grafikobjekte lösen dieses Ereignis beim Erstellen aus.
Rückrufparameter: obj, prev
on("change:graphic", function(obj, prev) { //Hier etwas mit „obj“ machen. „prev“ ist eine Liste vorheriger Werte. // Beachten Sie, dass „obj“ und „prev“ unterschiedliche Objekttypen sind. // Um mit obj zu arbeiten, müssen Sie obj.get("name"); verwenden. // um mit prev zu arbeiten, können Sie prev["name"] verwenden; });
change:graphic:(property)
Sie können auch für jede spezifische Eigenschaft des Objekts eine Bindung an ein Ereignis herstellen. Wenn Sie also ein Skript haben, das Sie nur ausführen möchten, wenn sich dieRotation
ändert, würden Sie Folgendes tun:
on("change:graphic:rotation", function(obj, prev) { //Rotation immer auf 0 zurücksetzen, damit niemand Objekte drehen kann. obj.set("Rotation", 0); });
add:graphic
Wird immer dann ausgelöst, wenn ein Grafikobjekt zum ersten Mal zur Tischplatte hinzugefügt wird. Wird auch für vorhandene Objekte aufgerufen, wenn die Tischplatte gestartet wird, wenn Sie an dieses Ereignisaußerhalb vonderbereit
Ereignisse binden.
Rückrufparameter: obj
on("add:graphic", function(obj) { //Wird für alle neuen Grafiken aufgerufen, einschließlich derjenigen, die bereits zu Beginn der Spielsitzung vorhanden waren. }); var gestartet = false; on("ready", function() { on("add:graphic", function(obj) { //Wird nur für neue Objekte aufgerufen, die hinzugefügt werden, da vorhandene Objekte bereits vor dem Ready-Ereignis geladen wurden Brände. }); //Sie können auch eine Variable festlegen und Add-Ereignisse ignorieren, bis sie wahr ist. gestartet = wahr; });
destroy:graphic
Wird immer dann ausgelöst, wenn ein Grafikobjekt von der Tischplatte entfernt wurde.
Rückrufparameter: obj
Andere Objekttypen
Es gibt auch Ereignisse für alle anderen Objekttypen und Untertypen, wie zum Beispiel:
ändern:Pfad, hinzufügen:Pfad, zerstören:Pfad, ändern:Text, hinzufügen:Text, zerstören:Text, ändern:Token, hinzufügen:Token, zerstören:Token, ändern:Karte, hinzufügen:Karte, zerstören:Karte
Eine vollständige Liste aller Objekttypen und Untertypen finden Sie unterder Objektreferenz.