You are on page 1of 15

1

VRML 2.0 con Java CAPÍTULO 4

APIs Y Estándares
Adicionales
2

VRML 2.0 con Java CAPÍTULO 4

Contenido CAPÍTULO 4

“El Nodo de secuencias de comandos y Secuencias de comandos de la


API “

• El VRML Script de Nodo


• hablando del navegador
• Secuencias de comandos de JavaScript
• Secuencias de comandos de Java
• Escribir un Java Script
• ¿Qué idioma debo usar?

El VRML Script de Nodo


3

VRML 2.0 con Java CAPÍTULO 4

Por cada idioma inventado siempre debe haber un patito feo. En este caso, los
comandos de nodo es el candidato. Es muy diferente en función de
comparación con los otros nodos de VRML. Hay sólo tres campos básicos de
usar y usted puede especificar sus propios campos.

Diseño de un script toma un poco de pensamiento, porque lo que necesita


saber no sólo lo que quieres hacer en el guión, sino también cómo llegar a ella
el resto de tu escena.

Cuando se desea crear su propio comportamiento, primero debe definir los


campos que usted necesita para acceder a la secuencia de comandos de
código (de hecho en el archivo VRML), entonces usted necesita para crear el
guión propio código. Esto se puede hacer en cualquier lenguaje de scripting,
pero en el momento de escribir sólo hay lengua oficial bindings para Java,
JavaScript, y un subconjunto de JavaScript conocido como VRMLScript.

Basic Script Nodo Campos

Cada nodo de secuencias de comandos que cree tiene tres campos que están
siempre presentes. Dos de ellos no se fijan, porque los valores
predeterminados son adecuados, pero voy a hacer frente a estos primeros.

El primer campo que vemos es mustEvaluate. Este campo booleano controla la


cantidad de optimización puede realizar el navegador. Si se establece en TRUE,
el navegador se ve obligada a enviar los sucesos a la secuencia de comandos
en el momento en que ocurren. Cuando el valor predeterminado es FALSE, el
navegador se permite retrasar el envío de insumos para el guión hasta la
producción de la secuencia de comandos que se necesita por el navegador.
Normalmente sólo se configura en TRUE si usted sabe que habrá algunos
efectos, como enviar / leer el tráfico de la red, que el navegador no es
consciente de.

El segundo campo es directOutput. Cuando está establecido en TRUE, un script


puede enviar eventos directamente a otros nodos de la escena. La única
manera de que un script puede enviar eventos directamente a otro nodo es si
uno de los ámbitos ya la secuencia de comandos es un SFNode o MFNode pasó
a él (ya sea un eventIn o como un campo con una asignación con el uso).
Asimismo, este te permite hacer otras cosas como hacer dinámica y romper las
rutas a otros nodos. Por otra parte, en caso de salida directa se establece en
FALSE (el valor por defecto), la única manera de que la secuencia de comandos
puede afectar a otros nodos de la escena es a través de la eventOuts y rutas
que se han creado en el archivo VRML.
4

VRML 2.0 con Java CAPÍTULO 4

Aparte de estos dos campos, hay un campo que se requiere en cada nodo de
secuencia de comandos que cree: la URL del código. El campo url puntos en el
archivo o contiene el código "inline" para el uso de esa secuencia de
comandos. Por ejemplo, se podría apuntar a un archivo de clases de Java o
"inline" para el código JavaScript. El particular formato de URL para cada
idioma se trata en cada una de las secciones específicas del idioma más tarde.

Nota: Si desea crear dinámicamente y romper rutas en la escena, debe tener el campo
directOutputs asignado a true.

VRML no cuenta en la actualidad el mandato que utilice un determinado


lenguaje para la creación de guiones. Para solucionar este problema, el campo
de URL es un MFString, por lo que puede ofrecer múltiples opciones para las
secuencias de comandos. Esto significa no sólo puede proporcionar un número
de sitios diferentes para la una sola pieza de código, sino también una serie de
alternativas escritas en diferentes idiomas. Simplemente enumerarlos en orden
descendente de preferencia.

Añadir Tus Campos


Una secuencia de comandos sin ninguna entrada y / o de salida es de poco valor a su
mundo. Para proporcionar esta funcionalidad, tiene que declarar su propio conjunto de
campos evento. Estos se declaran de la misma manera que las declaraciones utilizadas
en el pliego de condiciones y la PROTO nodos-es decir, usted debe declarar el tipo de
acceso, tipo de campo, nombre de campo, y el valor cuando sea necesario.

Una declaración típica de secuencias de comandos se vería como la siguiente forma


general:

DEF my_script Script {


url "java_class_dir/my_script.class"
directOutput TRUE
field SFNode other USE my_other_node
eventIn SFVec3f set_position
eventOut MFFloat output_changed
}

Note cómo la url directOutput y los campos son la forma normal de un nodo de
VRML, pero el resto de los campos tienen el largo definición. Campos y
exposedFields tendrá que tener su valor fijado en la misma forma que lo haría
prototipo nodos.
5

VRML 2.0 con Java CAPÍTULO 4

Ejecución de secuencias de comandos

Scripts de adherirse a la ejecución como el modelo descrito en el capítulo 2.


Básicamente se le garantiza a los acontecimientos en orden de tiempo, y no
tiene "tiempo" para recibir y procesar eventos en la secuencia de comandos.

Posiblemente la mayoría de lengua encuademaciones proporcionará las


funciones de inicialización y cierre también. Iniciar después de todo se llama la
parte superior de nivel mundial (en relación con el mundo que está en script)
ha cargado, pero antes de los sucesos se han generado en el mundo. Usted
puede usar esto para crear la primera salida de un nodo que genera un toro
objeto, por ejemplo.

Obras de cierre en el otro extremo de la secuencia de comandos de la vida. Se


llama después de todos los eventos de secuencia de comandos que se han
tramitado y justo antes de la secuencia de comandos se elimina de la escena.
En esta función que se espera para limpiar los archivos temporales, conexiones
de red, etc

Hablar del navegador

A menudo una persona utiliza el navegador para comprobar la información de


la escena o para introducir nueva información en él. Para facilitar esta tarea,
una interfaz de navegador de genéricos se define, que todos los idiomas son
necesarios para aplicar, si así lo desean disponer de una interfaz compatible
con VRML. En el próximo capítulo, donde cubren la interfaz externa, de la
misma interfaz se ejecuta también.

La mayoría de la interfaz es sencillo y se puede leer sobre él en el VRML


especificaciones Conceptos-en virtud de la sección Automatización. Voy a
explicar sólo algunas de las cosas más difíciles en las próximas secciones.
Creación dinámica de VRML

Uno de los usos más comunes de la interfaz del navegador es crear nuevas
piezas de la escena VRML. Hay dos maneras de hacerlo: Puede cargar en un
archivo externo o crear nuevos objetos completamente dentro de la secuencia
de comandos.
6

VRML 2.0 con Java CAPÍTULO 4

VRML para crear objetos desde un archivo externo, debe utilizar el


createVrmlFromURL llamada. Además de tomar una URL como argumento, esta
función también tiene que contener los parámetros de un nodo y un nombre de
campo (como una cadena) que debe ser llamada cuando la carga está
terminada-una especie de función de llamada. Como usted sabe, no descargar
archivos de forma instantánea a través de Internet, de modo que en lugar de
bloqueo hasta que el archivo se descarga, el navegador de VRML utiliza el
sistema de notificación de devolución de llamada para decirle que cuando se
termine con la descarga y la preparación del expediente.

El nodo que se pasa como argumento no tiene por qué ser el mismo guión,
como la llamada en createVrmlFromURL, pero la mayoría de las veces es.

La cadena argumento es el nombre del campo de una MFNode eventIn. Una


vez que el VRML ha sido generada, MFNode un caso se genera y se transmite a
los designados eventIn. Un truco interesante es que este eventIn no necesita ni
siquiera ser otro guión. Se puede pasar directamente a la AddChildren eventIn
de un nodo de agrupación.

El otro, el método más dinámico de la creación de objetos VRML,


manteniéndose en el script de este momento, es generar una cadena y luego
pedir el navegador para convertir esa cadena en un objeto que se verá en la
escena con el createVrmlFromString llamada. Aunque la presente convocatoria
funciona sobre la escena actual, el alcance de los nodos declarados en la
cadena se limita a ser el mismo como si se tratase de un archivo "inline". Por
ejemplo, usted no puede usar un nodo que ha sido declarado con DEF en el
escenario principal. Del mismo modo, si usted desea utilizar un prototipo,
entonces usted debe utilizar un completo EXTERNPROTO declaración en la
cadena que se pasa a la llamada.

Nota: La especificación deja la definición de un archivo cargado incompleta. Un archivo


cargado sólo podrá ser de nivel superior archivo en la URL, que no incluyen los archivos de
"inline", texturas, sonidos, u otros archivos de "inline".

Para crear un nuevo nodo de una cadena, sólo tiene que construir una cadena
que contiene la misma sintaxis que usted deberá escribir en el fichero fuente
VRML (menos la cabecera # VRML ...). Puede crear un nuevo cubo con la
siguiente línea de código (en el código Java):

Nodo = nodo browser.createVrmlFromString ( "Caja {}")[ 0];

La razón para el índice al final de la llamada de método es que crea-


VrmlFromString devuelve un array de nodos creados. Dado que sólo hemos
creado un cuadro de-la-sabemos que el primer elemento contendrá el nodo
7

VRML 2.0 con Java CAPÍTULO 4

que representa la reciente creación del cubo.

Sustitución y añadiendo a la escena actual

Una vez que haya creado unos nodos utilizando cualquiera de las llamadas,
entonces es necesario agregar a la escena. Si usted tiene un eventOut que
está conectada a un nodo de agrupación, entonces usted puede añadir estos
nuevos nodos a la escena. Sin embargo, usted puede no querer hacerlo.

Por ejemplo, es posible que desee crear una puerta a otro mundo. Al acercarse
a la puerta, se activa la secuencia de comandos para iniciar la carga del nuevo
mundo. Sin embargo, usted no quiere cargar en el nuevo mundo hasta después
de que el usuario ha intensificado a través de la puerta, así que tendrá que
sentarse en estos nuevos nodos hasta la hora correcta para cargar.
Sustitución del actual mundo con más de VRML

Otra opción es sustituir totalmente la escena. ReplaceWorld tiene un MFNode y


lo utiliza para reemplazar a todo el mundo con estos nuevos contenidos,
incluyendo el script que lo llama. Este es útil para nada? Por supuesto. Usando
una combinación de sensores y la secuencia de comandos, con esta
convocatoria se puede precargar un mundo y, a continuación, en sustitución de
la demanda. Por ejemplo, usted puede hacer su propio nodo de anclaje con un
TouchSensor y el guión. El sensor de contacto envía un evento a la secuencia
de comandos, que exige uno de los métodos createVrmlFromX y luego un
replaceWorld con los resultados de la creación de la palabra.

Cargando Cualquier URL

Tal vez desee utilizar el mundo como uno de VRML catálogo en línea, de
manera que al hacer clic sobre un objeto se mostrará alguna información en
otro marco, o incluso acceder a un modelo más detallado de VRML. LoadURL es
8

VRML 2.0 con Java CAPÍTULO 4

muy útil para esto. A diferencia de los otros y crear o sustituir las llamadas de
VRML nodos, éste se hará cargo de cualquier tipo de archivo en la URL. Usted
podría utilizar para cargar una página HTML, PDF, o cualquier otra cosa que
usted puede transportar más de la petición HTTP normal. El primer argumento
es la URL (s) y la segunda es de los parámetros. Lo que puede poner en una
lista de parámetros de anclaje, debe ser capaz de poner en esta función de
parámetros, tales como un marco como el objetivo.
Manejo genérico eventIn

Manejar eventIns diferente según el idioma que esté utilizando. Sin embargo,
todos los eventIns compartir rasgos comunes. Cada evento tiene una fecha
asociada con él. Cada vez que un caso llegue a su script obtendrá dos piezas
de información: el valor de este caso y el momento en que se haya producido.
Como se verá en la sección de Java, usted no debe esperar el diseño de su
código a los eventos que llegan a un cierto orden. Naturalmente, los
acontecimientos se llega en la fecha y hora para corregir, pero nada está
garantizado con los pedidos de los acontecimientos dentro de un timestamp.

Post-procesamiento de la información

Si el código no se basan en tener toda la información a su disposición antes de


cualquier tratamiento puede ocurrir, entonces puede utilizar la función
eventsProcessed. Esta función está disponible en todos los idiomas y se llama
después de todos los eventos han sido procesados para que timestamp. Se
llama a lo sumo una vez por hora.

Usted puede utilizar la función eventsProcessed (definidos en la clase de


secuencias de comandos) para procesar una serie de diferentes insumos y
generar una sola salida. Quería decir que para calcular un promedio ponderado
de una serie de valores. En el capítulo 2, me explicó que no había manera de
obtener información sobre el remitente original del evento a un nodo,
especialmente con ventilador en. Una manera de evitar este problema es
utilizar eventIns separado y luego procesar la información al final utilizando la
función eventsProcessed. Esto significa que sólo tienen un cálculo a la derecha
al final de una hora en vez de muchas en respuesta a cada evento próximos
pulg El valor resultante se puede transmitir a otros nodos a través de un
eventOut.

Secuencias de comandos de JavaScript


El primero de los lenguajes de scripting que veremos es JavaScript. Si ya ha aprendido
de JavaScript para la página Web funciona, entonces hay muy poco más que usted
necesita aprender para VRML scripting.
9

VRML 2.0 con Java CAPÍTULO 4

Puede escribir JavaScript comportamientos, ya sea como línea de código en la URL o


como un archivo separado. Línea de código comienza con la URL:

javascript:

mientras que normalmente los archivos separados con el fin. JS extensión y se basan
en el servidor web para devolver el tipo de MIME.

application / x-javascript

Escritura de comportamientos JavaScript es muy sencillo. Para cada eventIn, se crea


una función con el mismo nombre. La función puede tomar hasta dos argumentos: en
primer lugar, los datos que se aprobó en el evento y la segunda es la hora para los
datos cuando se aprobó. Usted no está obligado a poner en cualquiera de los
argumentos. Si usted las usa, sin embargo, que siguen el orden antes mencionado. Por
lo tanto, si sólo quería que la fecha y hora para que cuando se produjo el hecho,
todavía deberá declarar ambos argumentos.

Considere la posibilidad de un conmutador que tiene la entrada de un TouchSensor y


cambia el estado de salida cada vez que el sensor está tocado. Nos gustaría escribir el
guión de la siguiente manera, como "inline" código:

DEF myScript Script {


eventIn SFBool isClicked
eventOut SFBool output
url "javascript:
isClicked(val) {
if(!isClicked)
output = !output;
}
"
}

Lectura de los campos es tan sencillo como usando una variable del mismo
nombre (que es sensible a mayúsculas y minúsculas). Escrito a eventOuts es
tan fácil simplemente escribir en una variable que es el mismo nombre que el
VRML declaración (de nuevo, mayúsculas y minúsculas). En el ejemplo anterior
se puede ver lo fácil que es pasar los datos a la salida-eventOut llamado
simplemente asignando un valor a la misma.

La interfaz del navegador, que se describen en las secciones anteriores, es a


través del navegador de objetos. Al igual que el estándar de clase de ventana
que permite acceder a la página HTML, el navegador es una clase. Por ejemplo,
para crear un cubo para añadir el paisaje, que declaramos lo siguiente
fragmento de código:

Nota: Vea la diferencia entre esta convocatoria y la anterior versión de Java. Aquí, el navegador
de objetos que ya existe, pero para Java es necesario crear una instancia en primer lugar.
Consulte la siguiente sección de Java para una mejor explicación
10

VRML 2.0 con Java CAPÍTULO 4

myCube = Browser.createVrmlFromString ( "caja de tamaño 1 1 (1)");

La especificación permite utilizar toda la funcionalidad normal de JavaScript,


por ejemplo, la apertura y cierre de ventanas nuevas.

Nota: Hay un subconjunto de JavaScript que se conoce como VRMLScript, que sólo utiliza el
navegador de base y de la matemáticas de objetos. Algunos navegadores pueden apoyar esta
sólo. Si un navegador compatible con JavaScript entonces también manejar VRMLScript.

Secuencias de comandos de Java

No debe confundirse con secuencias de comandos de JavaScript, Java scripts es


la otra opción para los lenguajes de scripting para su uso con VMRL (en el
momento de escribir). Como usted sabe, Java es adecuada para muchas más
tareas que JavaScript está. Mediante el uso de Java en lugar de JavaScript, no
sólo su comportamiento puede ejecutar con mayor rapidez, pero también tiene
la funcionalidad completa de Java, la creación de redes, multiproceso, y la
interfaz de usuario de paquetes de herramientas a disposición de you.The
mayor diferencia entre escribir comportamientos en Java y JavaScript se
eventIn manipulación. El modelo de Java debe ser muy familiar para usted, es
casi una copia exacta de la AWT evento. En VRML, hay dos métodos que puede
utilizar para eventIns: processEvent y processEvents. La diferencia es que los
primeros procesos de un solo evento a la vez, mientras que el segundo se
ocupa de múltiples acontecimientos.

Escoger el eventIn Manipulador

¿Por qué necesitamos dos eventos de funciones? Tiene que ver con el modelo
de ejecución de VRML que fue cubierto en el Capítulo 2. La razón básica es
para que pueda elegir los medios más eficaces para ese mundo.

En un mundo muy simple usted puede ser que sólo tienen uno o dos eventIns
en sus escrituras. En este caso, tener un sistema para manejar múltiples
eventos simultáneos es un despilfarro. Si tiene un gran y complejo sistema de
escritura, entonces lo contrario será el caso.
11

VRML 2.0 con Java CAPÍTULO 4

¿Bajo qué circunstancias se obtiene múltiples eventos simultáneos? Este es


otro ámbito que la especificación de los escritores han dejado hasta el
navegador escritores para decidir. Normalmente, sería de esperar que si hay
una colección de eventos de espera para un nodo, el nodo se pasa a todos en
un éxito. Hay suficiente en el pliego de clemencia para poner fin a esta
suposición. Sólo hay un caso en el que se le garantiza a múltiples
acontecimientos a la vez: Cuando haya múltiples rutas entre un par de nodos.

Modelo de Análisis de caso

Desde la última liberación de la especificación de VRML 2.0, he ayudado a


muchas personas a entender cómo funciona el sistema de eventos. Casi
siempre, la confusión se debe a la comprensión de la forma en que, a pesar de
todos los acontecimientos pueden ocurrir en una hora, la secuencia de
comandos del eventIn métodos pueden ser más de una vez para que
timestamp.

Para ilustrar mi punto, considere el ejemplo siguiente: un PositionInterpolator


impulsado por un TimeSensor y la conducción de una traducción en uno de
transformación. También hay algunos fan-out en el interpolador porque
tenemos un guión también de los acontecimientos también. El TimeSensor
también envía cycleTime su caso directamente al script. Figura 4.1 muestra
gráficamente esta situación.

Figura 4.1 Diferentes caminos para los eventos de un nodo a otro

El TimeSensor incendios fraction_changed un caso en el momento 3, que


también pasa a corresponder a la cycleInterval-, por lo tanto, un caso es
también cycleTime generado. El script recibe el evento cycleTime durante esta
ronda de la ejecución y los procesos de la misma. El interpolador obras el valor
de clave que se envíen y se envía el caso value_changed. Esto tiene la misma
hora que el eventIn: 3, el mismo tiempo que el original evento se generó.
Ahora usted puede ver que el guión ha recibido otro eventIn con el mismo sello
de tiempo. Dependiendo de la forma en que el navegador interno ha llevado a
12

VRML 2.0 con Java CAPÍTULO 4

cabo su evento de colas, el script podría terminar con dos eventos en uno o
dos eventos generados en diferentes etapas de la ejecución.

Ahora si se quita el interpolador de dicho sistema que siempre recibirá los dos
eventos al mismo tiempo. La especificación fuerzas escritores del navegador
para asegurarse de que tanto los acontecimientos llegar a la escritura, al
mismo tiempo, porque esto podría tener algunas repercusiones en la manera
en que se ejecutan. (No sé por qué a usted le gusta escribir código, pero que es
posible.) Sin embargo, no es posible garantizar múltiples eventos que se
recojan junto a la transformación, cuando usted tiene múltiples nodos enviando
eventos, como ilustra el ejemplo anterior.

Como un ejemplo más, sustituir el interpolador con un script. La salida del


guión se basa en una sentencia condicional dentro. Algunas veces se genera la
producción, y otras veces no. Como resultado, el guión original ahora es dos
veces los acontecimientos y otras veces sólo es una. No hay ninguna manera
de un navegador para poder predecir esto, y por lo tanto usted debe hacer las
evaluaciones múltiples de la una hora.

VRML diseño de paquetes de Java

Ahora que usted entiende los fundamentos, es hora de describir cómo la


creación de su guión. Para empezar, tiene que utilizar el derecho de los
paquetes.

Hay tres paquetes básicos de secuencias de comandos: vrml, vrml.node, y


vrml.field. Como el nombre sugiere, estas clases contienen la base, nodo de las
definiciones y definiciones de campo, respectivamente.

Scripts tienen dos categorías generales de los campos a su disposición. Usted


uso constante, los campos de sólo lectura para transmitir información a la
secuencia de comandos en forma de un evento. En el script, y también para
eventOuts, puede utilizar las versiones más generales, que le permiten hacer lo
que desee.
Escribir un Java Script

Hay una serie de pasos que tendrá que hacer para producir una secuencia de
comandos en Java VRML:
13

VRML 2.0 con Java CAPÍTULO 4

En primer lugar, es necesario configurar todas las cosas normales de


administración, como CLASSPATHs. Usted es más probable para encontrar el
VRML paquetes en C: \ java \ classes \ vrml.

A continuación, necesita importar los paquetes apropiados. Los tres paquetes


de VRML se necesitarán para casi todos los script. También los otros paquetes
(como el establecimiento de redes) que usted necesita.

Después de crear su script clase. El nombre de la clase no tiene por qué ser el
mismo que el nombre de la DEF VRML Guión nodo. Lo que usted necesita hacer
es la subclase de Java Script nodo (todos estos son diferentes guiones que aún
confuso?!) Para producir su script personalizado.

Llene todo lo que tiene que ir en el método de inicialización. Este suele ser un
buen lugar para poner en la inicialización de los distintos campos y eventOuts.

Decidir sobre la escritura y el manejo eventIn método.

Finalizar fuera llenando cualquier otro método o clases que necesita.

Por supuesto, después de esto tienes que ir por los conductos habituales de
compilar y ciclo de prueba. El Java. Archivo de clase puede quedar en el mismo
directorio que el código de VRML. A diferencia de la etiqueta en HTML
<applet>, no hay código de definir. Su archivo de clase puede estar en
cualquier otro directorio siempre y cuando la URL es un familiar de referencia o
ruta completa.

Escribir un controlador de eventos


Si ha escrito ningún código Java AWT antes, usted no debería tener problemas
para comprender el sistema de manejo de caso de VRML. La misma aún se
aplican técnicas básicas: Usted tiene un objeto de evento que usted compara
con el conocido caso de las denominaciones y, a continuación, o bien escribir el
código en línea o como un método.

Sólo hay un pequeño problema que hay que saber evitar. El VRML evento de
clase y la clase de evento AWT son diferentes, por lo que no se pueden tener
los dos juntos en un archivo de clase a menos que calificar totalmente uno de
ellos cada vez que lo usa (por ejemplo, java.awt.Event).

Para demostrar cómo crear un evento, vamos a escribir un manejador de la


processEvent método. Tendremos dos eventIns de esta secuencia de
comandos: un SFBool llamado set_active y SFVec3f un llamado set_position. El
objeto del evento que se pasa al método processEvent contiene tres piezas de
información: el valor, la fecha y hora, y una cadena que es el nombre, en el
14

VRML 2.0 con Java CAPÍTULO 4

VRML de comandos de definición, de la que este evento eventIn objeto


pertenece. Puede utilizar esta cadena como el punto de comparación para el
evento para determinar qué medidas tomar.

public void processEvent(Event e) {


if(e.getName().equals("set_active")) {
ConstSFBool val = (ConstSFBool)e.getValue();
if(val.getValue == true )
// do something
}
else if(e.getName().equals("set_position")) {
ConstSFVec3f pos = (ConstSFVec3f)e.getValue();
// go do something with it
}
}

El getName () el método de caso devuelve una cadena que se corresponde con


el nombre en el archivo VRML fuente que recibió el evento. Para decidir las
medidas a tomar que acabo de hacer una comparación con una cadena que
representa el nombre. Si éstos se ajustan a continuación, sabemos que fue
generado y puede tomar la acción apropiada.

Vamos a revisar rápidamente el conmutador de la sección de JavaScript. El


conmutador se escribe así:

class ToggleSwitch extends Script {


private SFBool output;

public void initialize() {


output = (SFBool)getEventOut("output")
}

public void processEvent(Event e) {


if(e.getValue() == true)
output.setValue(true);
}
}

Como puede ver, este es muy diferente de la forma de vida de JavaScript. En


primer lugar, eventOuts en la secuencia de comandos puede tener no sólo los
valores que se les asignen; SetValue un método debe ser llamado. A
continuación, tenemos que recuperar un eventOut realidad antes de que
podamos utilizarla. Por último, porque tengo sólo un eventIn, puedo asumir las
15

VRML 2.0 con Java CAPÍTULO 4

cosas y de acceso directo de cualquier evento próximo en el debe de la


isClicked terreno, por lo que no tiene que preocuparse de hacer todos los
controles.

¿Qué idioma debo usar?

Realmente depende de lo que hay que alcanzar. En JavaScript, interpretado por


su naturaleza, es muy rápido y sencillo para crear un comportamiento. Por otro
lado, si usted necesita hablar a través de una red y, a continuación, Java es la
única opción.

Hasta hace poco tiempo que estuvo vinculada a cualquier navegador que se va
a utilizar, ya que cada navegador sólo aplicado uno u otro. Ahora que una serie
de navegadores apoyará ambos idiomas, que son libres de elegir.
Personalmente, uso de JavaScript para la rápida y sucia soluciones a problemas
sencillos, como la creación de veces en TimeSensors, Java y dejar de hacer la
cosas no son tan fáciles. Pero usted está por su cuenta. Elija lo que usted
necesita para realizar el trabajo de la mejor manera.

Resumen
De este capítulo, usted debe tener un entendimiento básico de cómo funciona
de secuencias de comandos en el entorno de VRML. He mirado tanto en Java y
Java-Script y cómo funcionan en una base de moda. He sido un poco de luz
sobre los detalles en esta fase, pero no se preocupe. Vamos a estar usando un
montón de scripts de Java basada en el resto de este libro, así que tendrá
muchas oportunidades para aprender con más profundidad.

Sólo hay un tema más que lo que necesita saber antes de que podamos iniciar
en la diversión en las cosas. Este último tema está en la aplicación externa de
interfaz (o EAI). Este API permite escribir código Java que se encuentra en un
applet y le permite hablar directamente con el navegador de VRML. Esto forma
la base de una serie de proyectos que nos fijamos en el curso de este libro y es
una parte muy importante de todo el sistema de VRML cuando se trata de
moderadamente complejos mundos.

You might also like