Differenze tra le versioni di "Scripting"

Da GeoGebra Manual.
Riga 15: Riga 15:
  
 
==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 [[en:Reference: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.
 +
}}
 +
 
 +
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. Quando si modifica il codice JavaScript in una pagina HTML, la variabile ggbApplet non viene inizializzata. Tale operazione va effettuata manualmente, ad esempio inserendo all'inizio il codice <code>ggbApplet=document.applets[0];</code>.
 +
===JavaScript globale===
 +
In the Global JavaScript part of Scripting tab in [[Properties Dialog]] you may define some functions or do some assignments that will be done before the construction is loaded. You can also define function ''ggbOnInit()'', which is called automatically once the construction is loaded. The ggbOnInit function can be used for registering some listeners, as shown below.{{example|1=
 +
<pre>
 +
function onAdd(name){
 +
    alert("Object "+name+" was added.");
 +
}
 +
 
 +
function ggbOnInit(){
 +
    ggbApplet.registerAddListener("onAdd");
 +
}
 +
</pre>
 +
First we defined function ''onAdd'' that given a string shows a message depending on that string. After that, using the ''ggbOnInit'' function, we told GeoGebra to call this function whenever a new object is added. Once we reload our construction, function ggbOnInit will be called and since then, when user adds a point named e.g. ''A'', message "Object A was added" will appear. }}
 +
 
 +
You can also use listeners for actions like rename, delete and clear construction. Complete list is available in [[Reference:JavaScript]].
 +
{{Note|Using any ggbApplet methods in Global JavaScript outside of ggbOnInit will not work as intended since they will be called before the construction is loaded.}}
 +
===USB Logging===
 +
For logging data from from some Vernier USB Data Loggers, eg ''Go!Motion'' and ''Go!Temp'' one can define a logger listener using the registerLoggerListener method. Such listener can look like this:
 +
<pre>
 +
function logger(value) {
 +
  var d = value * 1;
 +
  ggbApplet.evalCommand("(CopyFreeObject[a],"+d+")");
 +
  ggbApplet.evalCommand("SetValue[a,a+1]");
 +
}
 +
</pre>
 +
This script assumes that there is a free number ''a'' in the construction. Each time number ''d'' is logged, point ''(a,d)'' is constructed and ''a'' is increased.
  
{{Example|1=INSERIRE ESEMPIO}}
 
  
 
L'elenco completo dei comandi utilizzabili è disponibile qui: [[Riferimenti: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'elenco completo dei comandi utilizzabili è disponibile qui: [[Riferimenti: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.

Versione delle 09:28, 29 giu 2011


Some content was not yet translated. See the English original. Please edit the manual page if you have the rights for translation.

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
  • il caricamento di un file (in Javascript)
  • i listener Javascript (vedere en:Reference:JavaScript)

Per definire gli script utilizzare la scheda Scripting della finestra di dialogo Proprietà.

GGBScript

È possibile creare degli script contenenti i comandi di GeoGebra.

Esempio:
  • a è uno slider a valori interi, variabile tra 1 e 3
  • lista1={"rosso","verde","blu"}
  • nella scheda All'aggiornamento delle Proprietà di a, digitare ImpColore[a,Elemento[lista1,a]]
  • muovendo lo slider, questo cambierà colore

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 en:Reference: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.

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. Quando si modifica il codice JavaScript in una pagina HTML, la variabile ggbApplet non viene inizializzata. Tale operazione va effettuata manualmente, ad esempio inserendo all'inizio il codice ggbApplet=document.applets[0];.

JavaScript globale

In the Global JavaScript part of Scripting tab in Properties Dialog you may define some functions or do some assignments that will be done before the construction is loaded. You can also define function ggbOnInit(), which is called automatically once the construction is loaded. The ggbOnInit function can be used for registering some listeners, as shown below.

Esempio:
function onAdd(name){
    alert("Object "+name+" was added.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}
First we defined function onAdd that given a string shows a message depending on that string. After that, using the ggbOnInit function, we told GeoGebra to call this function whenever a new object is added. Once we reload our construction, function ggbOnInit will be called and since then, when user adds a point named e.g. A, message "Object A was added" will appear.

You can also use listeners for actions like rename, delete and clear construction. Complete list is available in Reference:JavaScript.

Note: Using any ggbApplet methods in Global JavaScript outside of ggbOnInit will not work as intended since they will be called before the construction is loaded.

USB Logging

For logging data from from some Vernier USB Data Loggers, eg Go!Motion and Go!Temp one can define a logger listener using the registerLoggerListener method. Such listener can look like this:

function logger(value) {
   var d = value * 1;
   ggbApplet.evalCommand("(CopyFreeObject[a],"+d+")");
   ggbApplet.evalCommand("SetValue[a,a+1]");
}

This script assumes that there is a free number a in the construction. Each time number d is logged, point (a,d) is constructed and a is increased.


L'elenco completo dei comandi utilizzabili è disponibile qui: Riferimenti: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.

© 2024 International GeoGebra Institute