Referencia:JavaScript
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:
- felhasználók tevékenységének szemmel tartására (lásd java2javascript example)
- kommunikációra két GeoGebra applet között (lásd java2java example)
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