Szkriptelés
Some content was not yet translated. See the English original. Please edit the manual page if you have the rights for translation.
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)
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.
Példa:- 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
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.
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.Példa: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 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:
Példa: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".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 címen.
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.