Szkriptelés

A szkript parancsok sorozata, amelyek egymás után hajtódnak végre. A GeoGebra két szkriptelési nyelvet támogat - GGBScript-et és Javascript-et. A végrehajtásuk a következő módokon kezdődhet el:

  • egy adott objektumra való kattintással

  • egy adott objektum frissítésével (ha az objektum értéke vagy tulajdonságai változnak)

  • a GGB fájl betöltésével (JavaScript nyelvű szkriptelés esetén)

  • Javascript figyelők által (lásd /Referencia:JavaScript.adoc[Referencia:JavaScript])

Ezt a szkriptet a Szkriptelés panelon lehet bevinni a Tulajdonságok párbeszédablak-on.

GGBScript

Lehet olyan szkripteket készíteni, amelyek GeoGebra parancsokat tartalmaznak, olyanokat, amelyeket az Input Bar-ba is be lehet írni. Miután a szkript elkezd végrehajtódni, a parancsok egymás után hajtódnak végre.

Magyarázat: Mindig, amikor a csúszkát mozgatják, egy frissítés (update) történik. Tehát, minden mozgatásra meghívódik a szkript, és "a" megkapja a listából valamelyik színt, hogy olyanra változzon az "a" csúszka színe.

/s_index_php?title=Sablon:Help_action=edit_redlink=1.adoc[Sablon:Help]

JavaScript

A JavaScript egy olyan programozási nyelv, amelyek sokféle Internetes technológia alkalmazza. Ellentétben a GeoGebra szkriptekkel, JavaScript-ben a parancsoknak nem kell egy egyszerű sorozatként végrehajtódnia, hanem egy vezérlési szerkezet (if, while, for) is használható. Az általános JavaScript-ről egy jó kis ismertető található a developer.mozilla.org címen. A GeoGebrában, speciális JavaScript metódusok használhatók, amelyek lehetővé teszik, hogy megváltoztassák a konstrukciót. Ezek a metódusok a ggbApplet objektumhoz tartoznak, ami azt is jelenti, hogy meghívhatók a következőképpen: ggbApplet.method_name(parameter,..,parameter). Ezeknek a metódusoknak egy teljes listájáért lásd: /Referencia:JavaScript.adoc[Referencia:JavaScript].

A GeoGebra tartalmazza a saját JavaScript motorját. Amkor egy konstrukciót exportálnak Dynamic Worksheet-ként, ki lehet választani, hogy ezt a motort használják, vagy pedig azt, amelyik a böngészőben található. Ha a JavaScriptet szerkesztjük egy HTML oldalon, akkor a ggbApplet változó nem kap kezdeti értéket, hanem magunknak kell inicializálni például a következő kóddal: ggbApplet=document.applets[0];.

Global JavaScript

A Globális JavaScript részben, ami a Szkriptelés fülön érhető el a Tulajdonságok párbeszédablak-ból, függvényeket (nem változókat) lehet definiálni amelyek elérhetőek lesznek a többi szkriptből. Létrehozható a ggbOnInit() nevű (és szignatúrájú) függvény is, amelyik automatikusan meghívódik, amikor a konstrukciót betöltik. A ggbOnInit függvény arra használható, hogy regisztráljanak néhány figyelőt, amint az alábbi példa mutatja:

Arra is használhatók a figyelők, hogy olyan történésekre reagáljanak mint például az átnevezés, törlés, vagy a konstrukció teljes törlése. Ezeknek egy teljes listája elérhető a /Referencia:JavaScript.adoc[Referencia:JavaScript] címen.

UnderConstruction.png

Some content was not yet translated.

function onAdd(name){
    alert("A "+name+" nevű objektum hozzáadva.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}

Először definiáljuk az onAdd függvényt, ami egy sztringtől függő üzenetet mutat. Ezután, a ggbOnInit függvény használata segítségével, arra utasítottuk a GeoGebrát, hogy hívja meg ezt a függvényt mindig, amikor egy új objektum jön létre. Ha újratöltjük a konstrukcónkat, a ggbOnInit függvény meghívódik, és ettől fogva, amikor a felhasználó egy pontot ad hozzá a konstrukcióhoz, aminek a neve legyen pl. A, a következő üzenet jelenik meg: "A A nevű objektum hozzáadva".

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

Ez a szkript 10 pontot hoz létre A0-tól A9-ig véletlenszerű koordinátákkal.

  • a egy egész-értékű csúszka 1-től 3-ig

  • list1 = {"red", "green", "blue"}

  • az a tulajdonságai között, állítsuk be az "On Update" szkriptet a következőre SetColor[a, Element[list1, a]]

  • a csúszka mozgatásával annak színe változtatható, mivel a red az pirosat, a green az zöldet, a blue az pedig kéket jelent

Jegyzet: A ggbApplet metódusok használata a globális javascript-ben, de ggbOnInit metóduson kívül nem úgy fog működni, amint szeretnénk, mivel ezek előbb hívódnak meg így, mielőtt a konstrukció betöltődik.