Diferencia entre revisiones de «Referencia:JavaScript»

De GeoGebra Manual
Saltar a: navegación, buscar
Línea 423: Línea 423:
  
 
Los siguientes métodos permiten implementar un Applet para la comunicación JavaScript. Al emplearlos, es preciso asegurarse de insertar la opción <span class="term"><span class="highlightedSearchTerm"><span style="font-weight: bold;">MAYSCRIPT</span> añadida al final de la primera línea de la etiqueta del ''applet'' en curso (applet tag). Por ejemplo:
 
Los siguientes métodos permiten implementar un Applet para la comunicación JavaScript. Al emplearlos, es preciso asegurarse de insertar la opción <span class="term"><span class="highlightedSearchTerm"><span style="font-weight: bold;">MAYSCRIPT</span> añadida al final de la primera línea de la etiqueta del ''applet'' en curso (applet tag). Por ejemplo:
 
 
<span style="font-family: monospace;">&lt;applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" </span><span style="font-weight: bold; font-family: monospace; color: rgb(255, 0, 0);">MAYSCRIPT</span><span style="font-family: monospace;">&gt;</span>.
 
<span style="font-family: monospace;">&lt;applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" </span><span style="font-weight: bold; font-family: monospace; color: rgb(255, 0, 0);">MAYSCRIPT</span><span style="font-family: monospace;">&gt;</span>.
 
La opción <span class="highlightedSearchTerm">MAYSCRIPT</span>  <span class="highlightedSearchTerm">se</span> precisa únicamente para comunicación GeoGebraApplet a JavaScript; no es <span class="highlightedSearchTerm"> </span> necesaria para el acceso de JavaScript a los métodos de GeoGebraApplet.  
 
La opción <span class="highlightedSearchTerm">MAYSCRIPT</span>  <span class="highlightedSearchTerm">se</span> precisa únicamente para comunicación GeoGebraApplet a JavaScript; no es <span class="highlightedSearchTerm"> </span> necesaria para el acceso de JavaScript a los métodos de GeoGebraApplet.  

Revisión del 19:14 2 ene 2012

Este documento describe métodos públicos disponibles en geogebra.GeoGebraApplet que pueden emplearse desde una página HTML vía JavaScript.

Ejemplos

Ejemplo 1: el siguiente fragmento de código HTML añade un botón de reinicio ("Reset") a una página HTML que permite reiniciar la construcción expuesta en el Applet de GeoGebra para que recupere su estado inicial:

 <form>
   <input type="button" value="Reset" onclick="document.applets[0].reset();">
 </form>

Ejemplo 2: esto añade dos botones "Oculta A" y "Expone A" cambia el estado de visibilidad de un objeto llamado "A" en la construcción

 <form>
   <input type="button" value="Oculta A" onclick="document.applets[0].setVisible('A', false);">
   <input type="button" value="Expone A" onclick="document.applets[0].setVisible('A', true);">
 </form>

Ejemplo 3: una función JavaScript "myLittleConstruction()" se emplea para llamar varios métodos del Applet de GeoGebra. Nota: se fija el idioma al Alemán ("de") con el parámetro "language" del applet en la etiqueta para asegurarse que el comando en alemán "Gerade" (línea) pueda operar.

 <applet name="ggbApplet" code="geogebra.GeoGebraApplet"
   archive="geogebra.jar"
   codebase="http://jars.geogebra.org/webstart/4.0/unsigned/"
   width=200 height=40>
 <param name="filename" value="circle.ggb">
 <param name="framePossible" value="false">
 <param name="language" value="de">
 Please <a href="http://www.java.com">install Java 1.4.2</a> (or later) to use this page.
 </applet>
 <script type="text/javascript">
   function myLittelConstruction() {
     var applet = document.ggbApplet;
     applet.evalCommand("A = (1,1)"); 
     applet.evalCommand("B = (3,2)"); 
     applet.evalCommand("s = Gerade[A, B]"); 
   }
 </script>
 <form>
   <input type="button" value="Hacer construcción" onclick="myLittelConstruction();">
 </form>

Ejemplo 4: Conviene revisar el código fuente del siguiente ejemplo de hoja dinámica que emplea JavaScript.

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

Ejemplo 5: Este es un ejemplo de hoja dinámica que emplea un sensor (add listener) para controlas cuándo una construcción particular se ha completado (y luego expresa "¡Bien hecho!" - en inglés Well done.).

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

Métodos Disponibles

Firma del Método Desde Descripción
boolean evalCommand(String cmdString) 3.0 Evalúa la cadena dada como cuando se la ingresa desde la Barra de Entrada de GeoGebra. Da por resultado si fue exitosa la evaluación.
A partir de GeoGebra 3.2 se puede pasar múltiples comandos de a una vez separando cada uno de ellos con \n.
Nota: usar el parámetro del idioma (language) para controlar que operen correctamente los nombres de los comandos.
void setUndoPoint() 3.2 Fija un punto de deshace. Útil cuando se quiere que el usuario pueda deshacer lo que la acción de evalCommand, por ejemplo si se ha hecho un botón HTML para actuar como una herramienta de usuario

Con estos métodos se puede implementar comunicaciones Applet a JavaScript. Cuando se los emplea, es preciso asegurarse de haber insertado la opción MAYSCRIPT añadida al final de la primera línea de la etiqueta del applet (applet tag). Por eejmplo:

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

La opción MAYSCRIPT sólo se requiere para comunicaciones GeoGebraApplet a JavaScript; no es necesaria para métodos de acceso de JavaScript a GeoGebraApplet.

Por ejemplo, estos métodos se pueden emplear para

Estableciendo el Estado de los Objetos

Métodos Generales


Firma del Método Desde Descripción
void deleteObject(String objName) 2.7 Elimina el objeto del nombre dado.
void setValue(String objName, double value) 3.2 Fija el doble valor del objeto con el nombre dado. Atención: si el objeto especificado es booleano, se debe usar el valor 1 para establecerlo como verdadero y cualquier otro, para falso. Para cualquier otro tipo de objeto, no se hace nada.
void setCoords(String objName, double x, double y) 3.0 Fija las coordenadas del objeto del nombre dado. Atención: si el objeto especificado no es un punto o un vector, no se hace nada.
void setColor(String objName, int red, int green, int blue) 2.7 Fija el color del objeto con el nombre dado.
void setVisible(String objName, boolean visible) 2.7 Muestra u oculta el objeto con el nombre dado en la vista gráfica.
void setLabelVisible(String objName, boolean visible) 3.0 Muestra u oculta los rótulos del objeto con el nombre dado en la vista gráfica.
void setLabelStyle(String objName, boolean visible) 3.0 Fija el estilo del rótulo del objeto con el nombre dado en la vista gráfica. Los estilos de rótulo posibles son NOMBRE = 0, NOMBRE_VALOR = 1, VALOR = 2 y (a partir de GeoGebra 3.2) SUBTITULO = 3
void setFixed(String objName, boolean flag) 3.0 Establecer el estado fijo del objeto con el nombre dado. Atención: los objetos fijos no puede modificarse.
void setTrace(String objName, boolean flag) 3.0 Activa o desactiva el rastro del objeto con el nombre dado.
boolean renameObject(String oldObjName, String newObjName) 3.2 Cambia el nombre del objeto del previo, oldObjName al nuevo, newObjName. Indica si se ha logrado renombrarlo
void setLayer(String objName) 3.2 Fija la capa del objeto
void setLayerVisible(int layer, boolean visible) 3.2 Muestra u ocular todos los objetos en la capa dada
void setLineStyle(String objName, int style) 3.2 Fija el estilo del trazo para el objeto (0 a 4)
void setLineThickness(String objName, int thickness) 3.2 Fija el grosor del objeto (1 a 13, -1 por omisión)
void setPointStyle(String objName, int style) 3.2 Fija el estilo de los puntos (-1 por omisión, 0 redondel sombreado, 1 redondel hueco, 2 cuz, 3 signo más, 4 rombo sombreado, 5 rombo hueco, 6 triángulo (al norte), 7 triángulo (al sur), 8 triángulo (al este), 9 triángulo (al oeste))
void setPointSize(String objName, int size) 3.2 Fija el tamaño del punto (desde 1 a 9)
void setFilling(String objName, double filling) 3.2 Fija el sombreado de un objeto (desde 0 a 1)
String getPNGBase64(double exportScale, boolean transparent, double DPI) 4.0 Da por resultado la cadena de la Vista Gráfica 1 codificada en base64
eg var str = ggbApplet.getPNGBase64(1, true, 72);
boolean writePNGtoFile(String filename, double exportScale, boolean transparent, double DPI) 4.0 Exporta la Vista Gráfica 1 a un archivo .PNG (sólo para signed applets, firmadas)
eg var success = ggbApplet.writePNGtoFile("c:\\test.png", 1, false, 300);
boolean isIndependent(String objName) 4.0 Controla si el objeto del nombre dado, objName, es independiente
boolean isMoveable(String objName) 4.0 Controla si el objeto del nombre dado, objName es desplazable
String getBase64() 4.0 Da por resultado la construcción activa como un archivo .ggb codificado en base64
void setBase64(String) 4.0 Establece la construcción activa desde un archivo .ggb en código de base64

Animación Automática

Firma del Método Desde Descripción
void setAnimating(String objName, boolean animate) 3.2 Establece la posibilidad de animar un objeto. No inicia la animación, para eso debe emplearse startAnimation(), simplemente indica su viabilidad.
void setAnimationSpeed(String objName, double speed) 3.2 Establece la velocidad de animación de un objeto.
void startAnimation() 3.2 Inicia la animación automática para todos los objetos que la tuvieran indicada (flag o bandera de animación así fijada, ver setAnimating())
void stopAnimation() 3.2 Detiene la animación automática para todos los objetos que la tuvieran indicada (flag o bandera de animación así fijada, ver setAnimating())
boolean isAnimationRunning() 3.2 Da por resultado el dato que establece si la animación automática está activa.

Sobre el Estado de los Objetos

Firma del Método Desde Descripción
double getXcoord(String objName) 2.7 Devuelve la coordenada cartesiana x del objeto con el nombre dado. Atención: Devuelve 0 si el objeto no es un punto o un vector.
double getYcoord(String objName) 2.7 Devuelve la ordenada cartesiana-y- del objeto con el nombre dado. Atención: Devuelve 0 si el objeto no es un punto o un vector..
double getValue(String objName) 3.2 Devuelve el doble valor del objeto con el nombre dado (por ejemplo, la longitud de un segmento, el área de un polígono). Atención: Devuelve 1 si el objeto es una variable booleana con valor cierto -true- y en cualquier otro caso, 0..
String getColor(String objName) 2.7 Devuelve el color del objeto especificado del objeto con el nombre dado, como una cadena hexadecimal, por ejemplo,. "# FF0000" es rojo. La cadena hexadecimal siempre comienza con # y no contiene letras minúsculas.
boolean getVisible(String objName) 3.2 Devuelve verdadero o falso dependiendo de si el objeto es visible o no en la Vista Gráfica. Devuelve false si el objeto no existe.
String getValueString(String objName) 2.7 Devuelve una cadena que contiene el valor del objeto indicado.
String getDefinitionString(String objName) 2.7 Devuelve una cadena que contiene la definición del objeto indicado.
String getCommandString(String objName) 2.7 Devuelve una cadena que contiene el comando del objeto del nombre dado.
String getObjectType(String objName) 2.7 Devuelve una cadena que contiene el tipo de objeto determinado (como el "punto", "recta", "círculo", etc.).
boolean exists(String objName) 2.7 Indica si un objeto con el nombre dado existe o no en la construcción.
boolean isDefined(String objName) 2.7 Devuelve si el valor del objeto especificado es actualmente válido.
String [] getAllObjectNames()
Deprecated since 3.0
2.7 Devuelve una matriz que contiene los nombres de todos los objetos en la construcción. Atención: El uso de matrices en JavaScript crea problemas con algunos navegadores.Es preferible emplear getObjectNumber () y getObjectName ().
int getObjectNumber() 3.0 Devuelve el número de objetos en la construcción .
String getObjectName(int i) 3.0 Devuelve el nombre del objeto enésimo de la construcción.
String getLayer(String objName) 3.2 Devuelve la capa a la que está destinado el objeto.
int getLineStyle(String objName) 3.2 Detecta el estilo de línea del objeto indicado (estilo de 0 a 4).)
int getLineThickness(String objName) 3.2 Detecta el ancho de línea (1 a 13)
int getPointStyle(String objName) 3.2 Detecta el estilo de los puntos (-1 por omisión; 0 redondel sombreado; 1 redondel hueco; 2 cruz; 3 signo más; 4 diamante sombreado; 5 diamante hueco; 6 triángulo (norte); 7 Triángulo (sur); 8 triángulo (este); 9 Triángulo (oeste))
int getPointSize(String objName) 3.2 Detecta el tamaño de un punto (desde 1 a 9)
double getFilling(String objName) 3.2 Detecta el tipo de sombreado de un objeto (desde 0 a 1))

Construcción / Interfaz de Uso

Firma del Método Desde Descripción
void setMode(int mode) 2.7 Establece el modo de mouse o ratón (por ejemplo, como una herramienta) en la Vista Gráfica (ver Referencia:Barra de Herramientas y [Referencia:Parámetros Applet|parámetros applet]] y  "customToolBar" )
void openFile(String strURL) 2.7 Abre una construcción desde un archivo (indicado por una cadena con la URL absoluta o relativa)
void reset() 2.7 Actualizar la construcción inicial (que se indica en el parámetro de nombre de archivo en el applet actual).
void refreshViews() 2.7 Actualizar todas las vistas. Atención: todos los rastros serán eliminados de la vista gráfica.
void setOnTheFlyPointCreationActive(boolean flag)
3.2 Activar (true) o desactivado (false) la creación inmediata de puntos en la vista gráfica. Atención: Es muy útil cuando se desea evitar la creación de puntos como un "efecto secundario" de una herramienta. Por ejemplo, cuando este indicador es falso, la herramienta de "recta por dos puntos" no crea puntos por el clic en la vista gráfica.
void hideCursorWhenDragging(boolean flag)
3.2 Ocultar (true) o mostrar (false) el cursor del mouse o ratón (puntero) al arrastrar un objeto para cambiar la construcción.)
void setRepaintingActive(boolean flag)
2.7 Activar (true) o desactivado (false) repintar el applet. Atención: Este método es eficaz sobre todo cuando son varios los métodos invocados.
void setErrorDialogsActive(boolean flag) 3.0 Activar (true) o desactivado (false) mostrar cuadros de diálogo acerca de los errores. Atención: Es muy útil si se utiliza junto con evalCommand ().
void setCoordSystem(double xmin, double xmax, double ymin, double ymax) 3.0 Establece el sistema de coordenadas cartesianas de la Vista Gráfica.
void setAxesVisible(boolean xAxis, boolean yAxis) 3.0 Muestra u oculta los ejes x e y del sistema de coordenadas de la Vista Gráfica.
void setGridVisible(boolean flag) 3.0 Muestra u oculta la cuadrícula de coordenadas de la Vista Gráfica.

Comunicación entre JavaScript y GeoGebraApplet

Los siguientes métodos permiten implementar un Applet para la comunicación JavaScript. Al emplearlos, es preciso asegurarse de insertar la opción MAYSCRIPT añadida al final de la primera línea de la etiqueta del applet en curso (applet tag). Por ejemplo: <applet name="ggbApplet" code="geogebra.GeoGebraApplet" codebase="." archive="geogebra.jar" width="500" height="250" MAYSCRIPT>. La opción MAYSCRIPT se precisa únicamente para comunicación GeoGebraApplet a JavaScript; no es necesaria para el acceso de JavaScript a los métodos de GeoGebraApplet. Por ejemplo, estos métodos pueden emplearse para:

Firma del Método Desde Descripción
void registerAddListener(String JSFunctionName) 3.0 Registra una función JavaScript como un sensor añadido a la construcción del applet. Cuando un objeto se crea en la construcción de GeoGebraApplet, se llama a la función de JavaScript JSFunctionName que tiene como único argumento el nombre del objeto recién creado.
Ejemplo:Registrar una función JavaScript de detector:


ggbApplet.registerAddListener ("myAddListenerFunction")("A");
; Cuando se crea un objeto "A", el applet de GeoGebra llama a la función JavaScript
myAddListenerFunction("A");
void unregisterAddListener(String objName) 3.0 Elimina un detector anteriormente registrado (ver registerAddListener()
void registerRemoveListener(String JSFunctionName) 3.0 Registra una función de JavaScript, como oyente remove de actualización para la construcción del applet. Siempre que un objeto se actualiza en el GeoGebraApplet de la construcción activa , la función se llama utilizando JSFunctionName y como único argumento el nombre de la actualización. Atención: Si desea sensar cuando una construcción se borra, en lugar de hacerlo para cada objeto en particular, es mejor utilizar registerObjectUpdateListener ().

Ejemplo: Registrar una función de detector por encima de una función JavaScript:

ggbApplet.registerRemoveListener("myRemoveListenerFunction");

ggbApplet.registerUpdateListener ("myUpdateListenerFunction"); Cuando un objeto se actualiza "A", el applet de GeoGebra llama a la función JavaScript myUpdateListenerFunction ("A"); ,

myRemoveListenerFunction("A");
void unregisterRemoveListener(String objName) 3.0 Removes a previously registered remove listener, see registerRemoveListener()
void registerUpdateListener(String JSFunctionName) 3.0 Registers a JavaScript function as a update listener for the applet's construction. Whenever any object is updated in the GeoGebraApplet's construction, the JavaScript function JSFunctionNameis called using the name of the updated object as its single argument. Note: when you only want to listen for the updates of a single object use registerObjectUpdateListener() instead.

Example: First, register a listening JavaScript function:

ggbApplet.registerUpdateListener("myUpdateListenerFunction");

When the object "A" is updated, the GeoGebra Applet will call the Javascript function

myUpdateListenerFunction("A");
void unregisterUpdateListener(String objName) 3.0 Removes a previously registered update listener, see registerUpdateListener()
void registerObjectUpdateListener(String objName, String JSFunctionName) 3.0 Registers a JavaScript function as an update listener for a single object. Whenever the object with the given name is updated, the JavaScript function JSFunctionNameis called using the name of the updated object as its single argument. If objName previously had a mapping JavaScript function, the old value is replaced. Note: all object updated listeners are unregistered when their object is removed or the construction is cleared, see registerRemoveListener() and registerClearListener().

Example: First, register a listening JavaScript function:

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

Whenever the object A is updated, the GeoGebra Applet will call the Javascript function

myAupdateListenerFunction("A");

Note: an object update listener will still work after an object is renamed.

void unregisterObjectUpdateListener(String objName) 3.0 Removes a previously registered object update listener of the object with the given name, see registerObjectUpdateListener()
void registerRenameListener(String JSFunctionName) 3.0 Registers a JavaScript function as a rename listener for the applet's construction. Whenever an object is renamed in the GeoGebraApplet's construction, the JavaScript function JSFunctionName is called using the old name and the new name of the renamed object as its two arguments.

Example: First, register a listening JavaScript function:

ggbApplet.registerRenameListener("myRenameListenerFunction");

When an object "A" is renamed to "B", the GeoGebra Applet will call the Javascript function

myRenameListenerFunction("A", "B");
void unregisterRenameListener(String objName) 3.0 Removes a previously registered rename listener, see registerRenameListener()
void registerClearListener(String JSFunctionName) 3.0 Registers a JavaScript function as a clear listener for the applet's construction. Whenever the construction in the GeoGebraApplet is cleared (i.e. all objects are removed), the JavaScript function JSFunctionName is called using no arguments. Note: all update listeners are unregistered when a construction is cleared. See registerUpdateListener() and registerRemoveListener().

Example: First, register a listening JavaScript function:

ggbApplet.registerClearListener("myClearListenerFunction");

When the construction is cleared (i.e. after reseting a construction or opening a new construction file), the GeoGebra Applet will call the Javascript function

myClearListenerFunction();
void unregisterClearListener(String JSFunctionName) 3.0 Removes a previously registered clear listener, see registerClearListener()

Formato XML de GeoGebra

Con estos métodos se puede establecer prácticamente todo en una construcción (ver Referencia XML ).

Firma del Método Desde Descripción
void evalXML(String xmlString) 2.7 Evalúa la cadena XML dada y cambia la construcción activa. Atención: la construcción no es borrada antes de la evaluación de la cadena XML.
void setXML(String xmlString) 2.7 Evalúa la cadena XML dada y cambia la construcción activa. Atención: la construcción es borrada antes de la evaluación de la cadena XML. Este método puede emplearse para cargar construcciones.
String getXML()
2.7 Da por resultado la construcción activa en formato XML de GeoGebra. Este método puede emplearse para guardar construcciones.
String getXML(String objName)
3.2 Da por resultado la cadena XML de GeoGebra para el objeto dado, por ejemplo, sólo la etiqueta o tag del <elemento> deviene resultado.
String getAlgorithmXML(String objName)
3.2 Para un GeoElemento objName dependiente, deviene resultado la cadena XML del algoritmo precedente y todos sus objetos de salida. Para un GeoElemento objName libre, la salida resultante es "".

Misceláneas

Firma del Método Desde Descripción
String evalMathPiper(String string) 3.2 Pasa la cadena a MathPiper y establece el resultado como una Cadena.

Eliminado en GeoGebra 4.0 y será reemplazado con evalGeoGebraCAS() wn GeoGebra 4.2

String getIPAddress() 3.2 Da por resultado la dirección de IP de la computadora local como una Cadena; por ejemplo, "192.168.0.4"
String getHostname() 3.2 Da por resultado el nombre del host de la computadora local como una Cadena
void debug(String string) 3.2 Imprime la cadena de la Consola Java

en:Reference:JavaScript fr:Référence:JavaScript it:Riferimenti:JavaScript

© 2024 International GeoGebra Institute