Scripting in GeoGebra

Een script is een reeks van commando's die een na een na elkaar worden uitgevoerd worden. GeoGebra ondersteunt twee scripting talen- GGBScript en Javascript. Scripts kan je typen in de tab Scripting van de  Instellingen van het object waaraan je een script wil toekennen. Opmerking: Het script werkt slechts na het sluiten van het venster Instellingen. Dit laat je toe rustig te typen zonder dat er tegelijk een hoop dingen gebeuren in je constructie.
Verschillende objecttypes ondersteunen verschillende types vab scripting. De uitvoering van een script kan gestart worden:
  • door te klikken op een specifiek object (tab Bij klikken)
  • bij update van een specifiek object, wanneer de waarde of een eigenschap van het object gewijzigd word (tab Bij update)
  • door de inhoud van een invulvak te wijzigen (tab Bij wijzigen)
  • bij het loslaten van de muisknop (of het verwijderen van je vinger van het scherm bij touch screen schermen) na het verslepen van een object (tab Bij verslepen beëindigd)
  • bij het laden van een bestand (tab Global Javascript voor JavaScript)
  • Javascript listeners (zie Reference:JavaScript)
Het verschil tussen Bij update en Bij wijzigen in het script bij een invulvak input box is het volgende: Een script in de tab Bij update tab wordt enkel uitgevoerd wanneer de focus verwijderd wordt van het invulvak (b.v. door te klikken op een knop, te klikken in het tekenvenster enz ..), een script in de tab Bij wijzigen wordt uitgevoerd vanaf het moment zelf dat de inhoud van het invulvak wijzigt en de focus nog steeds op het invulvak zelf ligt. Opmerkingen:

GGBScript

Je kunt scripts creëren die bestaan uit GeoGebra commando's, op dezelfde manier als je ze zou gebruiken in het invoerveld. Na het triggeren van het script wordt elk commando uitgevoerd in dezelfde volgorde als waarin je ze in het script typte. Voorbeeld:
  1.  is schruifknop voor een geheel getal van tot (met toename )
  2. typ als invoer: lijst1 = {"red", "green", "blue"}
  3. Typ in de Instellingen van  in de tab "Bij update" een script om de kleur te bepalen: SetColor(a, Element(lijst1, a))
  4. Bij het verslepen van de schuifknop zal de kleur veranderen.
Elke keer je de schuifknop versleept is er een 'update' . Dus voor elke beweging wordt het script aangesproken en wordt de waarde van gebruikt om schuifknop de passende kleur te geven. Opmerking: Je kunt het symbool gebruiken voor een commentaar. Tip: Sommige commando's kunnen enkel gebruikt worden voor scripting. Een lijst van deze commando's vind je op de pagina Scripting_Commando's.

JavaScript

JavaScript is programmeertaal die in vele internet technologieën gebruikt wordt. In tegenstelling tot GeoGebra Script hoeven commando's in Javascript niet in een simpele volgorde uitgevoerd worden en kan je bv. ook een control flow (ifwhilefor) gebruikend. Voor generic JavaScript vind je een mooie tutorial op developer.mozilla.org. In GeoGebra kan je specifieke JavaScript methoden gebruiken om je constructie te wijzigen. Deze methoden refereren naar een object ggbApplet. Dit betekent dat je ze ggbApplet.method_naam(parameter,..,parameter) kunt noemen. Een volledige lijst van deze methodes vind je op Reference:JavaScript. VOorbeeld:
  • for(var i =0;i<10;i++) ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
  • Dit scripot creëert 10 punten  to  met random coördinaten. Opmerking: Scripting met JavaScript is erg veelzijdig, maar heel wat taken kan je ook realiseren met het eenvoudigere GeoGebraScript.

    Global JavaScript

    In het Global JavaScript deel van de tab Scripting in de  Instellingen kan je functies definiëren (geen variabelen) die je kunt gebruiken vanuit de andere scripts. Je kunt ook een functie ggbOnInit(naam, api) definiëren die wordt uitgevoerd bij het inladen van de constructie. De functie ggbOnInit kan je gebruiken voor zogenaamde listeners, zoals in onderstaand voorbeeld. Voorbeeld: function onAdd(naam){ alert("Object "+naam+" werd toegevoegd."); } function ggbOnInit(name, api){ api.registerAddListener("onAdd"); } Eerst definieerden we de functie onAdd die bij een gegeven string een boodschap toont, afhankelijk van deze string. Daarna wordt deze ggbOnInit functie gebruikt om GeoGebra te vertellen om deze functie aan te spreken telkens wanneer een nieuw object wordt toegevoegd. Bij het herladen van de constructie wordt de functie ggbOnInit aangesproken en telkens de gebruiker een punt toevoegt, b.v. , verschijnt de boodschap "Object A werd toegevoegd". Je kunt ook zgn. listeners gebruiken voor acties als hernoemen, verwijderen van objecten of het wissen van een constructie. Een volledige lijst vind je op de pagina Reference:JavaScript. Opmerking: ggbApplet methods in Global JavaScript zullen buiten ggbOnInit niet werken zoals bedoeld omdat ze zullen worden aangesproken voor de constructie ingeladen wordt.