Scripting in GeoGebra
Script è una sequenza di comandi che vengono eseguiti nell'ordine in cui sono scritti.
GeoGebra supporta due linguaggi di scripting - GGBScript e Javascript. Gli script vanno inseriti nella scheda Scripting della
finestra di dialogo Proprietà dell'oggetto a cui si vuole assegnare uno script.
Nota: Gli script vengono eseguiti solo quando la finestra di dialogo Proprietà è chiusa.
![](https://wiki.geogebra.org/uploads/thumb/3/30/Menu-options.svg/16px-Menu-options.svg.png)
Oggetti distinti supportano tipi di scripting distinti, la cui esecuzione può essere attivata da:
- un clic del mouse su un determinato oggetto (scheda Al clic)
- l'aggiornamento di un determinato oggetto (cioè una modifica del relativo valore o delle proprietà) (scheda All'aggiornamento)
- la modifica del contenuto di un campo di inserimento (scheda Alla modifica)
- il rilascio del pulsante del mouse (o la rimozione del dito da uno schermo touch) dopo il trascinamento di un oggetto (scheda A fine trascinamento )
- il caricamento di un file (solo Javascript - scheda Globali Javascript)
- i listener Javascript (vedere Riferimenti:JavaScript)
- Questa https://www.geogebra.org/m/bek5uqah è una demo degli script Alla modifica e All'aggiornamento per un campo di inserimento.
- Questa https://www.geogebra.org/m/kxgvyqvj è una demo dello script A fine trascinamento applicato a un punto libero.
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 sequenzialmente, nell'ordine in cui sono stati inseriti.
Esempio:
Suggerimento: Alcuni comandi sono utilizzabili solo negli script: l'elenco è disponibile nella pagina wiki Comandi_Scripting.
- 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
#
per indicare l'inizio di un commento.
![](https://wiki.geogebra.org/uploads/thumb/6/60/Bulbgraph.png/18px-Bulbgraph.png)
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.
Esempio: 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.
Nota: Lo scripting con JavaScript è molto versatile, ma molte funzionalità sono disponibili anche utilizzando GeoGebraScript, che è un linguaggio molto più semplice.Global 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(name, api), che viene chiamata automaticamente appena viene caricata la costruzione.
La funzione ggbOnInit può essere utilizzata per registrare i listener, come illustrato nell'esempio seguente.
Esempio: function onAdd(nome){
alert("L'oggetto "+nome+" è stato aggiunto.");
}
function ggbOnInit(name, api){
api.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 ogni volta in cui viene aggiunto un nuovo oggetto.
La funzione ggbOnInit viene chiamata al caricamento del file GeoGebra, e da quel momento in poi quando un utente aggiunge ad es. un punto A, verrà 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.
Nota: 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.
![](https://wiki.geogebra.org/uploads/thumb/3/30/Menu-options.svg/16px-Menu-options.svg.png)