Skripting in GeoGebra

Skripts sind Folgen von Befehlen, die nacheinander ausgeführt werden. GeoGebra unterstützt zwei Skriptsprachen - GGBScript und JavaScript. Du kannst Skripts im Skripting Tab des  Eigenschaften-Dialogs des Objekts, welches du mit einem Skript versehen möchtest, hinzufügen und verändern. Anmerkung: Die Objekteigenschaften müssen wieder geschlossen sein, damit Skripts funktionieren.
Verschiedene Objekte können mit verschiedenen Skripttypen ausgestattet werden; das Ausführen von Skripts kann ausgelöst werden durch:
  • klicken auf ein bestimmtes Objekt (beiMausklick-Tab)
  • aktualisieren eines bestimmten Objekts, wenn Werte oder Objekteinstellungen verändert werden (beiUpdate-Tab)
  • verändern des Inhalts eines Eingabefelds (beiÄnderung-Tab)
  • beim Loslassen des Mausklicks (oder wenn sich der Finger vom Touchscreen löst), nachdem ein Objekt verschoben wurde (beiZieh-Ende-Tab)
  • laden der Datei (für JavaScript - GlobalesJavaScript-Tab)
  • Javascript listeners (siehe Reference:JavaScript)
Der Unterschied zwischen beiUpdate und beiÄnderung Skripts eines Eingabefeldes ist, dass im Fall des Skripts im beiUpdate-Tab, das Skript nur dann ausgeführt wird, wenn der Fokus vom Eingabefeld weggenommen wird (wenn man z.B. auf einen Button klickt, in die Grafikansicht klickt, etc...), wobei aber Skripts im beiÄnderung-Tab sofort ausgeführt werden, wenn der Inhalt des Eingabefelds verändert wird und der Fokus noch beim Eingabefeld selbst ist. Anmerkungen:

GGBScript

Du kannst Skripts aus GeoGebra Befehlen erstellen, die du sonst auch in der Eingabezeile verwenden würdest. Nachdem das Skript ausgelöst wird, werden alle Befehle in der Reihenfolge, in der sie geschrieben wurden, ausgeführt. Beispiel:
  1.  ist ein ganzzahliger Schieberegler mit Werten von bis (die Schrittlänge ist somit )
  2. gib ein: liste1 = {"rot", "grün", "blau"}
  3. in den Objekteinstellungen von , setze das "On Update" Skript to SetzeFarbe(a, Element(liste1, a))
  4. indem du den Schieberegler bewegst, veränderst du somit die Farbe des Objekts
Jedes Mal, wenn der Schieberegler verändert wird, tritt ein Update auf. Also wird für jede Bewegung das Skript aktiviert und der Wert wird verwendet, um eine Farbe der Liste zu wählen und dem Schieberegler diese Farbe zuzuweisen. Anmerkung: Verwende , um einen Kommentar zu verfassen. Hinweis: Manche Befehle können nur für Skripting verwendet werden. Diese findest du auf der Skripting (Befehle)-Seite.

JavaScript

JavaScript ist eine Programmiersprache, die von vielen Internettechnologien verwended wird. Anders als bei GeoGebra Script werden Befehle in JavaScript nicht als eine einfache Folge ausgeführt, man kann sie auch mit control flow Aussagen (ifwhilefor) verwenden. Finde mehr dazu in einem der Tutorials auf developer.mozilla.org. In GeoGebra kannst du spezielle JavaScript Methoden anwenden, um deine Konstruktion zu verändern. Diese gehören zu ggbApplet Objekten, also kannst du sie als ggbApplet.method_name(parameter,..,parameter)bezeichnen. Eine komplette Liste der Methoden findest du auf Reference:JavaScript. Beispiel:
  • for(var i =0;i<10;i++) ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
  • Dieses Skript erstellt 10 Punkte  bis  mit beliebigen Koordinaten. Hinweis: Skripting mit JavaScript ist sehr vielseitig, deswegen lohnt es sich oft, mit den viel einfacheren GeoGebra Skripts auszukommen.

    Global JavaScript

    Im Reiter Globales JavaScript in den  Einstellungen kannst du Funktionen (keine Variablen) definieren, die für alle anderen Skripts verfügbar sind. Du kannst auch die Funktion function ggbOnInit(name, api) definieren, die automatisch ausgeführt wird, wenn die Konstruktion lädt. Die ggbOnInit Funktion kann genutzt werden, um listeners einzuführen, wie im Beispiel unten. Beispiel: function onAdd(name){ alert("Object "+name+" was added."); } function ggbOnInit(name, api){ api.registerAddListener("onAdd"); } Zuerst wurde die Funktion onAdd definiert, die eine Nachricht basierend auf einem gegebenen String ausgibt. Danach wurde GeoGebra mithilfe der Funktion ggbOnInit mitgeteilt, dass diese Funktion aufgerufen werden soll, sobald ein neues Objekt hinzugefügt wird. Sobald die Konstruktion neu geladen wird, wird die Funktion ggbOnInit aufgerufen und ab diesem Zeitpunkt erscheint die Nachricht "Objekt A wurde hinzugefügt", wenn ein Benutzer einen Punkt mit dem Namen z. B. hinzufügt. Du kannst listeners für Aktionen wie Umbenennen, Löschen oder Lösche Konstruktion verwenden. Eine komplette Liste findest du in Reference:JavaScript. Hinweis: Die Verwendung von ggbApplet-Methoden im Globalen JavaScript außerhalb von ggbOnInit funktioniert nicht wie beabsichtigt, da sie aufgerufen werden, bevor die Konstruktion geladen ist.