Scripts__

Ce qui suit figure dans le [url=https://geogebra.github.io/docs/manual/fr/Script/]manuel[/url][br][br]Un script est une suite de commandes exécutées l'une après l'autre.[br][br][br][i]GeoGebra [/i] propose deux types de scripts [i]GGBScript [/i] et [i]Javascript[/i].[br][br]Ils sont à définir dans les propriétés de l'objet auquel on veut les assigner.[br][br][url=https://geogebra.github.io/docs/manual/fr/commands/Commandes_Scripts/]liste des commandes Script[/url][br][br][br][b]Note :[/b] Le dialogue [i]Propriétés[/i] doit être fermé pour que l'on puisse exécuter un script.
Différents objets prennent en charge différents types de scripts ; l’exécution des scripts peut être déclenchée par :[br][br][list][*]un clic sur un objet (onglet[i] Par Clic[/i])[/*][*]la mise à jour d’un objet, lorsque sa valeur ou ses propriétés sont modifiées (onglet[i] Par Actualisation[/i])[/*][*]la modification du contenu d’un champ de saisie (onglet[i] En cas de changement[/i])[/*][*]le relâchement du bouton de la souris (ou le retrait du doigt de l’écran pour les appareils tactiles) après le déplacement d’un objet (onglet [i]En Fin Glisser[/i])[/*][*]le chargement du fichier (pour JavaScript : onglet [i] Javascript global[/i])[/*][*]les écouteurs JavaScript [/*][/list][br][br]La différence entre les scripts [i]Par Actualisation[/i] et [i]En cas de changement[/i] pour une zone de saisie réside dans le fait que, si le script est saisi dans l'onglet [i]Par Actualisation[/i], il n'est exécuté que lorsque le focus est retiré de la zone de saisie (par exemple en cliquant sur un bouton, dans la vue graphique, etc.), tandis que le script saisi dans l'onglet [i]En cas de changement[/i] sera exécuté dès que le contenu de la zone de saisie change même si le focus est toujours sur la zone de saisie elle-même.[br][br][br][b]Notes :[/b][br][list][*]Consultez une démo des scripts [url=https://www.geogebra.org/m/bek5uqah]  [i]En cas de changement[/i] et [i]Par Actualisation[/i][/url] pour un ChampTexte.[/*][*]Consultez une démo de script [url=https://www.geogebra.org/m/kxgvyqvj][i]En Fin Glisser[/i][/url] pour un point déplaçable.[/*][/list]
GGbScript
Vous pouvez créer des scripts composés de commandes[i] GeoGebra[/i], comme vous le feriez dans [i]Saisie[/i]. [br][br]Une fois le script déclenché, chaque commande est exécutée séquentiellement, dans l'ordre où elle a été saisie.[br][br][br][b]Exemple :[/b][br][list=1][*][i][math]n[/math][/i] étant un curseur entier variant  de [math]1[/math] à [math]3[/math] [/*][*] écrire : [code]liste1 = {"red", "green", "blue"}[br][/code][/*][*]dans l'onglet "Par Actualisation" de Script dans les Propriétés de[i][math]n[/math][/i],  [br][code]SetColor(n, Element(liste1, n))[br][br][/code][/*][*]en changeant la valeur du curseur vous en changez la couleur[/*][/list][br]Chaque fois que la valeur du curseur est modifiée, il y a actualisation, donc le script est exécuté, et la valeur de [math]n[/math] est utilisée pour choisir la couleur dans la liste et l'appliquer au curseur r [math]n[/math].[br][br][br][b]Note:[/b] Vous pouvez utiliser le symbole [math]#[/math] pour commencer un commentaire.[br][br][b]Aide :[/b] Certaines commandes ne peuvent être utilisées que dans des scripts.[br]La liste en est consultable [url=https://geogebra.github.io/docs/manual/fr/commands/Commandes_Scripts/] ici[/url].
JavaScript
JavaScript est un langage de programmation utilisé par de nombreuses technologies Internet. [br][br]Contrairement à GeoGebra Script, en JavaScript, les commandes ne sont pas nécessairement exécutées de manière séquentielle ; un contrôle de flux ([code]if[/code], [code]while[/code], [code]for[/code]) peut être utilisé.[br]Pour une introduction à JavaScript, vous trouverez un excellent tutoriel sur [url=https://developer.mozilla.org/en/JavaScript/Guide]developer.mozilla[/url].[br][br]GeoGebra propose des méthodes JavaScript spécifiques permettant de modifier la construction.[br][br]Ces méthodes appartiennent à l'objet ggbApplet, ce qui signifie qu'elles sont appelées ainsi : [code]ggbApplet.nom_de_la_méthode(paramètre, ..., paramètre)[/code].[br][br] Liste complète des méthodes consultable [url=https://geogebra.github.io/docs/reference/en/GeoGebra_Apps_API/]ici[/url].[br][br][b]Exemple :[/b][br][*][code]for(var i =0;i<10;i++)[br] ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");[/code][/*][br][br]Ce script crée 10 points de [i]A[sub]0[/sub][/i] à [i]A[sub]9[/sub][/i] de coordonnées aléatoires.[br][br][b]Note : [/b] La programmation en JavaScript est très polyvalente, mais de nombreuses tâches peuvent également être réalisées en utilisant [i]GeoGebraScript[/i].
JavaScript global
Dans [i] JavaScript global[/i] de l'onglet [i]Script[/i] de la boîte de dialogue  [img width=16,height=16]https://geogebra.github.io/docs/manual/en/_images/tutorials/16px-Menu-options.svg.png[/img] [i]Propriétés[/i], vous pouvez définir des [b]fonctions[/b] (et non des variables) accessibles depuis d'autres scripts.[br][br]Vous pouvez également définir la [i]function ggbOnInit( ){}[/i], qui est appelée automatiquement une fois la construction chargée. La [i]function ggbOnInit[/i] permet d'enregistrer des mouchards d'événements, comme illustré ci-dessous.[br][br][br][b]Exemple :[/b][br][br]function Ajout(nom){[br] alert("L'objet "+nom+" a été ajouté.");[br]}[br][br]function ggbOnInit(nom, ggbApplet){[br] ggbApplet.registerAddListener("Ajout");[br]}[br][br]Nous avons d'abord défini la fonction [i]Ajout[/i] qui, à partir d'une chaîne de caractères, affiche un message en fonction de cette chaîne.[br]Ensuite, grâce à la fonction[i] ggbOnInit[/i], nous avons indiqué à GeoGebra d'appeler cette fonction à chaque ajout d'un nouvel objet. Lors du rechargement de notre construction, la fonction [i]ggbOnInit[/i] est appelée et, depuis, lorsqu'un utilisateur ajoute un point nommé par ex. [i][math]A[/math][/i], le message "L'objet A a été ajouté" apparaît.[br][br]Vous pouvez aussi utiliser des mouchards pour des actions comme Renommer, Effacer. Une liste complète est consultable  : [url=https://geogebra.github.io/docs/reference/en/GeoGebra_Apps_API/#_event_listeners]ici[/url][br][br][br][b]Note :[/b] L'utilisation de méthodes ggbApplet dans le [i]JavaScript global[/i] en dehors de ggbOnInit ne fonctionnera pas comme prévu, car elles seront appelées avant le chargement de la construction.

Інформація: Scripts__