Referencia:JavaScript

Innen: GeoGebra Manual

Ez az oldal azt írja le, hogy hogyan lehet kapcsolódni a GeoGebra applethez JavaScript használatával. A GeoGebra appletet egy JavaScript objektum reprezentálja, és ebben a dokumentumban feltesszük, hogy az az objektum egy ggbApplet nevű változóban van tárolva. Ez igaz is, ha a JavaScriptet csak a GeoGebrából használjuk, vagy egy olyan weboldalon, amely csak egy GeoGebra appletet tartalmaz, és úgy jött létre, hogy a GeoGebrából exportálták (Ctrl + Shift + M), vagy a GeoGebra-al generálták az Offline Package link segítségével. A szkriptelés nem elérhető azoknál az appleteknél, amelyeket a GeoGebra Embed lehetőségének segítségével exportáltak. Több applet esetén lásd az Az Applet Objektum Elérése részt.

Példák

1. példa: a következő HTML kódrészlet egy "Reset" gombot ad a HTML oldalhoz, ami képessé teszi a felhasználót arra, hogy a GeoGebraApplet-ben látható konstrukciót alaphelyzetbe állítsa:

 <form>
   <input type="button" value="Reset" onclick="ggbApplet.reset();">
 </form>

2. példa: ez két gombot ad: "A elrejtése" és "A mutatása" amelyek a konstrukcióban található "A" nevű objektum láthatóságát változtatják.

 <form>
   <input type="button" value="A elrejtése" onclick="ggbApplet.setVisible('A', false);">
   <input type="button" value="A mutatása" onclick="ggbApplet.setVisible('A', true);">
 </form>

3. példa: A "myLittleConstruction()" JavaScript függvény a GeoGebraApplet több metódusának meghívására használható:

 <script type="text/javascript" language="javascript" src="http://www.geogebra.org/web/4.4/web/web.nocache.js"></script>
 <article class="geogebraweb" data-param-width="500" data-param-height="500" data-param-ggbbase64="UEsDBBQACAgIAM1CWUMAAAAAAAAAAAAAAAAWAAAAZ2VvZ2VicmFfamF2YXNjcmlwdC5qc0srzUsuyczPU0hPT/LP88zLLNHQVKiuBQBQSwcI1je9uRkAAAAXAAAAUEsDBBQACAgIAM1CWUMAAAAAAAAAAAAAAAAMAAAAZ2VvZ2VicmEueG1svVZtb9s2EP6c/oqDPicxSVGyHMgp1gIFCmTdgHTDsG+URMtcZFEQKb8M/fE7kpIjpy/o0GFB7CN5D++5O96Rzl8fdw3sZW+UbtcRvSURyLbUlWrrdTTYzU0Wvb5/lddS17LoBWx0vxN2HXGHVNU62iSblBPGbgou0hu+yuKbjONXucrKpCJVma14BHA06q7VH8ROmk6U8rHcyp140KWwnnhrbXe3WBwOh9uJ6lb39aKui9ujqSJAN1uzjsbBHZq72HSIPZwRQhd//PwQzN+o1ljRljICF8Kg7l9d5QfVVvoAB1XZ7TrKCIaxlareYkypmywcqMOEdLK0ai8Nbp1Nfcx210UeJlqnvwojaM7hRFCpvapkv47ILUsi0L2SrR21dGRZTPvzvZKHYMiNPAcmzWrdFMLZgE+fgBFG4NoJGgRDkaZBRcIaiYNgQfAgkoDhYTsPUB4wPGB4HMFeGVU0Eo9UNAZzptpNj+d1nht7aqT3Z1x4jpdeY0xG/Y3g2CUxJBnXCbl2H8zsNZ+yOwuSzlhtP/xL0olymbHvp2Q/FGg8cbIvhcmSr4SZfoM0xP09cdJkxolU/t9/PmOMvxXmS8Yw/zHClP8vIeaLqVXysTvAbB12rB4rd8b1S7yCZOXKnkKCvZEuscoToCsUSwbYDUAT4AlOaQapk0uIl6jgEEMGDkdj8M2RZPjFl95YCgkac6tL7EmgSMQhiYH6nuKAnQS+L7FHWYyIJIEENzl6ypyJOAWe4izOgKOPriWXFIExbsQ50jOIKcRuM10CSyF19ih3rZ5mznU0ySAlkFJnELsaOzp0M+IziF006Zgu1XaDvUhRuaumodXd+SwQjffR8z0X7qeLa/Aqb0QhG3wZHt1JAuxF4zrCE210a2E6RBbW6l50W1WaR2kt7jLwl9iLB2Hl8R2izcTtsaVuza+9tm91M+xaA1Dqhpx91g2djdnZa5zEMwWfK5KZIp2Nl1/k1aiBwUjk172Z4KKq3jvE89WAmfylbU5veimeOq0uw8gX/pHJ5VA2qlKi/R2L1bG4vMD05vjranpzOKOTI7qvHk8GKxiOf8pe4x1Dk1sy/8Pb5xRU8UsVHrgphWu+hFxqsLdOX1PxwC335yMSR3mOvu5VNR+/N290U51z4cN/Kzo79P7XAnrXu6B+autG+hLxjY1PcflU6ONjqI042Pp46nBGAn9R+7QDXg0swdeyHmURpMc4x84o4jHEI8hUbKo66+mKeYSXRZAehdUbXBsDpVOUlEw0yvgLjUQXbeNL3z3sQ6vswzSxqnx6jtThPwy7Qp4L6NIk/Y9M5osXBZY/yb6VzVjPeJCDHkxoz1mpV7JUO5wGxZgQ4Q7rN3QgrFay7uXkd+N/h4V0eS2Zl+pny97Uu17v3rf7j1gJLxzIF5OXuSl71bl6gwLfgCf5XFOVMgKfkGq+zzUghl66pwLTY11qsDUHu9W9/6mFNwpKxzCH+nYcf0ve/wNQSwcI2ajKq1gEAADoCgAAUEsBAhQAFAAICAgAzUJZQ9Y3vbkZAAAAFwAAABYAAAAAAAAAAAAAAAAAAAAAAGdlb2dlYnJhX2phdmFzY3JpcHQuanNQSwECFAAUAAgICADNQllD2ajKq1gEAADoCgAADAAAAAAAAAAAAAAAAABdAAAAZ2VvZ2VicmEueG1sUEsFBgAAAAACAAIAfgAAAO8EAAAAAA=="></article>
 <script type="text/javascript">
   function myLittleConstruction() {
     var applet = document.ggbApplet;
     applet.evalCommand("A = (1,1)"); 
     applet.evalCommand("B = (3,2)"); 
     applet.evalCommand("s = Line[A, B]"); 
   }
 </script>
 <form>
   <input type="button" value="Do construction" onclick="myLittleConstruction();">
 </form>

4. példa: Lásd a következő példa munkalap forráskódját, ami JavaScript-et használ:

 http://www.geogebra.org/source/program/applet/geogebra_applet_javascript_test.htm

5. példa: Ez a példa munkalap egy add listener-t használ annak megállapítására, hogy egy konstrukció kész van-e (és utána azt mondja, "Well done").

 http://www.geogebra.org/en/examples/javascriptAutomaticCheckingExercise.html

6. példa: Ez a példa a JavaScript-GeoGebraWeb interfész mikéntjét mutatja:

 http://archive.geogebra.org/examples/SlopeTestWeb.html

Elérhető metódusok

Metódus szignatúrája Mióta Leírás
boolean evalCommand(String cmdString) 3.0 Kiértékeli az adott sztringet, miként az ki lenne értékelve, ha beírnák a GeoGebra input mezőjébe (illetve, végre is hajta, mint parancsot, ha kell). A visszatérési értéke azt mondja meg, hogy a kiértékelés sikeres volt-e.
A GeoGebra 3.2-től több parancsot is meg lehet adni neki egyszerre a \n karakterkombinációval elválasztva azokat.
Megjegyzés: angol nyelven kell a parancsneveket megadni ahhoz, hogy biztosan működjön a GeoGebra minden verziójában.
String evalCommandCAS(String string) 3.2 Átad egy sztringet a GeoGebra CAS-jának (Komputer Algebra Rendszerének) és egy sztringként visszaadja a választ.
void setUndoPoint() 3.2 Megjegyez egy állapotot a visszaállításhoz, vagyis undo-hoz. Hasznos, ha képessé akarjuk tenni a felhasználót arra, hogy visszaállítsa az evalCommand előtti állapotot, ha például egy HTML gombot speciális GeoGebra eszközként akarunk használni.

Az objektumok állapotának beállítása

Általános metódusok

Metódus szignatúrája Mióta Leírás
void deleteObject(String objName) 2.7 Kitörli az adott nevű objektumot.
void setValue(String objName, double value) 3.2 Az adott nevű objektum double pontosságú valós szám értékét állítja be. Megjegyzés: ha az adott objektum logikai típusú, akkor használjuk az 1 értéket arra, hogy igazra állítsuk, és használjunk bármely más értéket arra, hogy hamisra állítsuk. Bármely más típusra (aminél a valós érték nincs értelmezve), semmi sem történik a metódus hívásakor.
void setListValue(String objName, int i, double value) 5.0 Az 'i'-edik pozícióban található listaelemet 'value' értékre állítja be.
void setCoords(String objName, double x, double y) 3.0 Beállítja az adott nevű objektum koordinátáit. Megjegyzés: ha az adott objektum nem pont vagy vektor, akkor semmi sem történik a metódus hívásakor.
void setColor(String objName, int red, int green, int blue) 2.7 Beállítja az adott nevű objektum színét.
void setVisible(String objName, boolean visible) 2.7 Az adott nevű objektumot megjeleníti, vagy pedig elrejti a Grafikai ablakban (nézetben).
void setLabelVisible(String objName, boolean visible) 3.0 Az adott nevű objektum címkéjét megjeleníti, vagy pedig elrejti a Grafikai ablakban (nézetben).
void setLabelStyle(String objName, int style) 3.0 Az adott nevű objektum címkéjének stílusát állítja be a Grafikai ablakban (nézetben). A címkék stílusának lehetséges értékei NAME = 0, NAME_VALUE = 1, VALUE = 2 és (a GeoGebra 3.2-től) CAPTION = 3
void setFixed(String objName, boolean flag) 3.0 Beállítja, hogy az adott nevű objektum fixálva legyen-e, vagy ne. Megjegyzés: a fixált objektumokat nem lehet megváltoztatni.
void setTrace(String objName, boolean flag) 3.0 Az adott nevű objektum trace (nyomkövetésének) állapotát felkapcsolja, vagy lekapcsolja.
boolean renameObject(String oldObjName, String newObjName) 3.2 Az oldObjName nevű objektumot átnevezi newObjName nevűre. Azzal tér vissza, hogy az átnevezés sikeres volt-e.
void setLayer(String objName, int layer) 3.2 Beállítja, hogy az objektum melyik rétegben helyezkedjen el (layer)
void setLayerVisible(int layer, boolean visible) 3.2 Megjeleníti, vagy pedig elrejti az összes objektumot, amelyek az adott rétegben helyezkednek el.
void setLineStyle(String objName, int style) 3.2 Beállítja az adott objektum vonalstílusát (0-tól 4-ig)
void setLineThickness(String objName, int thickness) 3.2 Beállítja az adott objektum vonalvastagságát (1-től 13-ig, -1 az alapértelmezés)
void setPointStyle(String objName, int style) 3.2 Beállítja a pontok stílusát (-1 az alapértelmezés, 0 a telt kör, 1: kör, 2: kereszt, 3: plusz, 4: telt gyémánt, 5: üres gyémánt, 6: háromszög (észak), 7: háromszög (dél), 8: háromszög (kelet), 9: háromszög (nyugat))
void setPointSize(String objName, int size) 3.2 Beállítja egy pont méretét (1-től 9-ig)
void setFilling(String objName, double filling) 3.2 Beállítja, hogy egy objektum mennyire legyen átlátszatlan módon kitöltve (0-tól 1-ig)
String getPNGBase64(double exportScale, boolean transparent, double DPI) 4.0 Visszaadja az 1. Grafikai nézetet PNG képként, ami egy base64-el kódolt sztring
pl. var str = ggbApplet.getPNGBase64(1, true, 72);
boolean writePNGtoFile(String filename, double exportScale, boolean transparent, double DPI) 4.0 (csak Java) Kiexportálja az 1. Grafikai nézetet egy .PNG fájlba (csak signed appletek esetén)
pl. var success = ggbApplet.writePNGtoFile("c:\\test.png", 1, false, 300);
boolean isIndependent(String objName) 4.0 Megnézi, hogy az objName nevű objektum független objektum-e, és visszaadja az annak megfelelő logikai értéket.
boolean isMoveable(String objName) 4.0 Megnézi, hogy az objName nevű objektum mozgatható-e, és visszaadja az annak megfelelő logikai értéket
String getBase64() A jelenlegi konstrukciót egy base64-el kódolt .ggb fájlként adja vissza, ami egy sztring.
String getBase64(callback function) 4.2 (csak HTML5) A jelenlegi konstrukciót egy sztringként adja vissza, amit egy base64-el kódolt .ggb fájl, és ezt aszinkron módon teszi, a sztringet pedig, ha készen áll, egy callback függvény paramétereként adja át, meghívva ezzel a függvényt. A callback függvénynek egy paramétere kell, hogy legyen (a base64 sztring).
void setBase64(String) 4.0 Olyanra állítja be a jelenlegi konstrukciót, mint ami egy adott sztringben van megadva, ami egy base64-el kódolt .ggb fájl.

Automatikus animáció

Metódus szignatúrája Mióta Leírás
void setAnimating(String objName, boolean animate) 3.2 Beállítja, hogy egy objektum animálva legyen-e. Ez még nem kezdi el az animációt, arra inkább a startAnimation() használható.
void setAnimationSpeed(String objName, double speed) 3.2 Beállítja egy objektum animálásának, animációjának sebességét.
void startAnimation() 3.2 Elkezdi az animációját minden objektumnak, aminek az animating (animálás) jelzője be van állítva, lásd setAnimating()
void stopAnimation() 3.2 Megállítja az animációját minden objektumnak, amelynek az animating (aminálás) jelzője be van állítva, lásd setAnimating()
boolean isAnimationRunning() 3.2 Azzal a logikai értékkel tér vissza, ami megmondja, hogy az automatikus animáció jelenleg fut-e.

Az objektumok állapotának lekérdezése

Metódus szignatúrája Mióta Leírás
double getXcoord(String objName) 2.7 Visszatér az adott nevű objektum (Descartes-féle koordinátaként értelmezett) x-koordinátájával. Megjegyzés: 0-val tér vissza, ha az objektum nem pont vagy vektor.
double getYcoord(String objName) 2.7 Visszatér az adott nevű objektum (Descartes-féle koordinátaként értelmezett) y-koordinátájával. Megjegyzés: 0-val tér vissza, ha az objektum nem pont vagy vektor.
double getValue(String objName) 3.2 Az adott nevű objektum double pontosságú valós számértékével tér vissza (pl. szakasz hosszúsága, poligon területe). Megjegyzés: 1-el tér vissza olyan logikai objektum esetén, amelynek értéke igaz... máskülönben 0-val tér vissza.
String getColor(String objName) 2.7 Az adott nevű objektum színével tér vissza, amit egy hexadecimális sztringként ad meg, pl. "#FF0000" jelenti a pirosat. Jegyezzük meg, hogy a hexadecimális számrendszerben megadott sztring esetünkben mindig # jellel kezdődik és nem tartalmaz kisbetűket.
boolean getVisible(String objName) 3.2 Igazzal vagy hamissal tér vissza attól függően, hogy az objektum a Grafikai nézet(ek)ben látható-e vagy nem. Hamissal tér vissza, ha az objektum nem létezik.
boolean getVisible(String objName, int view) 4.2 Igazzal vagy hamissal tér vissza attól függően, hogy az objektum a 'view' változóban specifikált számú (1. vagy 2.) Grafikai nézetben látható-e. Hamissal tér vissza, ha az objektum nem létezik.
String getValueString(String objName) 2.7 Egy sztringként adja vissza az adott nevű objektum értékét.
String getDefinitionString(String objName) 2.7 Egy sztringként adja vissza az adott nevű objektum szöveges definícióját.
String getCommandString(String objName) 2.7 Egy sztringként adja vissza az adott nevű objektum létrehozásának parancsát.
String getObjectType(String objName) 2.7 Egy sztringként adja vissza egy adott nevű objektum típusát (mint például "point", "line", "circle", stb. vagyis "pont", "egyenes", "kör").
boolean exists(String objName) 2.7 Azzal a logikai értékkel tér vissza, ami megmondja, hogy egy adott nevű objektum létezik-e a konstrukcióban.
boolean isDefined(String objName) 2.7 Azzal a logikai értékkel tér vissza, ami megmondja, hogy egy adott objektum értéke valid-e (definiált-e, értelmezett-e) éppen.
String [] getAllObjectNames()
Deprecated since 3.0
2.7 Visszatér egy tömbbel, ami a konstrukcióban található összes ("Geo") objektum nevét tartalmazza. Megjegyzés: JavaScript-ben a tömbök használata néhány böngészőben problémákat okoz. Ilyenkor használjuk a getObjectNumber() és getObjectName() metódusokat inkább.
int getObjectNumber() 3.0 Visszatér a konstrukcióban található ("Geo") objektumok számával.
String getObjectName(int i) 3.0 Visszatér a konstrukcióban található n-edik objektum nevével.
String getLayer(String objName) 3.2 Azzal tér vissza, hogy az objektum melyik rétegben van.
int getLineStyle(String objName) 3.2 Az objektum vonalstílusával tér vissza (0-tól 4-ig)
int getLineThickness(String objName) 3.2 Az objektum vonalvastagságával tér vissza (1-től 13-ig)
int getPointStyle(String objName) 3.2 A pontos stípusával tér vissza (-1 az alapértelmezés, 0: telt kör, 1: kör, 2: kereszt, 3: plusz, 4: telt gyémánt, 5: üres gyémánt, 6: háromszög (észak), 7: háromszög (dél), 8: háromszög (kelet), 9: háromszög (nyugat))
int getPointSize(String objName) 3.2 Egy pont méretével tér vissza (1-től 9-ig)
double getFilling(String objName) 3.2 Egy objektum átlátszatlanságának mértékével tér vissza (0-tól 1-ig)

Konstrukció / Felhasználói Interfész

Metódus szignatúrája Mióta Leírás
void setMode(int mode) 2.7 Beállítja, hogy mit csináljon az egér a Grafikai ablakban (nézetben), más szóval az Eszközt (tool), annak módját, pl. pontrajzolás, mozgatás, stb. (lásd toolbar reference és a applet parameters "showToolBar" és  "customToolBar" )
void openFile(String strURL) 2.7 (csak Java) Megnyit egy konstrukciót egy   fájlból (abszolút vagy relatív URL sztringként megadva)
void reset() 2.7 Visszatölti ennek az appletnek a kezdeti konstrukcióját (ami a filename paraméterben volt megadva).
void refreshViews() 2.7 Minden nézetet frissít. Megjegyzés: ez a grafikai ablakban (nézetben) minden trace-t (nyomkövetést) is töröl.
void setOnTheFlyPointCreationActive(boolean flag)
3.2 Felkapcsolja (true, igaz esetén) vagy lekapcsolja (false, hamis esetén) a Grafikai nézetben azt a viselkedési formát, hogy a pontokat a program más eszközök használata közben is létrehozza. Megjegyzés: ez hasznos lehet, ha nem akarjuk, hogy az eszközöknek olyan mellékhatása legyen, ami pontokat hoz létre. Például, amikor ez a jelző (zászló) hamisra van állítva, akkor az "egyenes két ponton keresztül" eszköz nem hoz létre pontokat amikor a Grafikai nézet hátterére kattintunk.
void hideCursorWhenDragging(boolean flag)
3.2 Elrejti (true, igaz) vagy megmutatja (false, hamis) az egérkurzort (mutatót) amikor egy objektumot húznak vagy megváltoztatják a konstrukciót.
void setRepaintingActive(boolean flag)
2.7 Az applet újrarajzolását felkapcsolja (true, igaz) vagy lekapcsolja (false, hamis). Megjegyzés: akkor használjuk ezt a metódust, ha hatékony újrarajzolást akarunk, mialatt sok metódust hívunk meg.
void setErrorDialogsActive(boolean flag) 3.0 A hibát jelző ablakokat felkapcsolja (true, igaz) vagy lekapcsolja (false, hamis). Megjegyzés: ez különösen hasznos az evalCommand()-al együtt.
void setCoordSystem(double xmin, double xmax, double ymin, double ymax) 3.0 Beállítja a derékszögű koordináta rendszer helyzetét a Grafikai ablakban (nézetben).
void setAxesVisible(boolean xAxis, boolean yAxis) 3.0 Megjeleníti vagy elrejti az x- és y-tengelyeket a grafikai ablak (nézet) koordináta-rendszerében.
void setGridVisible(boolean flag) 3.0 Megjeleníti vagy elrejti a koordinátarendszer rácsát a grafikai ablakban (nézetben).

GeoGebraApplet és JavaScript közötti kommunikáció

Ezekkel a metódusokkal megvalósítható az Applet-től JavaScript-hez történő kommunikáció. Ha a következőleg felsorolt metódusok bármelyikét is használják, akkor a következő opciót: MAYSCRIPT be kell szúrniuk az applet HTML tag első sorának végére. Például:

<applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>.

A MAYSCRIPT opció is csak a GeoGebraApplet-től JavaScript-hez intézett kommunikációban fontos; Nem szükséges ahhoz, hogy a JavaScript elérje a GeoGebraApplet metódusait. Például, ezek a metódusok használhatók a következőkre:

Metódus szignatúrája Mióta Leírás
void registerAddListener(String JSFunctionName) 3.0 Egy JavaScript függvényt regisztrál, mint egy add listener-t, vagyis egy hozzáadás-figyelőt az applet konstrukciójához. Ha ezután egy új objektumot hoznak létre a GeoGebraApplet konstrukciójában, akkor a JSFunctionName nevű JavaScript függvény meghívódik az újonnan létrehozott objektum nevével az egyedüli argumentumaként (hívás paramétereként).

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerAddListener("myAddListenerFunction");

Amikor az "A" objektum létrehozásra kerül, akkor a GeoGebra Applet meghívja a következő JavaScript függvényt:

myAddListenerFunction("A");
void unregisterAddListener(String objName) 3.0 Eltávolít egy korábban hozzáadott add listener-t (hozzáadás-figyelőt), lásd registerAddListener()
void registerRemoveListener(String JSFunctionName) 3.0 Egy JavaScript függvényt regisztrál, mint egy remove listener-t, vagyis eltávolítás-figyelőt az applet konstrukciójához. Ha ezután egy objektumot kitörölnek a GeoGebraApplet konstrukciójából, akkor meghívódik a JSFunctionName nevű JavaScript függvény az éppen törölt (eltávolított) objektum nevével az egyedüli argumentumaként (hívás paramétereként). Megjegyzés: ha egy egész konstrukciót törölnek, akkor ez a törlés figyelő metódus nem hívódik meg minden egyes objektumra, lásd registerClearListener().

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerRemoveListener("myRemoveListenerFunction");

Ha egy "A" objektumot letörölnek, akkor a GeoGebra Applet meghívja a következő JavaScript függvényt:

myRemoveListenerFunction("A");
void unregisterRemoveListener(String objName) 3.0 Eltávolít (töröl) egy korábban regisztrált eltávolítás-figyelőt (remove listener-t), lásd registerRemoveListener()
void registerUpdateListener(String JSFunctionName) 3.0 Egy JavaScript függvényt regisztrál, mint egy update listener-t, vagyis frissítés-figyelőt az applet konstrukciójához. Ha ezután bármely objektum frissül a GeoGebraApplet konstrukciójában, akkor meghívódik a JSFunctionName nevű JavaScript függvény az éppen frissült objektum nevével az egyedüli argumentumaként (hívás paramétereként). Megjegyzés: ha csak egy adott objektum frissüléseit akarjuk figyelni, akkor használjuk inkább a registerObjectUpdateListener() metódust.

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerUpdateListener("myUpdateListenerFunction");

Amikor az "A" nevű objektum frissül, akkor a GeoGebra Applet meghívja a következő JavaScript függvényt:

myUpdateListenerFunction("A");
void unregisterUpdateListener(String objName) 3.0 Eltávolít egy korábban regisztrált frissítés-figyelőt (update listener-t), lásd registerUpdateListener()
void registerObjectUpdateListener(String objName, String JSFunctionName) 3.0 Egy JavaScript függvényt regisztrál, mint egy object update listener-t, vagyis objektum-frissítés-figyelőt egy darab objektumra. Ha ezután bármikor az adott nevű objektum frissül, akkor meghívódik a JSFunctionName nevű JavaScript függvény az éppen frissült objektum nevével az egyedüli argumentumaként (hívás paramétereként). Ha az objName-hez már előtte volt rendelve egy JavaScript függvény, akkor a régi érték felülíródik. Megjegyzés: minden objektum frissítés-figyelő regisztrációja törlődik, ha az objektumukat eltávolítják, vagy a konstrukciójukat törlik, lásd registerRemoveListener() és registerClearListener().

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerObjectUpdateListener("A", "myAupdateListenerFunction");

Ha az A objektum frissül, akkor a GeoGebra Applet meghívja a következő JavaScript függvényt:

myAupdateListenerFunction("A");

Megjegyzés: egy objektum-frissítés-figyelő akkor is működik, ha az objektumát átnevezik.

void unregisterObjectUpdateListener(String objName) 3.0 Eltávolít egy korábban regisztrált objektum-frissítés-figyelőt egy adott nevű objektumról, lásd registerObjectUpdateListener()
void registerRenameListener(String JSFunctionName) 3.0 Egy JavaScript-függvényt regisztrál, mint egy rename listener-t, vagyis átnevezés-figyelőt az applet konstrukciójára. Ha ezután egy objektumot átneveznek a GeoGebraApplet konstrukciójában, akkor meghívódik a JSFunctionName nevű JavaScript függvény az átnevezett objektum régi nevével és új nevével, mint két argumentumával (hívás paraméterével).

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerRenameListener("myRenameListenerFunction");

Amikor az "A" objektumot átnevezik "B"-re, akkor a GeoGebra Applet meghívja a következő JavaScript függvényt:

myRenameListenerFunction("A", "B");
void unregisterRenameListener(String objName) 3.0 Eltávolít egy korábban regisztrált átnevezés-figyelőt, lásd registerRenameListener()
void registerClearListener(String JSFunctionName) 3.0 Egy JavaScript-függvényt regisztrál, mint egy clear listener-t, vagyis törlés-figyelőt az applet konstrukciójára. Ha ezután a GeoGebraApplet-ben található konstrukciót mindenestől törlik, akkor meghívódik a JSFunctionName nevű JavaScript függvény argumentumok nélkül. Megjegyzés: minden update listener (frissítés-figyelő) is törlődik, amennyiben a konstrukciót törlik. Lásd registerUpdateListener() és registerRemoveListener().

Példa: Először, regisztráljunk egy figyelő JavaScript függvényt:

ggbApplet.registerClearListener("myClearListenerFunction");

Amikor a konstrukciót törlik (tehát a konstrukció reset-elésekor, vagyis újratöltésekor, vagy egy új fájl megnyitásakor), a GeoGebra Applet meghívja a következő JavaScript függvényt:

myClearListenerFunction();
void unregisterClearListener(String JSFunctionName) 3.0 Eltávolít egy korábban regisztrált törlés-figyelőt (clear listener), lásd registerClearListener()

A GeoGebra XML formátumával kapcsolatos metódusok

Ezekkel a metódusokkal szinte mindent be lehet állítani a konstrukcióban (lásd XML Reference ).

Metódus szignatúrája Mióta Leírás
void evalXML(String xmlString) 2.7 Kiértékeli az adott XML sztringet és megváltoztatja az aktuális konstrukciót. Megjegyzés: az XML sztring kiértékelése előtt NEM törlődik a konstrukció.
void setXML(String xmlString) 2.7 Kiértékeli az adott XML sztringet és megváltoztatja az aktuális konstrukciót. Megjegyzés: a konstrukció törlődik az XML sztring kiértékelése előtt. Ez a metódus arra szolgál, hogy konstrukciókat töltsenek be.
String getXML()
2.7 Visszaadja a jelenlegi konstrukciót a GeoGebra XML formátumában. Ez a metódus arra is használható, hogy konstrukciókat mentsenek el.
String getXML(String objName)
3.2 Visszaadja a GeoGebra XML sztringjét egy adott objektumnak, tehát csak az <element> XML tagot és annak belsejét.
String getAlgorithmXML(String objName)
3.2 Egy függő GeoElement objektumra, aminek a neve objName, a szülő algoritmusának az XML sztringje tér vissza az összes kimenő objektumának XML sztringjeivel együtt (tehát maga az eredeti objektum is köztük lesz). Egy szabad GeoElement objektumra, aminek a neve objName, csak "" (üres sztring) tér vissza. (A GeoElement, vagy csak röviden "geo" a GeoGebra fejlesztők szakszava, és a GeoGebraApplet konstrukciójában található - nem algoritmus - objektumokat értik rajta.)

Vegyes

Metódus szignatúrája Mióta Leírás
String getIPAddress() 3.2 (csak Java) A helyi számítógép IP címével tér vissza egy sztringként, mint pl. "192.168.0.4"
String getHostname() 3.2 (csak Java) A helyi számítógép hosztnevével tér vissza sztringként.
void debug(String string) 3.2 Az adott sztringet kiírja a Java Konzolra.

Az Applet Objektum Elérése

Alapesetben az applet a globális ggbApplet változóban érhető el. Ez alól a következő kivételek vannak:

  • ha több applet van egy oldalon, akkor alapértelmezésben csak az egyik érhető el a JavaScriptből. Hogy több appletet el lehessen érni, a megfelelő appletek "id" paraméterét kell beállítani, és ez lesz annak a globális változónak a neve is, amelyik az appletet reprezentálja.
  • ha GeoGebra 4.0-ból vagy régebbi verzióból exportálunk: az első applet a document.applets[0] változóban érhető el, a többi applet, amelyik ugyanabba a HTML oldalba van beágyazva, a document.applets[1], ... változókban.

es:Referencia:JavaScript fr:Référence:JavaScript it:Riferimenti:JavaScript

© 2024 International GeoGebra Institute