Parámetros de devolución de llamada
Cuando escucha un evento, crea una función conocida comocallbackque se ejecuta cada vez que se produce el evento. La función de devolución de llamada recibe varios parámetros que son objetos que le proporcionan la información que desea saber sobre el evento para que pueda decidir qué hacer.
Los parámetros de devolución de llamada para cada evento variarán, pero incluyen:
obj
El objeto que se modificó. Cualquier cambio que realice en este objeto también se guardará en el juego. Por lo tanto, si desea mover un objeto gráfico hacia la izquierda, debe modificar la propiedadizquierdadeobjusingset.
-
obj.get("propiedad")devuelve el valor actual de la propiedad. -
obj.set("propiedad", "nuevo valor")establece un nuevo valor para la propiedad. Si va a cambiar varias propiedades a la vez, puede pasar un objeto:obj.set({left: 10, top: 20});
anterior
Este es un objeto con las propiedades delobjtal y como eran antes de que se realizaran cambios debido a este evento. Útil para determinar «cuánto» ha cambiado una propiedad.
NOTA:Este es un objeto básico, por lo que se accede a las propiedades utilizando la notación entre corchetes:prev["bar1_value"], NO utilizando las funciones set o get.
Pedido de eventos
Los eventos se activan de forma sincrónica (lo que significa que cada función no se iniciará hasta que la anterior haya finalizado) en orden desde el primer enlace hasta el último, y también desde una propiedad específica hasta un objeto general. Entonces, dado lo siguiente:
on("change:graphic", función1);
on("change:graphic", función2);
on("change:graphic:left", función3);
Si la propiedadleftde los objetos cambiara, el orden sería function3, luego function1 y luego function2.
Además, si tiene varios scripts en su campaña, estos se cargan en el mismo orden en que aparecen en la página Scripts de campaña, de izquierda a derecha.
Nota: Los eventos solo se activan por los cambios realizados por los jugadores o el GM que juega la partida. Los eventos no se activarán por cambios en la API. Por lo tanto, si un jugador mueve una pieza sobre el tablero, usted recibiría un evento «change:graphic». Si modifica la propiedad del mismo gráfico en un script Mod (API), no se activará el evento «change:graphic».
Eventos de la campaña
listo
Este evento se activa después de que se hayan cargado todos los datos actuales de la campaña. Por lo tanto, si desea encontrar una lista de todos los objetos de una campaña, o un objeto específico que ya se encuentra en la campaña, asegúrese de buscarlo solo después de que se active el evento «ready». Además, si vincula eventosde adición(comoadd:graphic) antes de que se active el eventoready, recibirá eventos de adición para objetos que ya estaban presentes en la campaña.
on("ready", function() {
var tokenThatAlreadyExisted = getObj("graphic", "-ABc123");
});
cambio:campaña:id de la página del jugador
Se activa cada vez que cambia la página en la que se encuentran ustedes.
cambio:campaña:orden de turno
Se activa cada vez que cambia el orden de turno de la campaña.
cambio:campaña:página de la iniciativa
Se activa cada vez que se oculta o se muestra el orden de turno de una página. Es posible que no coincida con el ID de la página actualmente activa. Si se establece enfalso (incluso si un script Mod (API) lo establece en falso), se cerrará el orden de turno para todos los GM/jugadores. Si se establece un ID de página válido, se abrirá para todos los GM/jugadores.
Eventos de objetos
cambio:gráfico
Se activa cada vez que cambia un objeto gráfico (que es casi cualquier tipo de objeto sobre la mesa, incluyendo fichas, mapas y cartas).
Nota: Los objetos gráficos creados por la API activarán este evento al crearse.
Parámetros de devolución de llamada: obj, prev
on("change:graphic", function(obj, prev) {
//Haga algo con "obj" aquí. «prev» es una lista de valores anteriores.
// Tenga en cuenta que «obj» y «prev» son TIPOS diferentes de objetos.
// para trabajar con obj, debe utilizar obj.get("name");
// para trabajar con prev, puede utilizar prev["name"];
});
cambio:gráfico:(propiedad)
También puede vincularse a un evento para cada propiedad específica del objeto. Por lo tanto, si tiene un script que desea ejecutar solo cuando cambia larotación, haría lo siguiente:
on("change:graphic:rotation", function(obj, prev) {
//Siempre restablezca la rotación a 0, para que nadie pueda rotar objetos.
obj.set("rotation", 0);
});
añadir:gráfico
Se activa cada vez que se añade un objeto gráfico a la mesa por primera vez. También se invocará para los objetos existentes cuando se inicie la mesa si vincula este eventofueradel eventoready.
Parámetros de devolución de llamada: obj
on("add:graphic", function(obj) {
//Se llamará para todos los gráficos nuevos, incluidos los que ya existían al inicio de la sesión de juego.
});
var started = false;
on("ready", function() {
on("add:graphic", function(obj) {
//Solo se llamará para los nuevos objetos que se añadan, ya que los objetos existentes ya se han cargado antes de que se active el evento ready.
});
//También puede establecer una variable e ignorar los eventos de adición hasta que sea verdadera.
started = true;
});
destruir:gráfico
Se activa cada vez que se retira un objeto gráfico de la mesa.
Parámetros de devolución de llamada: obj
Otros tipos de objetos
También hay eventos para todos los demás tipos de objetos y subtipos, tales como:
cambiar:ruta, añadir:ruta, destruir:ruta, cambiar:texto, añadir:texto, destruir:texto, cambiar:token, añadir:token, destruir:token, cambiar:tarjeta, añadir:tarjeta, destruir:tarjeta
Véase la referencia de objetos para obtener una lista completa de todos los tipos y subtipos de objetos.