Differenze tra le versioni di "Scripting"

Da GeoGebra Manual.
 
(21 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
<noinclude>{{Manual Page|version=4.0}}</noinclude>{{objects|property}}
+
<noinclude>{{Manual Page|version=5.0}}</noinclude>{{objects|property|Scripting}}
:{{translate|Scripting}}
+
Uno script è una sequenza di comandi eseguiti nell'ordine in cui sono scritti.
GeoGebra supporta due linguaggi di scripting: GGBScript e Javascript. Uno script è una sequenza di azioni che possono essere attivate da:
+
 
* un clic del mouse o l'aggiornamento di un determinato oggetto
+
GeoGebra supporta due linguaggi di scripting: GGBScript e Javascript.  
* il caricamento di un file (in Javascript)
+
Gli script vanno inseriti nella scheda ''Scripting'' della [[File:Menu-options.svg|link=|16px]] [[Finestra di dialogo Proprietà]] dell'oggetto a cui si vuole assegnare uno script.
* i listener Javascript (vedere [[:en:Reference:JavaScript]])
+
{{Note|Gli script sono eseguiti solo quando la finestra di dialogo ''Proprietà'' è chiusa.}}
Per definire gli script utilizzare la scheda Scripting della [[finestra di dialogo Proprietà]].
+
 
 +
 
 +
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]])
 +
 
 +
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.
 +
 
 +
{{Note|1=<div>
 +
* 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.</div>}}
 +
 
 +
 
 
==GGBScript==
 
==GGBScript==
È possibile creare degli script contenenti i comandi di GeoGebra.
+
È 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.
 
{{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 digitare <code>ImpColore[a,Elemento[lista1,a]]</code>
+
* 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".
 +
{{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]].}}
  
 
==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 comandi JavaScript per modificare la costruzione.
+
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=
 +
<pre>
 +
for(var i =0;i<10;i++)
 +
  ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
 +
</pre>
 +
 
 +
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 ===
 +
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(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.{{example|1=
 +
<pre>
 +
function onAdd(nome){
 +
    alert("L'oggetto "+nome+" è stato aggiunto.");
 +
}
  
{{Example|1=INSERIRE ESEMPIO}}
+
function ggbOnInit(name, api){
 +
    api.registerAddListener("onAdd");
 +
}
 +
</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". }}
  
L'elenco completo dei comandi utilizzabili è disponibile qui: [[:en:Reference:JavaScript]]. GeoGebra ha già al suo interno un motore JavaScript. Durante l'esportazione come [[foglio di lavoro dinamico]] è possibile scegliere se utilizzare tale motore o quello contenuto nelle applet del browser.
+
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.}}

Versione attuale delle 09:33, 17 mag 2023


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 Menu-options.svg Finestra di dialogo Proprietà dell'oggetto a cui si vuole assegnare uno script.

Note: 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)

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.

Note:


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:
  • 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(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 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.
© 2024 International GeoGebra Institute