DescartesJS
  • Inicio
  • Descartes
    • Introducción
    • Conceptualización
    • Versiones
    • Ejemplos
  • Edición
    • Gestor de escenas
    • Editor de escenas
    • Código de una escena
    • Manejo de escenas
  • Paneles
    • Botones
    • Espacios
    • Controles
    • Definiciones
    • Programas
    • Gráficos
    • Gráficos 3D
    • Animaciones
  • Auxiliares
    • Colores
    • Funciones
    • Textos
    • Macros
    • Ficheros
    • Imágenes
  • Créditos

Documentación técnica de la herramienta Descartes y del intérprete DescartesJS

  • Estás aquí : 
  • DescartesJS
  • /Manual /
  • Comunicación escena-html usando Descartes Java

    24 abril, 2015 Autor/a: José R Galo Sánchez
    Sin comentarios todavía

    En la versión 3 de Descartes se incluyó un sistema de comunicación o interfaz público de programación (API: Application Programming Interface). El objetivo pedagógico de la interfaz pública de Descartes era y 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 dadas por un alumno a un conjunto de preguntas se presenta una escena diferente.

    Ese API puede consultarse en la documentación de la versión 4 de Descartes, pero para evitar el bloqueo de las escenas ahí incluidas necesitará usar Linux con Open Java o bien una máquina virtual como se indica en el artículo «Bloqueo de escenas en Java«.

    En este enlace tiene la documentación técnica de dicho API.

  • Comunicación escena-html usando DescartesJS

    24 abril, 2015 Autor/a: José R Galo Sánchez
    Sin comentarios todavía

    Comunicación entre una escena de Descartes con la página HTML madre o con la página HTML hija

    Con el intérprete DescartesJS, una escena de Descartes puede comunicarse con la página HTML que le da soporte siempre que la escena esté embebida mediante un iframe, y también puede comunicarse con una página HTML que haya sido abierta por ella a través de un espacio HTMLIframe.

    En la imagen siguiente tenemos en el <body> de una página html un <iframe> a través del cual se embebe un fichero html ( en este caso ese archivo se denomina comunicacion_Descartes.html), el cual contiene una escena de Descartes.

    escenaEnIframe

    código iframe para embeber una escena en una página html

    Para que una pagina html, que es madre de una escena de Descartes a través de un iframe o que es hija de ella mediante un espacio HTMLIframe, pueda recibir los mensajes que envía la escena Descartes mediante las funciones para la comunicación, necesita tener un manejador de eventos

    elemento.addEventListener(«message», funcionQueManejaLosMensajes)

    donde elemento es elemento de la página al que se le asocia el manejador de los eventos que sobre él acontecen y la función funcionQueManejaLosMensajes sirve para gestionar el evento. A continuación se refleja un esquema de esa función donde se controla que el mensaje sea tipo set o update. En lugar del evento «message» pueden contemplarse otros.

    __________________________________________________

    function funcionQueManejaLosMensajes(evt) {

    var data = evt.data;

     // se maneja un mensaje del tipo set

    // data.name es el nombre de la variable
    // data.value es el valor de la variable

    if (data.type === «set») {

    // incluir código deseado

    }

     // se maneja un mensaje del tipo update
    else if (data.type === «update») {

    // incluir código deseado

    }

    }

    ___________________________________________________________________

    Comunicación de la página HTML madre con la escena de Descartes

    Para enviar información desde una pagina html, madre de una escena Descartes mediante iframe, a la escena de Descartes se utiliza la interfaz de comunicación window.postMessage de JavaScript, donde los mensajes son de la siguiente forma:

    referenciaAlIframe.contentWindow.postMessage({ type: «update» }, ‘*’);
    referenciaAlIframe.contentWindow.postMessage({ type: «set», name: varName, value: value }, ‘*’);

    donde varName es una cadena con el nombre de la variable que se le quiere pasar a Descartes y value es el valor de la variable.

    Nota: Como se ha indicado en los párrafos anteriores en DescartesJS, no hay un API como tal, porque la función funcionQueManejaLosMensajes debe ser implementada de acuerdo a las necesidades del programa. Tal vez, para enviar mensajes hacia Descartes sería conveniente tener un API, pero la forma de enviar los mensajes es tan simple que quizás no merezca la pena su elaboración. El sistema de comunicación es muy sencillo, el único inconveniente es la necesidad de saber el nombre de las variables que la pagina HTML espera recibir, así como el de las variables que usa internamente la escena de Descartes.
     
     

    Podemos ver un ejemplo a continuación:
    (Puede descargar  esta escena desde este enlace)
     

    El esquema lógico-funcional de la escena anterior es el siguiente:

    1. Para comunicar el html con la escena de Descartes que está embebida en un iframe de id «el_iframe»
    <iframe id=»el_iframe» src=»comunicacion_Descartes.html» width=640 height=480 frameborder=0 seamless scrolling=»no»></iframe>
    se cuenta en el body con un campo de texto de id «texto_a_enviar»
    <input id=»texto_a_enviar» type=»text» />
     
    y un botón de id «enviar»
    <input id=»enviar» type=»button» value=»enviar»> <br />
    y en head se cuenta con el siguiente código
    var contenido = document.getElementById(«texto_a_enviar»);
    var boton = document.getElementById(«enviar»);
    var iframe = document.getElementById(«el_iframe»);
    boton.addEventListener(«click», function(evt) {
    iframe.contentWindow.postMessage({ type: «set», name: «unaVariable», value: contenido.value }, ‘*’);
    iframe.contentWindow.postMessage({ type: «update» }, ‘*’);
    });
    donde se identifica el campo de texto, el botón y el iframe mediante sus id respectivos y se define un manejador de eventos ligado al botón ligado al evento «click», de manera que cuando el usuario hace click sobre el botón se envía un mensaje tipo set al iframe con el contenido del campo de texto y ligado a una variable que en la escena tendrá que tener el nombre «unaVariable» y un mensaje tipo update.
    En la escena ejemplo se cuenta con un gráfico tipo de texto en el que se observa la variable «unaVariable»
    <param name=»G_01″ value=»espacio=’E1′ tipo=’texto’ expresión='[20,20]’ texto='[unaVariable]’ fuente=’SansSerif,PLAIN,22′ fijo=’sí'»>
    que refleja el valor recibido.
    2. Para comunicar la escena con el html madre, en la primera se cuenta con un control tipo campo de texto de id «texto» que recogerá el valor a enviar
    <param name=»C_01″ value=»id=’texto’ tipo=’numérico’ interfaz=’campo de texto’ solo_texto=’sí’ espacio=’E1′ nombre=’texto’ valor=’&squot;un texto&squot;’ fijo=’sí’ visible=’sí'»>
    y otro tipo botón que al pulsarlo tiene una acción calcular en la que se asigna el valor de texto a una variable de id «variableEnviada» en el html madre  mediante la función parent.set(‘variableEnviada’,texto)
    <param name=»C_02″ value=»id=’enviar’ tipo=’numérico’ interfaz=’botón’ espacio=’E1′ nombre=’enviar texto’ fijo=’sí’ visible=’sí’ acción=’calcular’ parámetro=’parent.set(&squot;variableEnviada&squot;,texto)'»>
    Y en el html madre  se ha definido un manejador de eventos para el evento «message»
    window.addEventListener(«message», funcionQueManejaLosMensajes);
    function funcionQueManejaLosMensajes(evt) {
    var data = evt.data;
    // se maneja un mensaje del tipo set
    if (data.type === «set») {
    // data.name es el nombre de la variable
    // data.value es el valor de la variable
    document.getElementById(«textoRecibido»).textContent = data.value; // este es solo un ejemplo de lo que se     puede hacer con los mensajes
    }
    }
    En él se asigna al elemento html de id «textoRecibido» en valor enviado desde la escena
    El texto recibido desde la escena de Descartes es: <span id=»textoRecibido»></span>
     
     
    En el ejemplo siguiente se ha modificado el código para que la comunicación se produzca automáticamente cuando los campos de texto cambian, evitando tener que contar con botones de envío:
    (Puede descargar  esta escena desde este enlace)
    Lo que se ha rrealizado es cambiar el evento «click» por el evento «change» y asociar el manejador de eventos al campo de texto de id «texto_a_enviar»
    var contenido = document.getElementById(«texto_a_enviar»);
    var iframe = document.getElementById(«el_iframe»);
    contenido.addEventListener(«change«, function(evt) {
    iframe.contentWindow.postMessage({ type: «set», name: «unaVariable», value: contenido.value }, ‘*’);
    iframe.contentWindow.postMessage({ type: «update» }, ‘*’);
    });
     
  • Comunicación entre una escena y la página html que la contiene

    23 octubre, 2014 Autor/a: José R Galo Sánchez
    Sin comentarios todavía

    Una escena es un código embebido en una página html, la cual le sirve de contenedor, y que también aporta el intérprete con el que va a ejecutarse. A su vez una escena, mediante espacios HTMLIframe, puede embeber páginas html.

    escenas y páginas html

    escenas y páginas html

     

    Se cuenta por tanto con dos entornos o ambientes de ejecución: el entorno html y el entorno de la escena. El planteamiento que surge y que se plantea es la comunicación entre ambos ambientes, es decir, que determinados valores generados o modificados en el primero sean conocidos por el segundo y viceversa, de manera que uno u otro ambiente pueda modificarse como consecuencia de un cambio en el otro.

    En los siguientes artículos se hace una introducción a esta comunicación según el intérprete de Descartes utilizado.

    Comunicación escena-html usando DescartesJava

    Comunicación escena-html usando DescartesJS

     

     
  • Índice Documentación

    26 mayo, 2014 Autor/a: José R Galo Sánchez
    Sin comentarios todavía

    Inicio

    Inicio

    Descartes

    La Comunidad Descartes y su herramienta

    Introducción

    Conceptualización

    ¿Qué es Descartes?

    Intérpretes de Descartes

    Referencia y localización de los intérpretes

    Editores de configuración de Descartes

    Versiones

    Versiones de Descartes

    Versión 1 de Descartes

    Versión 2 de Descartes

    Versión 3 de Descartes

    Descartes Álgebra

    Versión 4 de Descartes

    Plug-in de Descartes

    Bloqueo de escenas en Java

    Versión 5 de Descartes

    Versión DescartesJS

    Otros tipos de escenas

    Discursos de Descartes o Arquímedes

    Ítems de Descartes 

    Ejemplos

    Edición

    Gestor de escenas

    Instalación del gestor de escenas (Java)

    ¿Cómo usar el gestor de escenas? (Java)

    Opción de menú «Archivo»

    Opción de menú «Opciones»

    Opción de menú «Servidores»

    Opción de menú «Ítems»

    Opción de menú «HTML»

    Opción de menú «Editar»

    Opción de menú «Insertar»

    Editor de escenas

    Editor de configuración de escenas en Java

    Editor de configuración de escenas de Descartes 2

    Editor de configuración de escenas de Descartes 5

     Editor de configuración de Discursos

    Editor de configuración de Ítems

    Editor básico de configuración, de líneas, (javascript)

    Cómo editar escenas con el editor básico de líneas (artículo incompleto)

    Editor de configuración de escenas en javascript (artículo incompleto)

    Código de una escena

    Código de una escena

    Sintaxis del código de una escena

    Acceso al código de una escena

    Manejo de escenas

    Copiar y pegar escenas en html

    Ejemplos con «docBase»

    Embeber en blog

    Embeber en Moodle

    Embeber en wikis

    Embeber como ventana emergente

    Embeber como iframe en entorno html

    Embeber como iframe en una escena o discurso

    Diseño web adaptable (responsive) en escenas

    Escenas adaptables

    Unidades didácticas adaptables

    Comunicación entre escenas y con el fichero html que las contiene

    Comunicación entre escenas en espacios HTMLIframe

    Comunicación entre una escena y el fichero html que la contiene

    Comunicación escena-html usando Descartes Java

    Comunicación escena-html usando Descartes JS

    Comunicación de una escena con el html embebido en un HTMLIframe

    Aplicaciones de la comunicación para vídeos interactivos

    Aplicación de la comunicación para integrar cálculo simbólico

    Comunicación de vectores entre escena y html

    Comunicación de matrices entre escena y html

    Paso de parámetros desde una escena Descartes a una web independiente

    Paneles

    Botones

    Botones

    Espacios

    Espacios

    Espacios R2 o bidimensionales

    Espacios R3 o tridimensionales

    Espacios sensibles a los movimientos del ratón

    Espacios AP

    Espacios HTMLIframe

    Audio y vídeo mediante espacios HTMLIframe

    Imágenes de fondo en espacios

    Controles

    Controles

    Controles numéricos

    Imágenes en controles numéricos tipo botón

    Controles gráficos

    Controles de texto

    Controles de Audio – Video

    Audios y vídeos interactivos con Descartes

    Definiciones

    Definiciones

    Variables

    Funciones

    Funciones matemáticas básicas

    Operadores

    Funciones para gestión de cadenas

    Funciones para la comunicación

    Palabras reservadas

    Vectores

    ficheros y vectores

    guardar vectores en ficheros

    Matriz

             ficheros y matrices

             guardar matrices en ficheros

    Programas

    Programa

    Algoritmos

    INICIO

    CALCULOS

    Evento

    Gráficos

    Gráficos

    Punto 2-D

    Segmento 2-D

    Polígono 2-D

    Relleno 2-D

    Arco 2-D

    Flecha 2-D

    Sucesión 2-D

    Ecuación 2-D

    Curva 2-D

    Texto 2-D

    Imágenes en Gráficos 2D 

    Gráficos 3D

    Gráficos 3D

    Punto 3D

    Segmento 3D

    Polígono 3D

    Curva 3D

    Triángulo 3D

    Cara 3D

    Polireg 3D

    Superficie 3D

    Texto 3D

    Otras figuras 3D

    Familias 3D

    Ejercicios con gráficos 3D – Relaciones espaciales

    Animaciones

    Animaciones

    Animaciones – Ejercicio

    Animaciones – La ilusión de Adelson

    Animaciones – Las ilusiones de Koffka y de Haze

    Audios y vídeos interactivos con Descartes

    Otros elementos auxiliares

    Colores

    Colores

    Textos

    Textos y Editor de textos y fórmulas

    Macros

    Macros

    Macros en el editor de configuración Java y en el intérprete Java (queda en el último párrafo enlazar ejemplos)

    Macros en el intérprete DescartesJS

    Relación de macros del sistema (redactar)

    Ficheros

    Ficheros

    Imágenes

    Imágenes de fondo en espacios

    Imágenes en controles numéricos tipo botón

    Imágenes en Gráficos 2D

    Ejemplos de aplicación y utilidades

    Lupa cartesiana (aplicación de espacios y escala en imágenes)

    Aplicación de algoritmos

    Ciclos o bucles anidados

    Recomendaciones, indicaciones y elementos prefabricados

    Audios y vídeos interactivos con Descartes

    Aplicaciones de la comunicación para vídeos interactivos

    Vídeos interactivos en Youtube

    Vídeo interactivo con preguntas de respuesta escrita

    Vídeo interactivo con selección de fragmentos de vídeo

    Vídeo interactivo con preguntas de selección múltiple

    Vídeo interactivo con enlace a otros vídeos

    Vídeo interactivo con enlace a otras escenas de Descartes

    Vídeo interactivo y escena interactiva simultánea

    Vídeos interactivos en local

    Vídeos interactivos con línea de tiempo

    Vídeos interactivos con línea de tiempo (v1)

    Curvas de Bezier en Geogebra y Descartes

    Vídeos interactivos con línea de tiempo (v2)

    Aplicaciones de la comunicación para integrar cálculo simbólico

    Integración de construcciones de Geogebra con Descartes

    Comunicación Descartes-Google Maps

    Libros interactivos con Descartes embebido en «Mouleskine notebook»

    Créditos

    Créditos

Categorías

Etiquetas

adaptable algoritmo algoritmos Animaciones animación arco blog colores Comunicación configuración controles curva definiciones diseño web adaptable ecuación editor evento flecha función GeoGebra Gestalt gestor de escenas gráficos Gráficos 3D guía de uso Haze ilusiones imagen instalación Java Koffka matriz Moodle polígono programa punto Relleno responsive responsivo segmento sucesión texto variables vector vídeos interactivos

Entradas recientes

  • Libros interactivos con Descartes embebido en «Moleskine notebook»
  • Comunicación con JavaScript desde una escena Descartes a la API de una plataforma educativa vía paquete Scorm
  • Comunicación Descartes-Google Maps
  • Paso de parámetros desde una escena Descartes a una web independiente
  • Lupa cartesiana

Comentarios recientes

  • Anónimo en Construcciones GeoGebra con Descartes: Ángulos en una circunferencia, vídeo interactivo
  • Anónimo en Macros en el intérprete DescartesJS
  • Anónimo en Interactive video – Euler’s line
  • Anónimo en Interactive video – Euler’s line
  • Anónimo en Operadores

Utilidades

  • Acceder
  • Feed de entradas
  • Feed de comentarios
  • WordPress.org
Documentación DescartesJS posee una licencia CC by-nc-nd si no se indica lo contrarioTheme zAlive by zenoven.
  • Inicio
  • Descartes
  • Edición
  • Paneles
  • Auxiliares
  • Créditos
× Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Aceptar