Interfaz Pública de Programación
(API para JavaScript)


Descartes 3 cuenta con una interfaz pública de programación o API (Application Programming Interface) que puede utilizarse para interactuar con las escenas de Descartes desde las páginas web que las contienen utilizando JavaScript u otros applets de Java.

La documentación técnica de la interfaz pública está en DescartesAPI.html.

Esta página constituye un ejemplo de uso del API de Descartes 3. La página está montada como un editor de escenas de Descartes hecho con JavaScript, pero el objetivo pedagógico de la interfaz pública de Descartes es la creación de páginas web que posibiliten modificar dinámicamente la configuración de un applet Descartes, por ejemplo, de acuerdo con las respuestas del alumno a un conjunto de preguntas.

El código JavaScript de esta página usa todos los métodos del API o interfaz pública de programación de Descartes 3 para actuar sobre la escena que aparece a media página y que está definida en un applet llamado Muestras.

Un clic a los botones de la siguiente tabla hace una llamada a una función específica del API de Descartes. Por ejemplo el botón limpiar tiene definido: onClick="Muestras.clear();".

En esta tabla aparecen unos botones que actúan sobre el applet que vemos más abajo. A su derecha aparece el métodos llamado por cada uno y una pequeña explicación de lo que hace.

start() Inicia el applet (llamar después de stop())
stop() Detiene el applet (deja de funcionar).
about() Abre la ventana de créditos.
limpiar() Borra los rastros dejados por objetos gráficos.
original() Recupera la escena original
refresh() Pinta la escena (sirve cuando ha quedado mal pintada)
edit() Abre el editor de escenas.
initAnimation() Reinicia la animación.
toggleAnimation() Detiene o continúa la animación.

El botón definir botones utiliza el texto que está a su derecha para configurar los botones de la escena. El usuario puede experimentar cambiando los valores de cada botón y ver cómo aparecen o desaparecen al pulsar el botón. La función para definir los botones es setButtons(java.lang.String)

El botón definir espacio utiliza el texto que está a su derecha para configurar el espacio de la escena. La función para definir la escena es setSpace(java.lang.String) Si la escena tiene más de un espacio, esta acción eliminará los otros espacios y dejará solamente el nuevo. Si la escena tiene más de un espacio y se desea modificar la configuración de uno de ellos, deberá seleccionarse el número del espacio en el selector a la derecha del botón espacio, modificar la configuración que se obtiene en el campo de texto y pulsar el botón * para reemplazar la configuración anterior por la nueva.

Significado de los botones: = reemplazar, = eliminar, = agregar nuevo.

Los botones espacio, control, auxiliar, gráfico y gráfico3D, tienen a su derecha un selector que sirve para elegir la cantidad o número de estos objetos (espacio, control, etc...); un campo de texto en el que aparece la configuración del objeto seleccionado; y cuatro botones que sirven respectivamente para: reemplazar la configuración por la del campo de texto ( * ), eliminar el objeto seleccionado ( - ), agregar un nuevo objeto con la configuración definida en el campo de texto ( + ) o quitar todos los objetos del tipo correspondiente. Los métodos utilizados por el selector y los botones son los que se indican en esta tabla:

getSpace(String) replaceSpace(String, String) deleteSpace(String) addSpace(String) removeSpaces
getControl(String) replaceControl(String, String) deleteControl(String) addControl(String) removeControls
getAux(String) replaceAux(String, String) deleteAux(String) addAux(String) removeAuxs
getGraph(String) replaceGraph(String, String) deleteGraph(String) addGraph(String) removeGraphs
get3DGraph(String) replace3DGraph(String, String) delete3DGraph(String) add3DGraph(String) remove3DGraphs


La animación puede eliminarse pulsando el botón quitar animación; obtenerse (la configuración) de ésta pulsando el botón obtener animación. La configuración puede modificarse y pasarse al applet pulsando definir animación. Estas tres funciones se logran con los métodos:

removeAnimation(),
getAnimation() y
setAnimation(java.lang.String) ,

respectivamente.

Los botones:


sirven para obtener el código del applet de la escena. El primero lo obtiene en el formato normal, y el segundo lo hace usando la codificación estándar HTML para letras acentuadas y demás caracteres "extranjeros", que son los que no se utilizan normalmente en inglés como la ñ y la η. Estos botones hacen llamadas a los métodos: getCode() y getHTMLEncodedCode() , respectivamente.

También se puede actuar sobre escenas que están en otros marcos de la misma ventana del navegador, por ejemplo este botón actúa sobre el applet llamado Descartes3, que se usa como logotipo, y aparece en el marco superior izquierdo. Dicho marco se llama logo. Para realizar esta acción el botón tiene definido:

onClick="parent.parent.logo.Descartes4.toggleAnimation();"

Finalmente, la escena que brota de este botón también puede controlarse usando el API. Por ejemplo, este botón detiene y continúa su animación. Para realizar esta acción el botón tiene definido:

onClick="ElSistemaSolar.toggleAnimation();"

Nota: Esto sólo puede lograrse con el segundo método de escenas en ventanas, es decir el que usa la opción "pop" del panel de configuración del código.


Autor: José Luis Abreu León
con la colaboración de Norma Apodaca, Lilia Morales, Deyanira Monroy y Mariana Villada