Personaggio-mercante

Il Charactermancer è un sistema di Roll20 per guidare un utente attraverso un processo decisionale sul Tavolo Virtuale. È stato implementato nei fogli di carattereRoll20 Official DND 5eeRoll20 Official Pathfinder.


Traduzione

Come il resto delle aree del Foglio del Personaggio, gli Standard del Foglio devono essere seguiti nel Charactermancer. Ciò include le chiavi di traduzione per l'Internazionalizzazione (o i18n). Qualsiasi elemento può essere designato per la traduzione aggiungendo un elemento al tag html. Leggi di più su come funziona la traduzione qui.


Diapositive

Diapositiva Intro

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

Il Charactermancer funziona caricando una serie di diapositive in ordine. Le diapositive sono blocchi di HTML inclusi nel file HTML del foglio del personaggio. Sono designati con un tag<charmancer>. Ogni diapositiva deve essere denominata per poter essere chiamata o referenziata, cosa che viene fatta dall'interno del tag <charmancer> aggiungendo una classe preceduta da "sheet-charmancer-" seguita dal nome della diapositiva. Le diapositive possono contenere tutti gli stessi elementi HTML e input del foglio del personaggio, insieme ad alcune aggiunte e eccezioni notevoli indicate di seguito. Le diapositive vengono chiamate da un Sheet Worker tramite la funzione startCharactermancer(<slide name>) o da un'altra diapositiva tramite il pulsante "successivo".


Compendium iFrame

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

Disponibile all'interno delle diapositive è l'iFrame del Compendium che consente di visualizzare le pagine del Compendium del foglio del personaggio. Se a una diapositiva viene assegnata la classe "sheet-compendium-page" e viene anche fornito un parametro di accettazione, quando la diapositiva viene renderizzata includerà anche l'iFrame del Compendium incorporato all'interno di essa. Il parametro di accettazione deve corrispondere a una pagina del Compendium del libro utilizzato dal foglio del personaggio, altrimenti i dati non verranno visualizzati. L'iFrame del Compendium può essere aggiornato dinamicamente da Sheet Worker utilizzando la funzione changeCompendiumPage.


Navigazione

Pulsante Successivo

<button type="submit" value="example">Successivo</button>

Il pulsante Successivo passa al prossimo passaggio del Charactermancer. Il tipo di pulsante deve essere "submit" e il parametro valore deve corrispondere al nome di un altro passaggio. Inoltre, verrà effettuato un controllo per verificare che tutti gli input del Charactermancer che sono visibili e obbligatori abbiano un valore. L'operazione restituirà un'evidenziazione degli input obbligatori senza valori e non passerà al passaggio successivo.


Pulsante Indietro

<button type="back" value="example">Indietro</button>

I pulsanti Indietro funzionano in modo identico ai pulsanti Successivo, ad eccezione di richiedere "back" come tipo e di non convalidare i campi obbligatori.


Pulsante Annulla

<button type="cancel" value="example">Annulla Charactermancer</button>

I pulsanti Annulla chiudono il Charactermancer, riportando l'utente alla Scheda del Personaggio. Il tipo di pulsante deve essere "annulla". Può passare il suo valore attraverso un evento che viene attivato cliccando il pulsante, che può essere ascoltato dall'ascoltatore on "mancer:cancel"


Pulsante Fine

<button type="finish" value="example">Applica modifiche</button>

Il pulsante Fine chiude il Charactermancer, tornando alla Scheda del Personaggio. Il tipo di pulsante deve essere "fine". Cliccando sul pulsante Fine crea un evento che può essere ascoltato dall'ascoltatore on "mancerfinish:name", che contiene l'oggetto Dati Charactermancer come argomento.


Guanto Finale

Il nome "finale" è riservato per una diapositiva speciale. Il Guanto Finale funge da transizione tra il Charactermancer e la Scheda del Personaggio. Il Charactermancer viene disabilitato una volta chiamata la Slide Finale ma sarà comunque visibile mostrando il contenuto della Slide Finale fino a quando finishCharactermancer() non viene chiamato. Questa slide consente al Foglio del Personaggio e ai Lavoratori di prendere tutti i risultati dell'oggetto dati del Charactermancer e applicarli prima di restituire il controllo al giocatore.


Inserimenti del Charactermancer

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

Gli attributi nel Charactermancer utilizzano una convenzione di denominazione diversa rispetto al Foglio del Personaggio. Gli inserimenti del Charactermancer iniziano con "comp_". Gli inserimenti e le selezioni denominati con questa convenzione passeranno automaticamente i loro valori all'oggetto dati del Charactermancer. L'oggetto dati può essere richiamato nelle slide correnti e future chiamando la funzione getCharmancerData() e verrà anche restituito per l'uso nel foglio del personaggio nell'evento mancerfinish.

Oggetto dati Charactermancer

{
    "prima-diapositiva":
    {
        "dati":
        {},
        "valori":
        {}
    },
    "seconda-diapositiva":
    {
		"dati":
		{
			"scelta1":
			{
				"Numero di widget":
				{
					"Widget": 2
				},
				"Tipo di widget":
				{ 
					"Tipo": "Spongy"
				}
			}
		},
        "valori":
        {
            "scelta1": "Widget:Esempio"
        },
		"ripetizione": ["<repeating_id1>", "<repeating_id2>"]
    }
}

L'oggetto dati Charactermancer memorizza automaticamente i dati dagli input e dalle selezioni su ogni diapositiva durante il processo. I valori di quegli input e selezioni vengono salvati in formato JSON sotto il nome della slide e la chiave "values". Inoltre, "data" può essere passato allo spazio dei nomi della slide dell'oggetto dati dalla funzione getCompendiumData. Se vengono utilizzate sezioni ripetitive nella slide, gli ID ripetuti vengono salvati sotto la chiave "repeating" di quella slide. L'intero oggetto può essere recuperato in qualsiasi momento utilizzando la funzione getCharmancerData.


Richiesto

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

Gli input e le selezioni contrassegnate come "richieste" nel loro tag non permetteranno agli utenti di completare la slide corrente e passare alla successiva fino a quando quel campo non avrà un valore. I campi obbligatori che sono stati lasciati vuoti quando è stato utilizzato il pulsante successivo, riceveranno la classe"sheet-hilite"e l'utente non passerà alla diapositiva successiva. Gli input obbligatori non applicano il requisito se sono stati nascosti all'interno di una sezione condizionale. Gruppi di elementi possono essere resi obbligatori. Se il tag Richiesto viene aggiunto a un div genitore, tutti gli input e le selezioni figli diventano obbligatori.


Selezioni del Compendio Popolate

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

Le selezioni all'interno delle diapositive possono essere autocompletate con opzioni dal Compendio Roll20. La selezione ha bisogno del parametro Accept, che include una stringa di ricerca compatibile con il Compendio. Ricerche complesse multi-attributo possono essere utilizzate per ottenere risultati filtrati specifici. Le opzioni autocompletate in questo modo includeranno l'espansione di origine dopo il risultato tra parentesi. 


0

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

Le sezioni condizionali sono tag HTML con il tag "sheet-choice". Queste sezioni sono nascoste di default quando la diapositiva viene visualizzata. Possono essere mostrate o nascoste con le funzionishowChoices(<class name>)ehideChoices(<class name>)rispettivamente.


Pulsante di azione

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

Introdotte nell'aggiornamento Charactermancer sono i pulsanti di azione. Questi pulsanti possono essere ascoltati con l'evento "clicked". Non sono limitati al Charactermancer e possono essere utilizzati anche nella Scheda del Personaggio. Il pulsante deve essere di tipo "azione" e il nome del pulsante deve essere preceduto daact_per essere ascoltato.


Ascoltatori Charactermancer

Questi ascoltatori funzionano per i cambiamenti del Charactermancer e hanno accesso alle funzioni del Charactermancer.


mancerchange

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

L'ascoltatore mancerchange viene attivato quando i valori degli Input del Charactermancer vengono modificati. Passa un argomento contenente le seguenti proprietà:

  • currentStep:"charmancer-intro" La slide corrente in cui si trova l'utente
  • newValue:"Races:Elf" Il valore a cui è stato modificato l'Input del Charactermancer
  • sourceType:"player" Se il cambiamento è stato innescato da un "worker" o dal "giocatore"
  • triggerName:"race" Il nome dell'input Charactermancer che è stato modificato

page:<slide name>

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

Il listener della pagina si attiva quando viene chiamato da un pulsante successivo o dalla funzione startCharmancer. Passa un argomento contenente le seguenti proprietà:

  • sourceType:"player" Se il cambiamento è stato innescato da un "worker" o dal "giocatore"
  • triggerName:"charactermancer-intro" Il nome dello slide Charactermancer appena aperto

clicked:<action button name>

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

Il listener cliccato si attiva quando viene cliccato un pulsante di azione. Passa un argomento contenente le seguenti proprietà:

  • triggerName:"clicked:action_button" Il nome del pulsante di azione che è stato cliccato

mancerroll:<roll button name>

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

Questo listener si attiva quando viene cliccato un pulsante di lancio nel Charactermancer. Passa un argomento contenente le seguenti proprietà:

  • currentStep:"charmancer-intro" Lo slide corrente su cui si trova l'utente
  • roll: Un oggetto JSON contenente i risultati del lancio.
  • triggerName:"roll_stats" Il nome del lancio Charactermancer che ha attivato il listener

Ascoltatori della scheda

Questi ascoltatori si attiveranno dopo che il Charactermancer esce e avranno accesso all'insieme normale di lavoratori per la scheda.


mancer:cancel

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

The mancer:cancel listener triggers when a player exits the Charactermancer via the Cancel Button, this can be used when a User restarts the Charactermancer. It passes an object as an argument with a value of the name of the slide the user exited the Charactermancer on:

  • value: "slide1"

mancerfinish:<name>

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

The mancerfinish listener triggers when a player exits the Charactermancer via the Finish Button. It passes an object as an argument with the same value as the Charactermancer Data Object. This is where the choices from the Charactermancer will be applied to the sheet itself. ThesetCharmancerText()function is available here to allow you to update the"final" slide while the changes are being applied.


Funzioni

I lavoratori normali del foglio sono disabilitati mentre il Charactermancer è attivo, con le seguenti eccezioni:

setAttrs() è ancora utilizzabile mentre il Charactermancer è attivo, anche se la sua funzione è diversa, potrà solo impostare i valori per la diapositiva corrente del Charactermancer. Le funzioni che accedono agli attributi del foglio senza modificarli (come getAttrs() getSectionIDs()) funzioneranno normalmente. getCompendiumPage() getCompendiumQuery() funzionano sia per il foglio che per il Charactermancer.

Una nota sugli selettori: Molte di queste funzioni utilizzano un selettore CSS per trovare l'elemento HTML pertinente sulla diapositiva. La prima parte di questo selettore deve essere una classe, ma il resto di questo selettore può utilizzare qualsiasi sintassi di selettore JQuery valida.


Queste funzioni sono disponibili solo quando il Charactermancer è attivo:

startCharactermancer(<slide name>)

startCharactermancer("first-slide"); 

La funzione startCharactermancer avvia il Charactermancer. Questo nasconde la scheda del personaggio e carica il Charactermancer. Caricherà l'HTML della diapositiva denominata passata come primo argomento e attiverà l'ascoltatore dell'apertura della pagina per quella diapositiva.


setCharmancerText(<update object>);

 setCharmancerText({"class_example":"Ciao mondo!"}); 

La funzionesetCharmancerTextle permette di aggiornare le sezioni della sua diapositiva corrente con un nuovo testo. Passato come argomento alla funzione è un oggetto in cui le chiavi sono selettori degli elementi da aggiornare e i valori sono il testo da sostituire al contenuto esistente di quelle sezioni. Questa funzione consente l'uso di tag html, tutto il testo viene sottoposto alla stessa funzione di sanificazione utilizzata nel resto della scheda del personaggio (che, ad esempio, aggiunge sheet- ai nomi delle classi).


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

 changeCompendiumPage("sheet-iframe", "Pagina di benvenuto"); 

La funzione changeCompendiumPage ti consente di cambiare dinamicamente la pagina del compendio caricata in un iFrame del Compendio nella tua diapositiva corrente. Il primo argomento deve corrispondere al nome della classe dell'iFrame e il secondo argomento passa la pagina del Compendio da renderizzare. È consigliabile utilizzare la categoria della pagina per garantire una corrispondenza univoca. Ad esempio, "Druido" potrebbe corrispondere a una pagina sia nella categoria "Classi" che nella categoria "PNG", ma "Classi:Druido" sarà una pagina univoca.


changeCharmancerPage(<slide name>, <callback>)

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

Questa funzione cambia la diapositiva corrente del Charactermancer. Il primo argomento è il nome della diapositiva. Accetta una callback, che viene chiamata dopo il caricamento della diapositiva.


setAttrs(<update object>)

 setAttrs({"test_attribute": 2}) 

La funzione setAttrs funziona allo stesso modo per gli input di Charactermancer come fa per gli attributi del foglio del personaggio con le seguenti eccezioni. Mentre il Charactermancer è attivo, può essere utilizzato solo per aggiornare gli input di Charactermancer e cancellerà le selezioni radio e checkbox se il valore a cui sono impostati non corrisponde ai loro valori specificati. Questi attributi devono avere un input nella diapositiva, altrimenti i loro valori verranno eliminati dall'oggetto dati di Charactermancer quando si passa alla pagina successiva.


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

 setCharmancerOptions("select-class", "Categoria:Tipo Oggetti:Armi", {add:["Spada Magica","Ascia dell'Incredibile"], category:"Oggetti"}); 

La funzione setCharmancerOptions consente di aggiornare gli input di Charactermancer Select o Radio con opzioni dinamiche secondo necessità. La funzione richiede i primi due argomenti ma può accettarne fino a quattro. Il primo argomento è il nome della classe del Charactermancer Select che si desidera popolare con le opzioni. Il secondo argomento può essere passato come un array di opzioni predefinite o con una stringa di ricerca nel Compendio per generare un elenco dinamico di opzioni dal Compendio. Il terzo argomento accetta diverse impostazioni opzionali dettagliate di seguito. L'ultimo argomento è una callback da eseguire dopo che setCharmancerOptions ha restituito. Questa callback riceve un parametro che è un array dei valori trovati/riempiti. Quando usato con type='radio' Inputs la funzione funziona allo stesso modo, ma se trova tutte le span con quel nome sulla diapositiva e le riempie con<label><input type="checkbox">contenuto</label>invece.

  • categoria: Nome della categoria delle opzioni
  • disabilita: Array di opzioni da disabilitare, che devono corrispondere ai valori
  • selezionato: Valore dell'opzione selezionata inizialmente
  • aggiungi: Array di opzioni aggiuntive o varie da includere in fondo alle opzioni di selezione
  • show_source: Mostra le opzioni con le iniziali dell'espansione del Compendio tra parentesi (disponibile solo quando si utilizza una query del compendio come opzione di selezione)

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

 disabilitaOpzioniCharmancer("seleziona-classe", ["uno","due"]); 

Il disabilitaOpzioniCharmancer funziona in modo simile a impostaOpzioniCharmancer . Accetta solo un array di opzioni per disabilitare i selezionatori o gli input radio di Charactermancer. La funzione non disabiliterà un'opzione attualmente selezionata. Se due o più selezionatori hanno gli stessi valori, li disabiliterà tutti contemporaneamente. Passando un array vuoto, tutto sarà riabilitato.


mostraScelte([<class name>]);

 mostraScelte(["prova-scheda","prova-scheda2]); 

La funzione mostraScelte rivela le Sezioni Condizionali nascoste con la classe sheet-choice . Accetta un argomento come un array di nomi di classe per rivelare le Sezioni Condizionali.


nascondiScelte([<class name>]);

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

La funzione hideChoices nasconde le Sezioni Condizionali attualmente visibili con la classe sheet-choice . Accetta un argomento come un array di nomi di classe per le Sezioni Condizionali da nascondere. Se non viene fornito alcun argomento, nasconderà tutte le scelte nella diapositiva corrente.


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

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

La funzione getCompendiumPage recupera gli attributi di una Pagina del Compendium e consente di passare quei dati sia all'oggetto Charactermancer Data che a una funzione di callback. Il primo argomento che la funzione accetta è il nome della Pagina del Compendium da cui si desidera recuperare i dati, o un array di pagine. Di nuovo, si consiglia di utilizzare il formato <category>:<pagename> per garantire il risultato corretto. La terza opzione è una richiamata che passa l'oggetto dati come argomento.

Se questa funzione viene chiamata nell'eventomancerchange:per un attributo, tutti i dati saranno salvati nella sezione "dati" dell'oggetto JSON della diapositiva corrente, sotto una chiave che corrisponde al nome dell'attributo. Per garantire che i dati vengano salvati correttamente, si consiglia di assicurarsi chegetCompendiumPagesia il primo sheet worker asincrono chiamato in quell'evento. Se vengono recuperate più pagine con questa funzione, verrà salvata solo la prima nei dati. Se viene utilizzata una stringa vuota come primo argomento, verranno cancellati i dati attualmente salvati per quell'attributo (ma non il valore dell'attributo).

Questi dati non vengono salvati su Firebase. Invece, tutti i campi dati vengono recuperati contemporaneamente dal compendio quando viene aperto per la prima volta il Charactermancer.


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

 getCompendiumQuery("Categoria: Incantesimi Livello:1|2|3 Classe:*Bardo", function(data) {...}); 

Questa funzione funziona in modo simile a getCompendiumPage, tranne che utilizza una stringa di query (o un array di query) per ottenere i risultati e non salverà alcun dato nell'oggetto Charactermancer.


getCharmancerData()

 var data = getCharmancerData(); 

La funzione getCharmancerData restituisce il valore corrente dell'oggetto Charactermancer Data.


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

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

La funzione deleteCharmancerData accetta due argomenti. Il primo argomento è un array di nomi di slide per cancellare tutti i dati e i valori associati all'oggetto Charactermancer, svuotando la slide come se non fosse mai stata visitata. Se nessuna slide viene passata come argomento, la funzione rimuoverà tutti i dati e le scelte. Il secondo argomento è una callback eseguita dopo che la funzione deleteCharmancerData è stata completata.


finishCharactermancer() =

 finishCharactermancer() 

La funzione finishCharactermancer() è un caso speciale che riporta la diapositiva finale alla scheda del personaggio.


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

(Funzione regolare del foglio, non una funzione di Charactermancer)

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

La funzione setSectionOrder consente di ordinare le sezioni ripetute secondo le tue preferenze. La funzione accetta una sezione ripetuta ( ripetuto_  viene anteposto a questo valore), il metodo con cui ordinare in base ai dati dell'elemento ripetuto e una funzione di callback opzionale.


Sezioni ripetute di Charactermancer

Le sezioni ripetute nella funzione Charactermancer si comportano in modo diverso rispetto alle sezioni ripetute nelle schede dei personaggi. Piuttosto che essere definiti a un particolare elemento sulla pagina (il <fieldset>), le sezioni ripetute nel Charactermancer sono frammenti di codice HTML che possono essere aggiunti a qualsiasi elemento nella diapositiva attiva del Charactermancer (incluso all'interno di un'altra sezione ripetuta). Questo HTML viene sanificato allo stesso modo del resto del foglio.

Quando una sezione viene aggiunta alla diapositiva, viene generato un id univoco per quella riga. Questo id viene applicato come classe all'elemento padre di questa sezione e viene utilizzato per rinominare qualsiasi input, pulsanti di azione o pulsanti di lancio all'interno di quella sezione. La convenzione di denominazione è: "repeating_123456789_row_input", dove "row" è il nome della sezione ripetuta e "input" è il nome dell'input. I valori dagli input nelle sezioni ripetute vengono salvati sotto la chiave "values" nell'oggetto dati del Charactermancer insieme ai restanti valori di quella diapositiva. Il nome della sezione ripetuta (il nome della sezione padre, non ogni valore interno) viene aggiunto all'array "repeating" per ogni diapositiva.

Gli ascoltatorimancerchange,mancerroll,e clicked possono ascoltare le modifiche di una sezione ripetuta. Per un cambio arepeating_123456789_row_input, verrà innescato un cambiamento per l'attributo stesso,mancerchange:repeating_row_input, e la sezione in cui è contenuto,mancerchange:repeating_row. Se quella sezione è all'interno di un'altra sezione ripetuta, verrà innescato un evento anche per la sezione ripetuta genitore. Le informazioni sull'evento per un cambiamento di sezione ripetuta conterranno un paio di nuovi elementi, oltre a quelli normali menzionati in precedenza:

  • sourceAttribute:"repeating_123456789_row_input"L'attributo specifico che è stato modificato
  • sourceSection:"repeating_row"Il nome della sezione ripetuta in cui si trova l'attributo sourceAttribute
  • triggerName:"repeating_row"Il nome del listener che è stato innescato

Queste sezioni non sono persistenti, il che significa che quando l'utente lascia la diapositiva e la visita di nuovo, la diapositiva verrà caricata senza le sezioni ripetute e si affiderà agli eventi di cambiamento automatico per aggiungere queste sezioni di nuovo alla pagina (vedi la sezione sottostante su come visitare diapositive di nuovo).


Definizione della Sezione

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

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

Per definire una sezione ripetuta, inserisci il frammento di codice all'interno di un tag<charmancer>, utilizzando una classe che inizia con le parole chiave "sheet-repeating-". Nell'esempio sopra, il codice all'interno dei tag<charmancer>sarà definito come una sezione ripetuta chiamata "row".


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

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

Questa funzione aggiunge la sezione ripetuta specificata all'elemento di destinazione specificato. Il primo argomento è il selettore per l'elemento di destinazione, il secondo specifica quale sezione ripetuta aggiungere. Il terzo argomento è opzionale, definisce un nuovo nome per questa specifica sezione, se viene omesso il nome della sezione userà semplicemente il secondo parametro come nome. La funzione di callback per questa sezione riceve l'id della sezione che è stato assegnato alla sezione.


clearRepeatingSections(<target>, <callback>)

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

Questa funzione cancella tutte le sezioni ripetute dall'elemento specificato dal primo argomento. Rimuove anche l'HTML stesso, insieme a tutti i valori corrispondenti nell'oggetto dati Charactermancer.


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

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

Questa funzione è simile alla funzione clearRepeatingSections, ma cancella solo le sezioni ripetute specifiche, definite dall'array nel primo argomento. Cancellerà anche eventuali sezioni ripetute all'interno di quelle specificate.


getRepeatingSections(<target>, <callback>)

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

Questa funzione restituisce informazioni più dettagliate sulle sezioni ripetute nella diapositiva corrente. Il primo argomento è un selettore per l'elemento target. Questo viene utilizzato per ottenere un elenco delle sezioni ripetute all'interno di quell'elemento. Se viene omesso, la funzione restituisce tutte le sezioni ripetute in questa diapositiva. I dati restituiti al callback contengono anche un oggetto JSON che mostra la struttura delle sezioni ripetute, dettagliando quali sezioni sono all'interno di altre sezioni.


Rivisitare le diapositive

Se l'utente lascia una diapositiva e poi la riprende in seguito, il Charactermancer attiverà automaticamente gli eventi di modifica per i valori salvati sulla pagina. Questo è necessario per consentire ai lavoratori del foglio di attivarsi e ricostruire la diapositiva nel suo stato precedente. Questo è necessario perché le modifiche apportate dalle funzioni che manipolano l'HTML (come setCharmancerText addRepeatingSection ) non persistono. È importante tenere presente che questi lavoratori possono attivarsi durante la visita della diapositiva. Pianifica i lavoratori di conseguenza. Nota che quando si torna a una slide, gli id delle sezioni ripetute precedenti vengono riutilizzati per le sezioni con nomi corrispondenti, quindi questi id dovrebbero rimanere costanti.


Pseudo attributo charactermancer_step

L'attributocharactermancer_stepè un attributo pseudo come character_name. Questo ti consente di impostare il passo a cui il Charactermancer si aprirà la prossima volta che viene lanciato. Questo attributo può essere impostato da una normale funzionesetAttrse non può essere impostato mentre il Charactermancer è attivo.

Questo articolo ti è stato utile?
Utenti che ritengono sia utile: 7 su 28