캐릭터맨서

캐릭터매니저는 가상 테이블탑에서 사용자의 의사 결정 과정을 안내하는 Roll20 시스템입니다. 이 기능은Roll20 공식 DND 5eRoll20 공식 패스파인더캐릭터 시트에 구현되어 있습니다.


번역

캐릭터 시트의 다른 영역과 마찬가지로 캐릭터맨서에서도 시트 표준을 따라야 합니다. 여기에는 국제화(또는 i18n 번역 키)가 포함됩니다. html 태그에 요소를 추가하여 모든 요소를 번역하도록 지정할 수 있습니다. 번역의 작동 방식에 대한 자세한 내용은에서 확인하세요.


슬라이드

인트로 슬라이드

<charmancer class="sheet-charmancer-intro">

캐릭터매니저는 일련의 슬라이드를 순서대로 로드하는 방식으로 작동합니다. 슬라이드는 문자 시트의 HTML 파일에 포함된 HTML 블록입니다. <charmancer>태그가 지정되어 있습니다. 각 슬라이드의 이름을 지정해야 호출하거나 참조할 수 있으며, 이는 <charmancer> 태그 안에 '시트-챔피언-' 앞에 클래스를 추가하고 그 뒤에 슬라이드 이름을 붙이면 됩니다. 슬라이드에는 아래에 설명된 몇 가지 주목할 만한 추가 사항 및 예외 사항과 함께 문자 시트와 동일한 HTML 요소 및 입력이 모두 포함될 수 있습니다. 슬라이드는 시트 워크워커에서 startCharactermancer(<slide name>) 함수를 통해 호출하거나 다른 슬라이드에서 "다음" 버튼을 통해 호출할 수 있습니다.


개요 iFrame

<div class="sheet-compendium-page sheet-example" accept="CategoryIndex:Backgrounds"></div>

슬라이드 내부에는 캐릭터 시트의 개요 페이지를 표시할 수 있는 개요 i프레임이 있습니다. 슬라이드 내부의 태그에 "시트-요약 페이지" 클래스가 지정되고 accept 매개변수도 지정되면 슬라이드가 렌더링될 때 그 안에 포함된 Compendium iFrame도 포함됩니다. accept 매개변수는 캐릭터 시트에서 사용 중인 책의 개요 페이지와 일치해야 하며, 그렇지 않으면 데이터가 표시되지 않습니다. 개요 i프레임은 시트 워커에서 changeCompendiumPage 함수를 사용하여 동적으로 업데이트할 수 있습니다.


슬라이드 탐색

다음 버튼

<button type="submit" value="example">다음</button>

다음 버튼은 캐릭터매니저를 다음 슬라이드로 전환합니다. 버튼 유형은 "제출"이어야 하며 값 매개변수는 다른 슬라이드의 이름과 일치해야 합니다. 또한, 표시됨과 필수 모두에 해당하는 모든 캐릭터맨서 입력에 값이 있는지 확인합니다. 이 작업은 값이 없는 필수 입력을 강조 표시하여 반환하고 다음 슬라이드로 진행하지 않습니다.


뒤로 가기 버튼

<button type="back" value="example">뒤로</button>

뒤로 버튼은 '뒤로'를 유형으로 요구하고 필수 필드의 유효성을 검사하지 않는다는 점을 제외하면 다음 버튼과 동일하게 작동합니다.


취소 버튼

<button type="cancel" value="example">캐릭터맨 취소</button>

취소 버튼은 캐릭터매니저를 닫고 사용자를 캐릭터 시트로 되돌립니다. 버튼 유형은 "취소"여야 합니다. 버튼을 클릭하면 발생하는 이벤트를 통해 해당 값을 전달할 수 있으며, 이 이벤트는"mancer:cancel"리스너가 들을 수 있습니다. 


완료 버튼

<button type="finish" value="example">변경 사항 적용</button>

마침 버튼을 누르면 캐릭터매니저가 닫히고 캐릭터 시트로 돌아갑니다. 버튼 유형은 "완료"여야 합니다. 마침 버튼을 클릭하면 캐릭터맨서 데이터 오브젝트를 인수로 포함하는"mancerfinish:name"리스너로 들을 수 있는 이벤트가 생성됩니다.


최종 슬라이드

"최종"이라는 이름은 특별한 슬라이드를 위해 예약되어 있습니다. 최종 슬라이드는 캐릭터매니저와 캐릭터 시트 사이의 전환 역할을 합니다. 최종 슬라이드가 호출되면 Charactermancer는 비활성화되지만finishCharactermancer()가 호출될 때까지 최종 슬라이드의 콘텐츠를 표시하는 것은 계속 표시됩니다. 이 슬라이드에서는 캐릭터 시트와 워커가 캐릭터맨서 데이터 오브젝트의 모든 결과를 가져와서 플레이어에게 제어권을 반환하기 전에 적용할 수 있습니다.


캐릭터매니저 입력

<input type="text" name="comp_example">

캐릭터맨서의 어트리뷰트는 캐릭터 시트와는 다른 명명 규칙을 사용합니다. 캐릭터맨서 입력은"comp_"으로 시작합니다. 규칙으로 명명된 입력과 선택은 그 값을 캐릭터맨서 데이터 오브젝트에 자동으로 전달합니다. 데이터 개체는getCharmancerData()함수를 호출하여 현재 및 향후 슬라이드에서 참조할 수 있으며,mancerfinish이벤트에서 캐릭터 시트용으로도 출력됩니다.

Charactermancer 데이터 객체

{
    "첫 번째 슬라이드":
    {
        "data":
        {},
        "values":
        {}
    },
    "second-slide":
    {
		"data":
		{
			"choice1":
			{
				"위젯 수":
				{
					"위젯": 2
				},
				"위젯 유형":
				{ 
					"Type": "Spongy"
				}
			}
		},
        "values":
        {
            "choice1": "위젯:예제"
        },
		"반복": ["<repeating_id1>","<repeating_id2>"]
    }
}

캐릭터맨서 데이터 오브젝트는 입력된 데이터를 자동으로 저장하고 프로세스를 통해 각 슬라이드에서 선택합니다. 이러한 입력 및 선택 항목의 값은 슬라이드의 이름과 'values' 키 아래에 JSON 형식으로 저장됩니다. 또한 '데이터'는 getCompendiumData 함수에서 데이터 객체의 슬라이드 네임스페이스로 전달할 수 있습니다. 슬라이드에 반복되는 섹션이 있는 경우 반복되는 ID는 해당 슬라이드의 '반복' 키 아래에 저장됩니다. 전체 객체는 언제든지 getCharmancerData 함수를 사용하여 가져올 수 있습니다.


필수

<input type="text" name="comp_example" required> 

태그에서 '필수'로 표시된 입력 및 선택 항목은 해당 필드에 값이 지정될 때까지 사용자가 현재 슬라이드를 완료하고 다음 슬라이드로 이동할 수 없습니다. 다음 버튼을 사용할 때 비워둔 필수 필드에는"sheet-hilite"클래스가 부여되며 사용자는 다음 슬라이드로 진행하지 않습니다. 필수 입력이 조건부 섹션 안에 숨겨져 있는 경우에는 요구 사항을 적용하지 않습니다. 요소 그룹을 필수로 설정할 수 있습니다. 부모 div의 태그에 필수를 추가하면 그 안에 있는 모든 자식 입력 및 선택 항목도 필수 항목이 됩니다.


개요 채워진 선택 항목

<select name="comp_race" accept="Category:Items"> 

슬라이드 내부의 선택 항목은 Roll20 개요서의 옵션으로 자동 채워질 수 있습니다. 선택 항목에는 컴피디아 호환 검색 문자열을 포함하는 허용 매개변수가 필요합니다. 복잡한 다중 속성 검색을 사용하여 특정 필터링된 결과를 제공할 수 있습니다. 이러한 방식으로 채워진 옵션은 결과 뒤에 괄호 안에 소스 확장이 포함됩니다. 


조건부 섹션

 <div class="sheet-choice sheet-example"> 

조건부 섹션은 "시트 선택" 태그가 있는 HTML 태그입니다. 이러한 섹션은 슬라이드가 렌더링될 때마다 기본적으로 숨겨집니다. 각각showChoices(<class name>)hideChoices(<class name>)함수를 사용하여 표시하거나 숨길 수 있습니다.


작업 버튼

 <button type="action" name="act_starting_gold"></button> 

캐릭터매니저 업데이트에 액션 버튼이 도입되었습니다. 이러한 버튼은 '클릭' 이벤트 리스너를 통해 수신할 수 있습니다. 캐릭터매니저에만 국한되지 않고 캐릭터 시트에서도 사용할 수 있습니다. 버튼의 유형은 "action"이어야 하며, 버튼 이름 앞에act_을 붙여야 들리도록 합니다.


캐릭터맨서 리스너

이 리스너는 캐릭터맨서의 변경 사항을 처리하고 캐릭터맨서 기능에 액세스할 수 있습니다.


mancerchange

on("mancerchange:choice_1 mancerchange:choice_3", function(eventinfo) {...}); 

맨서 변경 리스너는 캐릭터맨서 입력 값이 변경될 때 발동됩니다. 이 함수는 다음 속성을 포함하는 인수를 전달합니다:

  • currentStep:"charmancer-intro" 사용자가 현재 있는 슬라이드입니다.
  • 새로운 값:"종족:엘프" 캐릭터매니저 입력 값이 다음과 같이 변경되었습니다.
  • sourceType:"player" 변경이 "작업자"에 의해 트리거되었는지, 아니면 "플레이어"에 의해 트리거되었는지 여부
  • triggerName:"race" 변경된 캐릭터맨서 입력의 이름입니다.

페이지로 이동합니다:<slide name>

on("page:charmancer-intro", function(eventinfo) {...});

페이지 리스너는 슬라이드가 열릴 때 다음 버튼이나 startCharmancer 함수에 의해 호출될 때 트리거됩니다. 이 함수는 다음 속성을 포함하는 인수를 전달합니다:

  • sourceType:"player" 변경이 "작업자"에 의해 트리거되었는지, 아니면 "플레이어"에 의해 트리거되었는지 여부
  • triggerName:"charactermancer-intro" 방금 연 Charactermancer 슬라이드의 이름입니다.

클릭:<action button name>

on("clicked:action_button", function(eventinfo) {...});

클릭된 리스너는 액션 버튼이 클릭될 때 트리거됩니다. 다음 속성을 포함한 인수를 전달합니다:

  • triggerName:"clicked:action_button" 클릭된 액션 버튼의 이름

mancerroll:<roll button name>

 on("mancerroll:roll_stats", function(eventinfo) {...}); 

이 리스너는 Charactermancer에서 롤 버튼이 클릭될 때 트리거됩니다. 다음 속성을 포함한 인수를 전달합니다:

  • currentStep:"charmancer-intro" 사용자가 있는 현재 슬라이드
  • roll: 롤의 결과를 포함하는 JSON 객체입니다.
  • triggerName:"roll_stats" 리스너를 트리거한 Charactermancer 롤의 이름

시트 리스너

이 리스너는 Charactermancer를 종료한 후에 트리거되며 일반적인 시트 작업자에 접근할 수 있습니다.


맨서:취소

 on("mancer:cancel", function(eventinfo) {...}); 

맨서:취소 리스너는 플레이어가 취소 버튼을 사용하여 Charactermancer를 종료할 때 트리거됩니다. 이는 사용자가 Charactermancer를 다시 시작할 때 사용할 수 있습니다. 이는 사용자가 Charactermancer에서 나온 슬라이드의 이름을 값으로 가진 객체를 인수로 전달합니다:

  • value: "slide1"

맨서완료:<name>

 on("mancerfinish:l1-mancer", function(eventinfo) {...}); 

맨서완료 리스너는 플레이어가 완료 버튼을 사용하여 Charactermancer를 종료할 때 트리거됩니다. 이는 Charactermancer 데이터 객체와 동일한 값을 가진 객체를 인수로 전달합니다. 이곳에서 Charactermancer의 선택 사항이 시트 자체에 적용됩니다. 변경 사항이 적용되는 동안 '최종' 슬라이드를 업데이트할 수 있는setCharmancerText()함수를 여기에서 사용할 수 있습니다.


기능

Charactermancer가 활성화되어 있는 동안 일반 시트 작업자는 비활성화되어 있습니다. 다음은 예외입니다:

setAttrs() 은 여전히 Charactermancer가 활성화된 상태에서 사용할 수 있지만, 기능이 다릅니다. 현재 Charactermancer 슬라이드를 위한 값만 설정할 수 있습니다. 속성을 수정하지 않고 시트 속성에 액세스하는 함수인 (예: getAttrs() 및 getSectionIDs()) 는 정상적으로 작동합니다. getCompendiumPage() 및 getCompendiumQuery() 은 시트와 Charactermancer 모두에서 작동합니다.

선택기에 대한 참고 사항: 이러한 함수 중 많은 함수가 슬라이드에서 관련 HTML 요소를 찾기 위해 CSS 선택기를 사용합니다. 이 선택기의 첫 번째 부분은 클래스여야 하지만, 나머지 선택기는 유효한 JQuery 선택기 구문을 사용할 수 있습니다.


Charactermancer가 활성화된 경우에만 이러한 함수를 사용할 수 있습니다:

startCharactermancer(<slide name>)

startCharactermancer("first-slide"); 

startCharactermancer 함수는 Charactermancer를 실행합니다. 이것은 캐릭터 시트를 숨기고 Charactermancer를 로드합니다. 이것은 첫 번째 인수로 전달된 이름이 지정된 슬라이드의 HTML을 로드하고 해당 슬라이드의 페이지 열기 리스너를 트리거합니다.


setCharmancerText(<update object>);

 setCharmancerText({"class_example":"Hello world!"}); 

setCharmancerText함수를 사용하면 현재 슬라이드의 일부를 새 텍스트로 업데이트할 수 있습니다. 함수에 전달되는 인수는 업데이트할 요소의 선택자가 키이고 해당 섹션의 기존 콘텐츠를 대체할 텍스트가 값인 객체입니다. 이 함수는 html 태그 사용을 허용하며, 모든 텍스트는 캐릭터 시트의 나머지 부분에 사용되는 동일한 sanitize 함수를 통과합니다 (예를 들어, 클래스 이름에는sheet-가 앞에 붙습니다).


changeCompendiumPage(<IFrame selector>, <Compendium Page Name>)

 changeCompendiumPage("sheet-iframe", "Welcome Page"); 

changeCompendiumPage 함수는 현재 슬라이드에 로드된 Compendium iFrame의 compendium 페이지를 동적으로 변경할 수 있습니다. 첫 번째 인수는 iFrame의 클래스 이름과 일치해야 하며, 두 번째 인수는 렌더링할 Compendium 페이지를 전달합니다. 고유한 일치를 보장하기 위해 페이지의 카테고리를 사용하는 것이 좋습니다. 예를 들어, "드루이드"는 "클래스" 카테고리와 "NPC" 카테고리에서 모두 페이지와 일치할 수 있지만, "클래스:드루이드"는 고유한 페이지가 됩니다.


changeCharmancerPage(<slide name>, <callback>)

 changeCharmancerPage("options_slide", function() {...}); 

이 함수는 Charactermancer의 현재 슬라이드를 변경합니다. 첫 번째 인수는 슬라이드의 이름입니다. 슬라이드 로드 후에 호출되는 콜백을 받아들입니다.


setAttrs(<update object>)

 setAttrs({"test_attribute": 2}) 

setAttrs 함수는 Charactermancer 입력과 Character Sheet 속성에 대해 동일하게 작동하지만 다음과 같은 예외가 있습니다. Charactermancer가 활성화된 상태에서는 Charactermancer 입력을 업데이트하는 데만 사용할 수 있으며, 라디오 및 체크박스 입력을 지정된 값과 일치하지 않는 경우에는 값이 지워집니다. 이러한 속성들은 슬라이드에 입력이 있어야 하며, 그렇지 않으면 Charactermancer 데이터 객체에서 값이 삭제됩니다.


setCharmancerOptions(<Class Name>, <Select Options>, <Settings>, <Callback>); </pre>

 setCharmancerOptions("select-class", "Category:Items Type:Weapons", {add:["Magic Longsword","Axe of Amazingness"], category:"Items"}); 

setCharmancerOptions 함수를 사용하면 필요에 따라 Charactermancer Selects 또는 Radio Inputs를 동적 옵션으로 업데이트할 수 있습니다. 이 함수는 첫 번째 두 인수가 필요하지만 최대 네 개의 인수를 받을 수 있습니다. 첫 번째 인수는 옵션으로 채우려는 Charactermancer Select의 클래스 이름입니다. 두 번째 인수는 미리 정의된 옵션 배열을 전달하거나 Compendium 검색 문자열과 함께 전달하여 Compendium에서 동적 옵션 목록을 생성할 수 있습니다. 세 번째 인수는 아래에 자세히 설명된 여러 가지 선택적 설정을 받습니다. 마지막 인수는 setCharmancerOptions가 반환한 후 실행되는 콜백입니다. 이 콜백은 찾아진/채워진 값의 배열을 매개변수로 받습니다. type='radio' Inputs와 함께 사용할 경우, 함수는 동일하게 작동하지만 해당 슬라이드에서 해당 이름을 가진 모든 span을 찾아서<label><input type="checkbox">콘텐츠</label>로 채웁니다.

  • category: 옵션의 카테고리 이름
  • disable: 값과 일치해야 하는 비활성화 옵션의 배열
  • selected: 초기 선택된 옵션의 값
  • add: 선택 옵션 하단에 포함할 추가 또는 기타 옵션의 배열
  • show_source: Compendium Expansion 이니셜을 괄호로 묶어 옵션을 표시합니다 (select 옵션으로 compendium 쿼리를 사용할 때만 사용 가능)

disableCharmancerOptions(<Class Name>, <Select Options>, <Settings>);

 disableCharmancerOptions("select-class", ["one","two"]); 

The disableCharmancerOptions functions similarly to setCharmancerOptions . It only accepts an array of options to disable either Charactermancer Selects or Radio Inputs. The function will not disable a currently selected option. If two or more selects have the same values, it disables on all of them at once. Passing in an empty array will re-enable everything.


showChoices([<class name>]);

 showChoices(["sheet-test","sheet-test2]); 

The showChoices function reveals hidden Conditional Sections with the sheet-choice class. It accepts an argument as an array of class names for Conditional Sections to reveal.


hideChoices([<class name>]);

 hideChoices(["sheet-test","sheet-test2]); 

The hideChoices function hides currently visible Conditional Sections with the sheet-choice class. It accepts an argument as an array of class names for Conditional Sections to hide. If no argument is given it will hide all choices on the current slide.


getCompendiumPage(<Compendium Page Name>, [<Values>], <Callback>)

 getCompendiumPage(<code> Compendium Name", function(data) {...}); 

The getCompendiumPage function pulls the data attributes of a Compendium Page and allows you to pass that data to both the Charactermancer Data Object and a callback function. The first argument the function takes is the name of the Compendium Page you want to pull the data from, or an array of pages. Again, it is recommended to use the format <category>:<pagename> to ensure the correct result. 세 번째 옵션은 데이터 객체를 인수로 전달하는 콜백입니다.

이 함수가 속성에 대한mancerchange:이벤트에서 호출되면 모든 데이터가 해당 속성 이름과 일치하는 키 아래에 있는 현재 슬라이드의 JSON 객체 '데이터' 섹션에 저장됩니다. 데이터가 제대로 저장되도록 하려면 해당 이벤트에서 호출되는 첫 번째 비동기 시트 워커가getCompendiumPage인지 확인하는 것이 좋습니다. 이 함수로 여러 페이지를 가져오는 경우 데이터는 첫 번째 페이지만 저장됩니다. 첫 번째 인수에 빈 문자열을 사용하면 해당 속성의 현재 저장된 데이터가 지워지지만 속성의 값은 지워지지 않습니다.

이 데이터는 Firebase에 저장되지 않습니다. 대신 Charactermancer가 처음 열릴 때 컴펜디움에서 모든 데이터 필드를 한 번에 가져옵니다.


getCompendiumQuery(<Compendium Query String>, <Callback>)

 getCompendiumQuery("카테고리:주문 레벨:1|2|3 클래스:*바드", function(data) {...}); 

이 함수는 getCompendiumPage와 유사하게 작동하지만, 결과를 가져오기 위해 쿼리 문자열(또는 쿼리 배열)을 사용하며 Charactermancer 객체에 데이터를 저장하지 않습니다.


getCharmancerData()

 var data = getCharmancerData(); 

getCharmancerData는 Charactermancer 데이터 개체의 현재 값을 반환합니다.


deleteCharmancerData([<pages>], <Callback>)

 deleteCharmancerData(["slide1","slide3","slide4"], function(data) {...}) 

deleteCharmancerData 함수는 두 개의 인수를 허용합니다. 첫 번째 인수는 모든 관련 Charactermancer 데이터 개체 및 값이 삭제되어 슬라이드가 방문되지 않았던 것처럼 슬라이드 이름의 배열입니다. 인수로 슬라이드를 전달하지 않으면 함수는 모든 데이터와 선택 사항을 제거합니다. 두 번째 인수는 deleteCharmancerData 함수가 완료된 후 수행되는 콜백입니다.


finishCharactermancer() =

 finishCharactermancer() 

The special case finishCharactermancer function transitions the Final Slide back to the Character Sheet.


setSectionOrder(<Repeating Section Name>, <Section Array>, <Callback>);

(Regular sheet worker function, not a Charactermancer function)

 setSectionOrder("proficiencies", final-array, callbackFunction); 

The setSectionOrder function allow the ordering of repeating sections according to your preference. The function accepts a repeating section ( repeating_  is prepended to this value), the method in which to order based on the repeating item data, and an optional callback function.


Charactermancer Repeating Sections

Repeating sections in the Charactermancer function differently than the repeating sections in character sheets. 페이지의 특정 요소( <fieldset>)에 정의되는 것이 아니라 Charactermancer의 반복 섹션은 활성 Charactermancer 슬라이드의 모든 요소(다른 반복 섹션 내부 포함)에 추가할 수 있는 HTML 코드의 스니펫입니다. 이 HTML은 시트의 나머지 부분과 동일한 방식으로 제거됩니다.

슬라이드에 섹션이 추가되면 해당 행에 대해 고유한 행 ID가 생성됩니다. 이 ID는 이 섹션의 부모 요소에 클래스로 적용되며 해당 섹션 내의 입력, 액션 버튼 또는 롤 버튼의 이름을 변경하는 데 사용됩니다. 네이밍 규칙은 "repeating_123456789_row_input"입니다. 여기서 "row"는 반복 섹션의 이름이고 "input"은 입력의 이름입니다. 반복 섹션의 입력 값은 해당 슬라이드의 나머지 값과 함께 Charactermancer 데이터 개체의 "values" 키 아래에 저장됩니다. 반복 섹션 이름 (각 값 내부가 아닌 상위 섹션의 이름)은 각 슬라이드에 대해 "repeating" 배열에 추가됩니다.

mancerchange,mancerroll,를 클릭하면 반복되는 섹션의 변경 내용을 들을 수 있습니다. 반복_123456789_row_입력을 변경하면 속성 자체(mancerchange:repeating_row_입력)와 해당 속성이 포함된 섹션(mancerchange:repeating_row)에 대한 변경이 트리거됩니다. 해당 섹션이 다른 반복 섹션 내에 있는 경우, 부모 반복 섹션에 대한 이벤트도 발생합니다. 반복 섹션 변경에 대한 이벤트 정보에는 일반적으로 언급된 일반 요소에 추가로 몇 가지 새 요소가 포함됩니다.

  • sourceAttribute:"반복_123456789_행_입력"변경된 특정 속성입니다.
  • sourceSection:"반복_행"sourceAttribute가 속해 있는 반복 섹션의 이름입니다.
  • triggerName:"반복_행"트리거된 리스너의 이름입니다.

이러한 섹션은 지속적이지 않으며, 사용자가 슬라이드를 떠나고 다시 방문할 때 반복 섹션 없이 슬라이드가 로드되며, 이 섹션을 페이지에 다시 추가하기 위해 자동 변경 이벤트가 발생하는 워커에 의존합니다 (슬라이드 재방문에 대한 아래 섹션 참조).


섹션 정의

<charmancer class="sheet-repeating-row">

 <charmancer class="sheet-repeating-row"> 

To define a repeating section, place the code snippet inside a <charmancer> tag, using a class starting with the keywords "sheet-repeating-". In the above example, the code within the <charmancer> tags will be defined as a repeating section called "row".


addRepeatingSection(<class_name>, <section_name>, <new_name>, <callback>)

 addRepeatingSection("sheet-class", "row", "spellrow", function(sectionid) {...}); 

This function appends the specified repeating section to the specified target element. The first argument is the selector for the target element, the second specifies which repeating section to add. The third argument is optional, it defines a new section name for this specific section, if it is omitted the section name will just use the second parameter as its name. 이 섹션에 대한 콜백은 섹션에 할당된 섹션 id를 받습니다.


clearRepeatingSections(<target>, <callback>)

 clearRepeatingSections("sheet-class", function() {...}); 

이 함수는 첫 번째 인수로 지정된 요소에서 모든 반복 섹션을 지웁니다. HTML 자체와 Charactermancer 데이터 객체에서 해당 값도 제거합니다.


clearRepeatingSectionById([<section_ids>], <callback>)

 clearRepeatingSectionById([<id1>, <id2>, ...], function() {...}); 

이 함수는 clearRepeatingSections 함수와 유사하지만 첫 번째 인수의 배열로 정의된 특정 반복 섹션만 지웁니다. 지정된 섹션 내의 모든 반복 섹션도 지웁니다.


getRepeatingSections(<target>, <callback>)

 getRepeatingSections("sheet-class", function(repeating) {...}); 

This function returns more detailed information about repeating sections on the current slide. The first argument is a selector for the target element. This is used to get a list of the repeating sections within that element. If this is omitted, the function returns all repeating sections on this slide. The data returned to the callback also contains a JSON object that shows the structure of the repeating sections, detailing which sections are inside other sections.


Revisiting Slides

If the user leaves a slide, then revisits it later, the Charactermancer will automatically trigger change events for the saved values on the page. This is to allow for the sheet workers to fire and rebuild the slide to its previous state. This is necessary, because the changes made by the functions that manipulate HTML (like setCharmancerText and addRepeatingSection ) do not persist. It is important to keep in mind that these workers may be firing when revisiting the slide. Plan Workers accordingly. 참고로 슬라이드를 다시 방문할 때, 이전 반복 섹션 ID는 이름이 일치하는 섹션에 대해 재사용되므로 이 ID는 일정해야 합니다.


가상 속성 charactermancer_step

charactermancer_step속성은 character_name과 같은 의사 속성입니다. 이를 통해 Charactermancer가 다음에 열리는 단계를 설정할 수 있습니다. 이 속성은 일반적인setAttrs함수로 설정할 수 있으며, Charactermancer가 활성화된 동안 설정할 수 없습니다.

도움이 되었습니까?
28명 중 7명이 도움이 되었다고 했습니다.