Script

Un script est une suite de commandes qui seront exécutées l’une après l’autre.

GeoGebra supporte deux langages pour les scripts — GGBScript et Javascript.

Vous pouvez définir les scripts dans l’onglet Script du Menu-options.svg Dialogue Propriétés de l’objet auquel vous voulez attacher un script.

image Le Dialogue Propriétés doit être fermé pour qu’un script puisse être exécuté !

Les différents objets supportent des différents types de scripts dont l’exécution peut être déclenchée en :

  • cliquant sur un objet particulier (onglet Par Clic) ;

  • actualisant un objet particulier (quand sa valeur ou ses propriétés sont modifiées) (onglet Par Actualisation) ;

  • changeant le contenu d’un Champtexte (onglet En cas de changement) ;

  • relachant le bouton de la souris (ou éloignant le doigt de l’écran) après le déplacement d’un objet (onglet En Fin Glisser);

  • chargeant le fichier (onglet JavaScript global) ;

  • utilisant des écouteurs Javascript (voir références API)

Pour un ChampTexte, la différence entre Par Actualisation et En cas de changement et que si le script est défini dans l’onglet Par Actualisation, il n’est exécuté que lorsque l’on quitte le champ texte (en cliquant par exemple sur un autre objet ou dans Graphique, etc…​), alors que si le script est défini dans l’onglet En cas de changement, il est exécuté aussitôt que le contenu du champ texte varie, alors que le pointeur est toujours dans le champ texte.

GGBScript

Vous pouvez créer des scripts constitués de commandes GeoGebra comme vous les auriez utilisées dans Saisie.

Après le déclenchement du script, chaque commande est exécutée, dans l ordre dans lequel elles sont écrites, de manière séquentielle.

  • n est un curseur à valeurs entières entre 1 et 3

  • liste1 = {"rouge", "vert", "bleu"}

  • dans les propriétés de n, définir dans l’onglet "Script"/"Par Actualisation" SoitCouleur(n, liste1(n))

  • en modifiant la valeur du curseur n vous changez sa couleur.

Explications : Chaque fois que le curseur est modifié une actualisation est créée. Ainsi, pour chaque variation le script est appelé et la valeur de n est utilisée pour sélectionner une couleur de la liste et changer la couleur du curdeur n.

Note Aide : Utiliser # pour introduire un commentaire.

Note Aide : Certaines commandes ne peuvent être utilisées que dans les scripts, vous en trouverez la liste dans cette page Commandes Scripts.

JavaScript

JavaScript est un langage de programmation utilisée par beaucoup de technologies Internet. À la différence des scripts GeoGebra, les scripts Javascript n’ont pas à être utilisés comme de simples suites de commandes, mais un contrôle de flux (if, while, for) peut être utilisé. Pour du JavaScript de base, vous pouvez trouver un tutoriel précieux sur developer.mozilla.org. Dans GeoGebra, vous pouvez utiliser des méthodes spéciales JavaScript qui vous permettent de modifier la construction. Ces méthodes appartiennent à l’objet ggbApplet , ce qui signifie que vous devez l’appeler sous la forme ggbApplet.méthode_nom(paramètre,..,paramètre). Pour une liste complète de ces méthodes voir références API.

for(var i =0;i<10;i++)
   ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");

Ce script crée 10 points A0 à A9 ayant des coordonnées aléatoires.

Les scripts avec JavaScript sont très polyvalents, mais de nombreuses tâches peuvent également être réalisées à l’aide du GGbScript plus simple.

Global JavaScript

Dans l’onglet "JavaScript global" de l’onglet "Script" du dialogue Propriétés vous pouvez définir quelques fonctions, ou faire quelques affectations qui doivent être réalisées avant que la construction ne soit chargée. Vous pouvez aussi définir la fonction ggbOnInit(), qui est appelée automatiquement une fois que la construction est chargée. La fonction ggbOnInit() peut être utilisée pour enregistrer des écouteurs, comme vu ci-dessous.:

function Ajout(nom){
    alert("L'objet "+nom+" a été ajouté.");
}
function ggbOnInit(){
    ggbApplet.registerAddListener("Ajout");
}

D’abord nous avons défini la fonction "Ajout" qui retourne un texte dépendant du nom reçu. Ensuite, en utilisant la fonction ggbOnInit

nous avons dit à GeoGebra d’appeler cette fonction "Ajout" chaque fois qu’un nouvel objet est ajouté. Lorsque la construction est chargée de nouveau, la fonction ggbOnInit est appelée, et ensuite, si l’utilisateur ajoute un point nommée par ex. A, un message "L’objet A a été ajouté" va apparaître.

Vous pouvez aussi utiliser des écouteurs pour des actions telles que Renommer, Supprimer. La liste complète est consultable dans références API.

Toute méthode ggbApplet utilisée dans le JavaScript global à l’extérieur de ggbOnInit ne va pas fonctionner comme désiré car elle va être appelée avant que la construction ne soit chargée.

USB Data Logging

Pour enregistrer des données à partir d’interface USB (Vernier - Go!Motion et Go!Temp) on peut définir un écouteur en utilisant la méthode registerLoggerListener. Un tel écouteur peut ressembler à ceci :

function logger(valeur) {
   var d = valeur * 1;
   ggbApplet.evalCommand("(CopierObjetLibre[a],"+d+")");
   ggbApplet.evalCommand("SoitValeur[a,a+1]");
}

Ce script suppose qu’il y a un nombre libre a dans la construction. Chaque fois que le nombre d est capté, le point (a,d) est construit et a est augmenté de 1.