第12章VRML(虚拟现实建模语音)脚本节点.pptVIP

第12章VRML(虚拟现实建模语音)脚本节点.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章VRML(虚拟现实建模语音)脚本节点

常州市土地利用总体规划(2006-2020年)大纲 第12章 脚本节点   前面介绍了如何使用插补器在VRML场景中实现动画效果,但这些只能实现很简单的动画效果,是一种预定义的效果,远远不能满足设计需求,这时就需要使用到脚本。可通过VRML提供的Script节点来加入脚本程序语言,如Java(外部创作接口EAI是一套针对VRML浏览器的Java类),JavaScript。本章将简单介绍Script节点的功能和在VRML中如何使用Script节点来创建事件和控制动画。 12.1 Script节点 Script节点可以描述一个由用户自定义制作的检测器和插补器,这些检测器和插补器需要一些有关域、事件出口和事件入口的列表以及处理这些操作时所需作的事情。所以该节点又定义了一个包含程序脚本节点的域(注意不能定义exposedField)、事件出口和事件入口及描述了用户自定义制作的检测器和插补器所作的事情。Script节点可以出现在文件的顶层,或者作为成组节点的子节点。 其节点语法结构如下: 12.1 Script节点 Script{ ExposedField MFString url [] Field SFBool directOutput FALSE Field SFBool mustEvaluate FALSE Any number of EventIn eventTypeName eventName Field fieldTypeName fieldName initialValue EventOut eventTypeName eventName } 12.1 Script节点 url域的值指定了一个URL列表,该列表中的URL值所指定的程序脚本可以是由任何VRML浏览器支持的语言写成。通常情况下,VRML浏览器支持的语言有Java语言和JavaScript语言。而且JavaScript的函数和指令可以直接包含在url域中。 DirectOutput域的值用来说明程序脚本的输出是否受到限制。当该域值为TRUE时,程序脚本可以直接对它能访问的任何节点的可见域进行些操作或对任何节点的eventIn事件发送,另外还可以在VRML场景中增加或删除一条通路。当该域值为FALSE时,程序脚本不能直接发送事件,不过可以访问。通常情况下,将directOutput域值设为FALSE。该域值的缺省值为FALSE。 12.1 Script节点 MustEvaluate域的值指定了程序脚本是如何进行求值。当该域值为TRUE时,每当由节点的eventIn事件接收到一个新值时,浏览器就立即对该程序脚本进行计算。当该域值为FALSE时,则浏览器在此脚本不影响环境中任何可视部分的情况下,推迟对脚本的计算,直到合适的时间到来。这样就会出现事件到节点的传送和计算节点处理该事件动作的延迟。此时如果多个事件被传送,待处理的事件列表就会变长。为了尽量使其性能达到最优,mustEvaluate域值应设定为FALSE,因为浏览器的性能取决于一个事件被发出后必须进行计算的程序脚本数目,如果将其域值设为TRUE,就会增加浏览器的工作量,从而降低画面的刷新速度和交互性。该域值的缺省值为FALSE。 12.1 Script节点 Script节点可以定义多个事件入口,多个事件出口,多个事件。接口域、接口eventIn和接口eventOut都可以任意取名字,但必须遵循DEF的命名约定。按照VRML的约定,名字必须以小写字母开头,而在名字内的每个子序列单词都必须大写,允许在名字中使用下划线和阿拉伯数字。EventIn事件通常以“set_”开始,除非它们具有对组内进行添加或删除子元素的操作权限。EventOut事件通常以“_changed”结尾,除非它们是一个布尔值或时间值,布尔类型的eventOut事件名以“is”开头,时间类型的eventOut事件名义“Time”结束。 12.2 使用Script节点处理事件 当Script节点收到一个输入事件时,首先将事件值传送到由url指定的脚本中,通过这个脚本设置该Script节点输出事件的值。而当Script节点收到一组输入事件时,它把这些输入都送到由url指定的脚本中,根据所使用的脚本语言,通过不同方法依次处理每一个事件,并输出处理结果。 而用JavaScript来处理输入事件的一般方法是为Script节点内的每一个输入事件都定义一个函数。当输入事件一到,浏览器就调用具有相同名字的函数。在JavaScript语言中,函数主要传递两个参数:新事件值和新事件时间标记。 12.3 RPOTO创建用户新节点 VRML是一个丰富多彩的世界,如果想创建更加逼真、生动的场景和造型,需要

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档