Scripting
Uno script è una sequenza di comandi 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.
Gli script sono eseguiti solo quando la finestra di dialogo Proprietà è chiusa. |
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.adoc[Riferimenti:JavaScript])
La differenza tra uno script inserito nella scheda All’aggiornamento e uno nella scheda Alla modifica di un campo di inserimento è che nel primo caso lo script viene eseguito quando il campo non è più selezionato (ad es. facendo clic fuori da esso, o selezionando un pulsante, etc…), mentre uno script inserito nella scheda Alla modifica viene eseguito appena il contenuto del campo di inserimento cambia, ma il focus è ancora sul campo di inserimento.
|
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.
-
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".
È possibile utilizzare il carattere |
Suggerimento: Alcuni comandi sono utilizzabili solo negli script: l’elenco è disponibile nella pagina Comandi_Scripting. |
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.adoc[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.
Lo scripting con JavaScript è molto versatile, ma molte funzionalità sono disponibili anche utilizzando GeoGebraScript, che è molto più semplice. |
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(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.
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 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.adoc[Riferimenti:JavaScript].
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. |