콜백 매개변수
이벤트를 수신하면 이벤트가 발생할 때마다 실행되는콜백()이라는 함수를 만들게 됩니다. 콜백 함수는 이벤트에 대한 정보를 알려주는 객체인 여러 매개변수를 받아서 어떤 작업을 할지 결정할 수 있습니다.
각 이벤트에 대한 콜백 매개변수는 다양하지만 다음을 포함합니다.
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; });
파괴:그래픽
테이블 상단에서 그래픽 개체가 제거될 때마다 트리거됩니다.
콜백 매개변수: 객체
기타 개체 유형
다른 모든 객체 유형과 다음과 같은 하위 유형에 대한 이벤트도 있습니다:
변경:경로, 추가:경로, 파괴:경로, 변경:텍스트, 추가:텍스트, 파괴:텍스트, 변경:토큰, 추가:토큰, 파괴:토큰, 변경:카드, 추가:카드, 파괴:카드