API: 이벤트

여러 가지 다른 유형의 이벤트에 응답할 수 있습니다. 일반적으로 각 객체 유형은 변경, 추가 및 제거에 대한 해당 이벤트를 가지고 있습니다. 각 이벤트는 변경되는 개체마다 한 번씩 트리거됩니다. 같은 시간에 개체의 여러 속성이 변경되면 하나의 "전역" 이벤트(예: change:graphic)만 트리거됩니다.


콜백 매개변수

이벤트를 수신하면 이벤트가 발생할 때마다 실행되는콜백()이라는 함수를 만들게 됩니다. 콜백 함수는 이벤트에 대한 정보를 알려주는 객체인 여러 매개변수를 받아서 어떤 작업을 할지 결정할 수 있습니다.

각 이벤트에 대한 콜백 매개변수는 다양하지만 다음을 포함합니다.

obj

변경된 개체입니다. 이 개체에 대한 변경 사항은 게임에도 저장됩니다. 따라서 그래픽 객체를 왼쪽으로 이동하려면set을 사용하여객체왼쪽속성을 수정하면 됩니다.

  • obj.get("property")현재 속성의 값을 반환합니다.
  • obj.set("property", "newvalue")속성에 새 값을 설정합니다. 여러 속성을 동시에 변경하는 경우 객체를 전달할 수 있습니다:obj.set({left: 10, top: 20});


prev

이벤트로 인해 변경되기 전의 obj의 속성 객체입니다. 속성이 얼마나 변화했는지를 확인하는 데 유용합니다.

참고:기본 객체이므로 속성에는 괄호 표기법을 사용하여 액세스합니다:prev["bar1_value"], set 또는 get 함수를 사용하지 않습니다.


이벤트 순서

이벤트는 처음에 바인딩된 함수부터 마지막에 바인딩된 함수까지 순서대로 동기적으로 발생하며, 특정 속성에서 일반 객체로도 발생합니다. 따라서 다음 내용을 고려하십시오:

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

객체가에서으로 변경되었을 경우, 순서는 function3, function1, function2가 됩니다.

또한, 캠페인에 여러 개의 스크립트가 있는 경우, 스크립트는 캠페인 스크립트 페이지에 표시된 순서대로 왼쪽에서 오른쪽으로 로드됩니다.

노트: 이벤트는 플레이어/게임을 하는 GM에 의해 수행된 변경에 의해서만 트리거됩니다. API 변경으로 인해 이벤트가 트리거되지 않습니다. 따라서 플레이어가 테이블탑에서 조각을 이동하면 "change:graphic" 이벤트를 받게 됩니다. 만약 모드(API) 스크립트에서 동일한 그래픽 속성을 수정한다면, "change:graphic" 이벤트가 트리거되지 않을 것입니다.


캠페인 이벤트

준비 완료

이 이벤트는 캠페인의 현재 데이터가 모두 로드된 후에 발생합니다. 따라서 캠페인의 모든 객체 목록 또는 이미 캠페인에 있는 특정 객체를 찾으려면 ready 이벤트가 발생한 후에만 찾도록 해야합니다. 또한준비 완료이벤트가 실행되기 전에add이벤트(예:add:graphic)에 바인딩하면 캠페인에 이미 존재하는 개체에 대한 추가 이벤트를 수신하게 됩니다.

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

change:campaign:playerpageid

플레이어가 현재 보고 있는 페이지가 변경될 때마다 발생합니다.

change:campaign:turnorder

캠페인의 턴 순서 목록이 변경될 때마다 발생합니다.

change:campaign:initiativepage

페이지에 대해 턴 순서가 숨겨지거나 표시될 때마다 발생합니다. 이는 현재 활성 페이지의 ID와 동일하지 않을 수 있습니다. 이게 false로 설정된 경우(GM/플레이어에게서 턴 오더를 닫음), 모든 GMs/플레이어에 대한 턴 오더가 닫힐 것입니다. 유효한 페이지 ID로 설정하면 모든 GM/플레이어에게 열립니다.


Object 이벤트

change:graphic

테이블탑의 거의 모든 종류의 객체인 Graphic 객체(토큰, 맵, 카드 포함)가 변경될 때마다 트리거됩니다.

참고: API에서 생성된 Graphic 객체는 생성 시 이벤트를 트리거합니다.

콜백 매개변수: obj, prev

on("change:graphic", function(obj, prev) {    
  //여기서 "obj"로 무언가를 수행합니다. "prev"는 이전 값의 목록입니다.
  // "obj"와 "prev"는 서로 다른 유형의 객체입니다. 
  // obj를 사용하려면 obj.get("name")을 사용해야 합니다.
  // prev를 사용하려면 prev["name"]을 사용할 수 있습니다.
});

change:graphic:(property)

각 속성별로 개체에 대한 이벤트에 바인딩 할 수도 있습니다. 따라서회전이 변경될 때만 실행되는 스크립트가 있는 경우 다음과 같이 수행합니다.

on("change:graphic:rotation", function(obj, prev) {    
  // 항상 회전을 0으로 설정하여 개체를 회전시킬 수 없습니다.    
  obj.set("rotation", 0);
});

add:graphic

테이블탑에 그래픽 객체가 처음 추가 될 때마다 트리거됩니다. 테이블탑이 시작될 때 기존 개체에 대해서도 바인딩되면 이 이벤트가 호출됩니다.외부 준비이벤트에서.

콜백 매개 변수: obj

on("add:graphic", function(obj) {
  // 플레이 세션 시작 시 이미 존재하는 그래픽을 포함한 모든 새로운 그래픽에 대해 호출됩니다.
});

var started = false;

on("ready", function() {
  on("add:graphic", function(obj) {
    //준비 이벤트가 발생하기 전에 기존 객체가 이미 로드되었으므로 새로 추가되는 객체에 대해서만 호출됩니다.
  });
  //변수를 설정하고 참이 될 때까지 이벤트 추가를 무시할 수도 있습니다.
  started = true;
});

파괴:그래픽

테이블 상단에서 그래픽 개체가 제거될 때마다 트리거됩니다.

콜백 매개변수: 객체

기타 개체 유형

다른 모든 객체 유형과 다음과 같은 하위 유형에 대한 이벤트도 있습니다:

변경:경로, 추가:경로, 파괴:경로, 변경:텍스트, 추가:텍스트, 파괴:텍스트, 변경:토큰, 추가:토큰, 파괴:토큰, 변경:카드, 추가:카드, 파괴:카드

모든 객체 유형 및 하위 유형에 대한 전체 목록은 객체 참조을 참조하세요.

도움이 되었습니까?
14명 중 11명이 도움이 되었다고 했습니다.