Differenze tra le versioni di "Scripting"
(7 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | <noinclude>{{Manual Page|version= | + | <noinclude>{{Manual Page|version=5.0}}</noinclude>{{objects|property|Scripting}} |
Uno script è una sequenza di comandi eseguiti nell'ordine in cui sono scritti. GeoGebra supporta due linguaggi di scripting: GGBScript e Javascript, la cui esecuzione può essere attivata da: | Uno script è una sequenza di comandi eseguiti nell'ordine in cui sono scritti. GeoGebra supporta due linguaggi di scripting: GGBScript e Javascript, la cui esecuzione può essere attivata da: | ||
* un clic del mouse su un determinato oggetto | * un clic del mouse su un determinato oggetto | ||
Riga 5: | Riga 5: | ||
* il caricamento di un file (in Javascript) | * il caricamento di un file (in Javascript) | ||
* i listener Javascript (vedere [[Riferimenti:JavaScript]]) | * i listener Javascript (vedere [[Riferimenti:JavaScript]]) | ||
− | Per definire gli script utilizzare la scheda Scripting della [[finestra di dialogo Proprietà]]. | + | Per definire gli script utilizzare la scheda ''Scripting'' della [[File:Menu-options.svg|link=|16px]] [[finestra di dialogo Proprietà]]. |
+ | {{Note|Gli script funzionano solo se la finestra di dialogo ''Proprietà'' è chiusa.}} | ||
+ | |||
==GGBScript== | ==GGBScript== | ||
È possibile creare degli script contenenti i comandi di GeoGebra, cioè i comandi che tipicamente vengono digitati nella [[Barra di inserimento]]. Dopo l'attivazione di uno script, i comandi vengono eseguiti nell'ordine in cui sono stati inseriti. | È possibile creare degli script contenenti i comandi di GeoGebra, cioè i comandi che tipicamente vengono digitati nella [[Barra di inserimento]]. Dopo l'attivazione di uno script, i comandi vengono eseguiti nell'ordine in cui sono stati inseriti. | ||
{{Example|1=<div> | {{Example|1=<div> | ||
* ''a'' è uno [[strumento Slider|slider]] a valori interi, variabile tra 1 e 3 | * ''a'' è uno [[strumento Slider|slider]] a valori interi, variabile tra 1 e 3 | ||
− | * <code><nowiki>lista1={"rosso","verde","blu"}</nowiki></code> | + | * Inserire <code><nowiki>lista1={"rosso","verde","blu"}</nowiki></code> |
− | * nella scheda ''All'aggiornamento'' delle Proprietà di ''a'', digitare <code>ImpColore | + | * nella scheda ''All'aggiornamento'' delle ''Proprietà'' di ''a'', digitare <code>ImpColore(a,Elemento(lista1,a))</code> |
* muovendo lo slider, questo cambierà colore</div>}} | * muovendo lo slider, questo cambierà colore</div>}} | ||
'''Spiegazione''': Ogni volta in cui lo slider viene mosso, si ha un aggiornamento dell'oggetto, quindi viene chiamato lo script che utilizza il valore di "a" per ottenere un colore dalla lista e modificare di conseguenza il colore dello slider "a". | '''Spiegazione''': Ogni volta in cui lo slider viene mosso, si ha un aggiornamento dell'oggetto, quindi viene chiamato lo script che utilizza il valore di "a" per ottenere un colore dalla lista e modificare di conseguenza il colore dello slider "a". | ||
+ | {{Note|È possibile utilizzare il carattere <code>#</code> per indicare l'inizio di un commento.}} | ||
{{Hint|Alcuni comandi sono utilizzabili solo negli script: l'elenco è disponibile nella pagina [[Comandi_Scripting]].}} | {{Hint|Alcuni comandi sono utilizzabili solo negli script: l'elenco è disponibile nella pagina [[Comandi_Scripting]].}} | ||
==JavaScript== | ==JavaScript== | ||
− | JavaScript è un linguaggio di programmazione utilizzato da varie tecnologie basate su Internet. A differenza di GeoGebra Script, in Javascript i comandi non vengono eseguiti in sequenza, ma è possibile programmare un flusso di controllo (<code>if</code>, <code>while</code>, <code>for</code>). Un buon tutorial su JavaScript è disponibile qui: [https://developer.mozilla.org/en/JavaScript/Guide developer.mozilla.org]. In GeoGebra, è possibile utilizzare molti metodi speciali JavaScript per modificare la costruzione. Tali metodi appartengono all'oggetto ggbApplet: ciò significa che possono essere chiamati con <code>ggbApplet.nome_metodo(parametro,..,parametro)</code>. Per l'elenco completo dei metodi disponibili, vedere [[Riferimenti:JavaScript]]. | + | JavaScript è un linguaggio di programmazione utilizzato da varie tecnologie basate su Internet. A differenza di GeoGebra Script, in Javascript i comandi non vengono eseguiti in sequenza, ma è possibile programmare un flusso di controllo (<code>if</code>, <code>while</code>, <code>for</code>). Un buon tutorial su JavaScript è disponibile qui: [https://developer.mozilla.org/en/JavaScript/Guide developer.mozilla.org]. |
+ | |||
+ | In GeoGebra, è possibile utilizzare molti metodi speciali JavaScript per modificare la costruzione. Tali metodi appartengono all'oggetto ggbApplet: ciò significa che possono essere chiamati con <code>ggbApplet.nome_metodo(parametro,..,parametro)</code>. Per l'elenco completo dei metodi disponibili, vedere [[Riferimenti:JavaScript]]. | ||
{{Example|1= | {{Example|1= | ||
Riga 29: | Riga 34: | ||
Questo script crea 10 punti, da ''A<sub>0</sub>'' ad ''A<sub>9</sub>'', aventi coordinate casuali. | Questo script crea 10 punti, da ''A<sub>0</sub>'' ad ''A<sub>9</sub>'', aventi coordinate casuali. | ||
}} | }} | ||
+ | {{note|Lo scripting con JavaScript è molto versatile, ma molte funzionalità sono disponibili anche utilizzando GeoGebraScript, che è molto più semplice.}} | ||
+ | |||
− | + | ===Globali JavaScript === | |
− | ===JavaScript | + | Nella sezione ''Globali JavaScript'' della scheda ''Scripting'' della [[File:Menu-options.svg|link=|16px]] [[finestra di dialogo Proprietà]] è possibile definire '''funzioni''' (non variabili) che saranno disponibili da altri script. È inoltre possibile definire la funzione ''ggbOnInit()'', che viene chiamata automaticamente appena viene caricata la costruzione. La funzione ''ggbOnInit'' può essere utilizzata per registrare i ''listener'', come illustrato nell'esempio seguente.{{example|1= |
− | Nella sezione JavaScript | ||
<pre> | <pre> | ||
function onAdd(nome){ | function onAdd(nome){ | ||
Riga 42: | Riga 48: | ||
} | } | ||
</pre> | </pre> | ||
− | Nell'esempio è stata definita una funzione ''onAdd'', che, data una stringa, visualizza un messaggio dipendente da tale stringa. In seguito, utilizzando la funzione ''ggbOnInit'', abbiamo detto a GeoGebra di chiamare questa funzione ogniqualvolta viene aggiunto un nuovo oggetto. Al caricamento della costruzione viene chiamata la funzione ggbOnInit, e da quel momento in poi, quando un utente aggiunge ad es. un punto ''A'', viene visualizzato "L'oggetto A è stato aggiunto". }} | + | Nell'esempio è stata definita una funzione ''onAdd'', che, data una stringa, visualizza un messaggio dipendente da tale stringa. In seguito, utilizzando la funzione ''ggbOnInit'', abbiamo detto a GeoGebra di chiamare questa funzione ogniqualvolta viene aggiunto un nuovo oggetto. Al caricamento della costruzione viene chiamata la funzione ''ggbOnInit'', e da quel momento in poi, quando un utente aggiunge ad es. un punto ''A'', viene visualizzato "L'oggetto A è stato aggiunto". }} |
− | L'utilizzo dei listener è utile anche per le azioni del tipo rinomina, elimina e svuota costruzione. L'elenco completo è disponibile in [[Riferimenti:JavaScript]]. | + | L'utilizzo dei ''listener'' è utile anche per le azioni del tipo ''rinomina'', ''elimina'' e ''svuota costruzione''. L'elenco completo è disponibile in [[Riferimenti:JavaScript]]. |
− | {{Note|L'utilizzo di qualsiasi metodo ggbApplet in JavaScript | + | {{Note|L'utilizzo di qualsiasi metodo ggbApplet in ''Globali JavaScript'' al di fuori di ''ggbOnInit'' non avrà l'effetto atteso, in quanto tali metodi vengono chiamati prima del caricamento della costruzione.}} |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Versione delle 18:06, 5 mag 2019
Uno script è una sequenza di comandi eseguiti nell'ordine in cui sono scritti. GeoGebra supporta due linguaggi di scripting: GGBScript e Javascript, la cui esecuzione può essere attivata da:
- un clic del mouse su un determinato oggetto
- l'aggiornamento di un determinato oggetto (cioè una modifica del relativo valore o delle proprietà)
- il caricamento di un file (in Javascript)
- i listener Javascript (vedere Riferimenti:JavaScript)
Per definire gli script utilizzare la scheda Scripting della finestra di dialogo Proprietà.
GGBScript
È possibile creare degli script contenenti i comandi di GeoGebra, cioè i comandi che tipicamente vengono digitati nella Barra di inserimento. Dopo l'attivazione di uno script, i comandi vengono eseguiti nell'ordine in cui sono stati inseriti.
- a è uno slider a valori interi, variabile tra 1 e 3
- Inserire
lista1={"rosso","verde","blu"}
- nella scheda All'aggiornamento delle Proprietà di a, digitare
ImpColore(a,Elemento(lista1,a))
- muovendo lo slider, questo cambierà colore
Spiegazione: Ogni volta in cui lo slider viene mosso, si ha un aggiornamento dell'oggetto, quindi viene chiamato lo script che utilizza il valore di "a" per ottenere un colore dalla lista e modificare di conseguenza il colore dello slider "a".
#
per indicare l'inizio di un commento.
JavaScript
JavaScript è un linguaggio di programmazione utilizzato da varie tecnologie basate su Internet. A differenza di GeoGebra Script, in Javascript i comandi non vengono eseguiti in sequenza, ma è possibile programmare un flusso di controllo (if
, while
, for
). Un buon tutorial su JavaScript è disponibile qui: developer.mozilla.org.
In GeoGebra, è possibile utilizzare molti metodi speciali JavaScript per modificare la costruzione. Tali metodi appartengono all'oggetto ggbApplet: ciò significa che possono essere chiamati con ggbApplet.nome_metodo(parametro,..,parametro)
. Per l'elenco completo dei metodi disponibili, vedere Riferimenti:JavaScript.
for(var i =0;i<10;i++) ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");Questo script crea 10 punti, da A0 ad A9, aventi coordinate casuali.
Globali JavaScript
Nella sezione Globali JavaScript della scheda Scripting della finestra di dialogo Proprietà è possibile definire funzioni (non variabili) che saranno disponibili da altri script. È inoltre possibile definire la funzione ggbOnInit(), che viene chiamata automaticamente appena viene caricata la costruzione. La funzione ggbOnInit può essere utilizzata per registrare i listener, come illustrato nell'esempio seguente.
function onAdd(nome){ alert("L'oggetto "+nome+" è stato aggiunto."); } function ggbOnInit(){ ggbApplet.registerAddListener("onAdd"); }Nell'esempio è stata definita una funzione onAdd, che, data una stringa, visualizza un messaggio dipendente da tale stringa. In seguito, utilizzando la funzione ggbOnInit, abbiamo detto a GeoGebra di chiamare questa funzione ogniqualvolta viene aggiunto un nuovo oggetto. Al caricamento della costruzione viene chiamata la funzione ggbOnInit, e da quel momento in poi, quando un utente aggiunge ad es. un punto A, viene visualizzato "L'oggetto A è stato aggiunto".
L'utilizzo dei listener è utile anche per le azioni del tipo rinomina, elimina e svuota costruzione. L'elenco completo è disponibile in Riferimenti:JavaScript.