API: Événements

Il existe plusieurs types d'événements auxquels vous pouvez réagir. En général, chaque type d'objet a un événement correspondant pour les modifications, les ajouts et les suppressions. Chaque événement sera déclenché une fois par objet qui change. Si plusieurs propriétés de l'objet changent en même temps, seul un "événement" global (par ex. changement: graphique) est déclenché.


Paramètres de rappel

Lorsque vous écoutez un événement, vous créez une fonction appeléecallbackqui est exécutée chaque fois que l'événement se produit. La fonction de rappel reçoit plusieurs paramètres qui sont des objets qui vous donnent des informations que vous souhaitez connaître sur l'événement afin de décider quoi faire.

Les paramètres de rappel pour chaque événement peuvent varier, mais incluent :

obj

L'objet qui a été modifié. Toutes les modifications que vous apportez à cet objet seront également enregistrées dans le jeu. Ainsi, si vous souhaitez déplacer un objet graphique vers la gauche, vous modifierez la propriété gauchede objen utilisant set.

  • obj.get("propriété")retourne la valeur actuelle de la propriété.
  • obj.set("propriété", "nouvelevaleur")définit une nouvelle valeur pour la propriété. Si vous modifiez plusieurs propriétés simultanément, vous pouvez passer un objet:obj.set({left: 10, top: 20})


précédent

Il s'agit d'un objet des propriétés de l'objettelles qu'elles étaient avant toute modification due à cet événement. Utile pour déterminer "à quel point" une propriété a changé.

REMARQUE:Il s'agit d'un objet de base, vous accédez donc aux propriétés en utilisant la notation entre crochets:précédent["valeur_bar1"], SANS utiliser les fonctions set ou get.


Commande des événements

Les événements sont déclenchés de manière synchrone (ce qui signifie que chaque fonction ne commencera pas tant que la précédente n'aura pas terminé) dans l'ordre du premier au dernier lié, et également du spécifique à l'objet général. Alors, étant donné ce qui suit:

on("change:graphic", function1) ;
on("change:graphic", function2) ;
on("change:graphic:left", function3) ;

Si les objetsetchangeaient de propriété, l'ordre serait le suivant : fonction3, puis fonction1, puis fonction2.

De plus, si vous avez plusieurs scripts dans votre campagne, les scripts sont chargés dans le même ordre qu'ils apparaissent sur votre page de scripts de campagne, de gauche à droite.

Remarque : les événementsne sont déclenchés que par des changements effectués par les joueurs ou le MJ. Les événements ne seront pas déclenchés par les modifications de l'API. Donc, si un joueur déplace une pièce sur la table, vous recevrez un événement "change:graphic". Si vous modifiez la même propriété graphique dans un script API, aucun événement "change:graphic" ne sera déclenché.


Événements de campagne

prêt

Cet événement se produit après que toutes les données actuelles de la campagne ont été chargées. Donc, si vous voulez trouver une liste de tous les objets dans une campagne, ou un objet spécifique qui est déjà dans la campagne, assurez-vous de le chercher seulement après que l'événement ready se déclenche. En outre, si vous vous liez aux événementsadd(tels queadd:graphic) avant que l'événementreadyne se déclenche, vous recevrez des événements d'ajout pour des objets qui étaient déjà présents dans la campagne.

on("ready", function() {
  var tokenThatAlreadyExisted = getObj("graphic", "-ABc123");
});

change:campaign:playerpageid

Déclenché chaque fois que la page sur laquelle les joueurs se trouvent change.

change:campaign:turnorder

Déclenché chaque fois que l'ordre de tour pour la campagne change.

change:campaign:initiativepage

Déclenché chaque fois que l'ordre de tour est masqué ou affiché pour une page. Cela peut ne pas être le même que l'ID de la page actuellement active. Si cela est défini surfaux(y compris si un script API le définit sur faux), cela fermera l'ordre des tours pour tous les MJ/joueurs. Le définir sur un ID de page valide l'ouvrira pour tous les MJ/joueurs.


Événements d'objets

change:graphic

Déclenché chaque fois qu'un objet Graphique (qui est pratiquement n'importe quel type d'objet sur la table de jeu, y compris les jetons, les cartes et les cartes) change.

Remarque : Les objets Graphiques créés par l'API déclencheront cet événement lors de la création.

Paramètres de rappel : obj, prev

on("change:graphic", function(obj, prev) {    
  //Faire quelque chose avec "obj" ici. "prev" est une liste des valeurs précédentes.
  // Notez que "obj" et "prev" sont des TYPES d'objet différents. 
  // Pour travailler avec obj, vous devez utiliser obj.get("name");
  // Pour travailler avec prev, vous pouvez utiliser prev["name"];
});

change:graphic:(property)

Vous pouvez également lier un événement à chaque propriété spécifique de l'objet. Ainsi, si vous avez un script que vous voulez exécuter uniquement lorsque la rotation dechange, vous pouvez le faire :

on("change:graphic:rotation", function(obj, prev) {    
  // Toujours remettre la rotation à 0, ainsi personne ne peut faire tourner les objets.    
  obj.set("rotation", 0);
});

add:graphic

Déclenché lorsque un objet graphique est ajouté pour la première fois sur la table de jeu. Cet événement sera également appelé pour les objets existants lors du démarrage du plateau de table si vous liez cet événementen dehors dede l'événementready.

Paramètres de rappel: obj

on("add:graphic", function(obj) {
  // Sera appelé pour tous les nouveaux graphiques, y compris ceux qui existaient déjà au début de la session de jeu.
});

var commencé = false;

sur("prêt", function() {
  sur("ajouter:graphique", function(obj) {
    //Ne sera appelé que pour les nouveaux objets ajoutés, car les objets existants ont déjà été chargés avant que l'événement prêt ne se déclenche.
  });
  //Vous pouvez également définir une variable et ignorer les événements ajouter jusqu'à ce qu'elle soit vraie.
  commencé = vrai;
});

détruire:graphique

Déclenché chaque fois qu'un objet graphique est supprimé du tableau.

Paramètres de rappel : obj

Autres types d'objets

Il y a aussi des événements pour tous les autres types d'objets, et sous-types, tels que :

changer:chemin, ajouter:chemin, détruire:chemin, changer:texte, ajouter:texte, détruire:texte, changer:jeton, ajouter:jeton, détruire:jeton, changer:carte, ajouter:carte, détruire:carte

Voir la référence des objets pour une liste complète de tous les types et sous-types d'objets.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 11 sur 14