Scripting

Da GeoGebra Manual.
Versione del 5 mag 2019 alle 18:06 di Mathmum (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)


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 Menu-options.svg finestra di dialogo Proprietà.

Note: Gli script funzionano solo se la finestra di dialogo Proprietà è chiusa.

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.

Esempio:
  • 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".

Note: È possibile utilizzare il carattere # per indicare l'inizio di un commento.
Note 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.

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.
Note: 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 Menu-options.svg 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.

Esempio:
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.

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.
© 2021 International GeoGebra Institute