智能交互技术的研究内容(基于VRML与Java交互的研究)
通过这些类,Java程序可以访问VRML场景,接收和发送事件,从页面获取VRML对图像,实现对对VRML场景的完全控制。通过脚本节点,vrml和Java之间的交互是通过使用VRML的附加包来实现的。SAI专注于虚拟场景的内部处理,在浏览器中访问对场景的节点;EAI主要用于提供与外部环境通信的能力,并从VRML浏览器外部获取场景节点和事件结构。
2基于网络脚本的交互虽然SAI和EAI都可以增强VRML的交互功能,但它们都有:的致命缺陷。他们要求JDK的版本必须低于1.4。随着Java功能的逐步增强,其JDK版本也在逐步升级,JDK1.6已经发布,JDK1.7测试版已经出现,并将很快正式发布。在某些应用程序中,可能需要Java的新功能,这需要更高版本的JDK的支持。如果采用SAI或EAI,VRML和Java就不能正常交互。为了解决这个问题,我们提出了一个基于web脚本交互的方案。
2.1基于网页脚本交互的基本思想,在客户端执行网页脚本语言,可以增强网页的动态交互,可以方便地与VRML场景交互和与Java程序相互调用。在基于网络脚本的交互机制中,VRML和Java Applet并不直接通信,而是使用用JavaScript语言编写的脚本作为桥梁。也就是说,当VRML需要调用Java程序来执行一个任务时,首先在同一个网页中调用JS函数,然后在这个网页中调用Java Applet程序来执行特定的函数;在Java Applet区域修改参数后,首先调用同一个网页中的JS函数,然后JS函数更新场景中对象的属性值,从而达到VRML和Java交互的目的。基于网络脚本的交互式如图如图3所示。2.2基于web脚本交互的主要步骤和关键代码结合2.1中web脚本交互的基本思想,本方案的主要步骤和关键代码如下。1)分析功能模块和调用关系,设计Java Applet用户界面,设计各种功能函数(包括网页脚本函数和Java Applet成员函数)。2)在VRML场景文件中添加触发器和脚本节点,定义要用DEF访问的节点的名称,并添加路由。从脚本节点调用网页脚本函数到事件处理函数的代码是: browser . load URL(' JavaScript 3360 fun('参数');',' ');其中浏览器是浏览器对实例,加载URL是浏览器接口函数,而fun是脚本函数名。3)根据(1)中的分析,Java Applet子类被定义并编译成目标文件。类成员函数调用网页脚本函数的代码是:JSObject。getwindow(此)。eval ('JavaScript 3360Fun('参数'));这里需要引入类JSObject,即语句导入Netscape。JavaScript。jsobject添加在类文件的开头;当添加小程序到网页的源文件时,添加“MAYSCRIPT”,并根据需要添加几个参数。4)将虚拟现实场景文件、Java小程序和网页脚本功能添加到网页源文件中。添加虚拟现实场景文件
“myScene.wrl”是一个VRML场景文件,id=‘Scene’是必需的,它是网页中场景的唯一标识符,将在网页脚本中引用。添加网页脚本功能主要涉及:a。在调用Java Applet时,函数调用的一般形式是: document . my AppLet . fun(…);其中,文档是当前文档的对图像,myApplet是当前页面中Java applet的对图像,fun是Java applet对图像的成员函数,可以根据需要添加参数。要访问虚拟现实场景节点,必须创建一个引擎对图像:我的场景引擎=场景。引擎指向虚拟现实场景(由标识定义的场景标识为中的“场景”);然后,您可以在引擎对图像的帮助下访问场景节点。参考VRML场景节点的一般形式是:毫秒引擎节点(“节点名”)。字段(“字段名称”),其中nodename是在(2)中定义的节点名称,fieldName是节点的域名。引用在脚本函数中可以看作一个变量,取其值相当于获取虚拟现实场景的节点域值,赋值相当于更新虚拟现实场景。2.3基于web脚本的交互应注意的问题。基于网页脚本的交互方案中需要注意的主要问题是:VRML场景文件、Java小程序和网页脚本功能应该放在同一个网页中。2)访问虚拟现实场景节点中的节点名称必须是直接在虚拟现实场景文件中定义的节点,通过内联导入的文件中定义的节点无效。3)当网页脚本函数访问Java Applet成员函数时,需要对Java Applet子类进行安全签证。关于签证相关问题,请
下一篇:(加德满都喧嚣中的净土)