API: 이벤트

여러분이 대응할 수 있는 이벤트에는 여러 가지 유형이 있습니다. 일반적으로 각 객체 유형에는 변경, 추가 및 제거에 대한 대응 이벤트가 존재합니다. 변경되는 개체마다 각 이벤트가 한 번씩 트리거됩니다. 객체의 여러 속성이 동시에 변경될 경우, 단 하나의 "전역" 이벤트(예: change:graphic)만 발생합니다.


콜백 매개변수

이벤트를 수신할 때, 해당 이벤트가 발생할 때마다 실행되는콜백함수를 생성합니다. 콜백 함수는 여러 매개변수를 받는데, 이 매개변수들은 해당 이벤트에 대해 알고 싶은 정보를 알려주는 객체들이므로, 이를 바탕으로 어떻게 처리할지 결정할 수 있습니다.

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

obj

변경된 객체. 이 객체에 가하는 모든 변경 사항은 게임에도 저장됩니다. 그래픽 객체를 왼쪽으로 이동하려면set을사용하여obj의left속성을 수정하면 됩니다.

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


이전

이것은 해당 이벤트로 인해 변경되기 전 상태의obj객체의 속성들입니다. 특성 변화의 정도를 판단하는 데 유용합니다.

참고:이 객체는 기본 객체이므로, 속성에 접근할 때는 set 또는 get 함수를 사용하지 않고 대괄호 표기법(prev["bar1_value"])을 사용합니다.


이벤트 순서 지정

이벤트는 동기식으로 발생합니다(즉, 각 함수는 이전 함수가 완료될 때까지 시작되지 않음). 이는 첫 번째로 바인딩된 이벤트부터 마지막으로 바인딩된 이벤트 순서대로, 또한 특정 속성에서 일반 객체 순서로 진행됩니다. 따라서 다음과 같은 경우:

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

객체의left속성이 변경된 경우, 순서는 function3, function1, function2가 됩니다.

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

참고: 이벤트는 게임 플레이어/게임 GM이 수행한 변경 사항에 의해서만 발생합니다. API 변경으로 인해 이벤트가 발생하지 않습니다. 따라서 플레이어가 테이블탑 위에서 조각을 이동시키면, "change:graphic" 이벤트를 수신하게 됩니다. Mod(API) 스크립트에서 동일한 그래픽의 속성을 수정할 경우, "change:graphic" 이벤트가 발생하지 않습니다.


캠페인 행사

준비됨

이 이벤트는 캠페인에 대한 현재 데이터가 모두 로드된 후에 발생합니다. 따라서 캠페인 내 모든 객체 목록을 찾거나 캠페인에 이미 존재하는 특정 객체를 찾으려면, 반드시 준비 이벤트가 발생한 후에만 검색해야 합니다. 또한,ready이벤트가 발생하기 전에add이벤트(예:add:graphic)에 바인딩하면 캠페인에 이미 존재하던 객체에 대한 add 이벤트를 수신하게 됩니다.

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

change:campaign:playerpageid

플레이어가 현재 위치한 페이지가 변경될 때마다 발동됩니다.

변경:캠페인:턴순서

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

변경:캠페인:이니셔티브페이지

턴 순서가 페이지에 대해 숨겨지거나 표시될 때마다 발동됩니다. 이는 현재 활성화된 페이지의 ID와 동일하지 않을 수 있습니다. 이 설정이false로 설정된 경우(Mod(API) 스크립트가 false로 설정하는 경우 포함), 모든 GM/플레이어의 턴 순서를 종료합니다. 유효한 페이지 ID로 설정하면 모든 GM/플레이어에게 열립니다.


객체 이벤트

change:graphic

그래픽 객체(테이블탑 위의 거의 모든 유형의 객체, 토큰, 맵, 카드 포함)가 변경될 때마다 트리거됩니다.

참고: API로 생성된 그래픽 객체는 생성 시 이 이벤트를 트리거합니다.

콜백 매개변수: obj, prev

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

change:graphic:(속성)

객체의 각 특정 속성에 대해 이벤트를 바인딩할 수도 있습니다. 따라서회전이변경될 때만 실행하려는 스크립트가 있다면 다음과 같이 하면 됩니다:

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) {
    // 기존 객체는 ready 이벤트 발생 전에 이미 로드되었으므로, 새로 추가된 객체에 대해서만 호출됩니다.
  });
  //변수를 설정하고 해당 변수가 참이 될 때까지 추가 이벤트를 무시할 수도 있습니다.
  started = true;
});

파괴:그래픽

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

콜백 매개변수: obj

기타 객체 유형

다른 모든 객체 유형 및 하위 유형에 대해서도 이벤트가 존재하며, 예를 들어 다음과 같습니다:

경로 변경, 경로 추가, 경로 삭제 텍스트 변경, 텍스트 추가, 텍스트 삭제 토큰 변경, 토큰 추가, 토큰 삭제 카드 변경, 카드 추가, 카드 삭제

참조 객체 참조 모든 객체 유형 및 하위 유형의 전체 목록을 확인하십시오.

도움이 되었습니까?
16명 중 12명이 도움이 되었다고 했습니다.