- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第*页增加交互能力现在松开左钮,可以看到场景恢复到原来方位,这种功能称为视点回跳,其原因是松开左钮后接触检测器向view2发送了一个“FASLE”事件,这样view2的当前视点地位被解除,原来的视点成为即当前视点,详细说明可参考VRML标准中对视点节点的专门论述。如果我们不想视点回跳,就想停留在view2视点,那该怎么办呢?这种非系统缺省功能要自己来定义。第*页利用脚本编写自定义行为在VRML中,利用Script节点(脚本节点)定义用户自定义行为,所谓定义就是用脚本描述语言(ScriptingLanguage)编写脚本的过程。VRML97支持的脚本描述语言目前有两种:Java和EMCAScript(这是JavaScript标准化后的名称),关于这两种语言本身,请参考相应的参考资料,VRML97标准中定义了它们和VRML的接口方法。应该注意的是:VRML是基于节点的语言,所以脚本也是封装在Script这个特殊节点中的。这里我们不能过多地讨论脚本描述语言的细节,主要讨论把脚本集成到VRML文件中的方法。第*页利用脚本编写自定义行为我们曾把接触检测器touchBox和视点view2直接通过路径连接起来,现在要定义我们指定的行为,就需要在二者之间插入一个脚本节点,也就是让路径绕个弯:ROUTEtouchBox.isActiveTOtouchScript.touchBoxIsActiveROUTEtouchScript.bindView2TOview2.set_bind第*页利用脚本编写自定义行为其中的脚本节点touchScript有一个事件人口touchBoxIsActive和一个事件出口bind_View2,前者接收来自接触检测器touchBox的事件,然后经自己的脚本处理后,把结果发送给视点节点view2:DEFtouchScriptScript{eventInSFBooltouchBoxIsActiveeventOutSFBoolbindView2urljavescript:functiontouchBoxIsActive(active){bindView2=TRUE;}}第*页利用脚本编写自定义行为关于这个Script节点,请注意以下几点:(1)它的事件入口touchBoxIsActive和事件出口bindView2是自定义的,而其它VRML节点的域和事件都是固定的。(2)事件入口touchBoxIsActive和事件出口bindView2的类型都是SFBool(单值布尔型),touchBox的事件出口isActive和view2的事件入口set_bind的类型也是相同的。(3)“url”是脚本节点的一个域,可以直接包含脚本,也可以包含一个或多个用URL地址指示的脚本,若有多个地址,则按照先后次序获取第一个可得到的脚本。(4)脚本是以函数(function)的形式给出的,函数名touchBoxIsActive与事件入口的名称相同,这是和ECMAScript语言的接口约定,表示相应事件入口接收到事件后应调用此函数进行处理。第*页事件流程下面我们整理一下事件流程:(1)用户在方块上按下鼠标左键。(2)接触检测器发出一个“TRUE”事件。(3)此事件进入脚本节点touchScript的事件入口touchBoxIsActive.(4)调用脚本函数touchBoxIsActive(注意,脚本函数并没有判断入事件的值)。(5)函数向touchScript的事件出口bindView2发送一个“TRUE”事件(还可以进行其它判断或执行其它事件)。(6)view2节点收到“TRUE”事件,成为当前视点。按照VRML约定,“认为”上述事件是同时发生的,也就是这些事件的时间戳相同。(7)若用户松开鼠标左键,则接触检测器发出一个“FALSE”事件,此事件同样引起脚本函数调用并发送“TRUE”事件,所以view2仍然保持为当前视点。本节的完整代码是(HelloWorld7.wrl)第*页事件流程#VRMLV2.0utf8DEFview1Viewpoint{position0020descriptionview1}DEFview2Viewpoint{position5020descriptionview2}Group{children[DEFboxTransform{translation500children[Shape{
您可能关注的文档
- UG N 4 中版机械设计与加工教程项目十 圆形烟灰缸的注塑模设计(76页).ppt
- ug注塑模设计教程分析.ppt
- Unit-1-Classroom-Lesson-2-课件-1公开课教案课件.ppt
- Unit-3-Internet-and-Lifestyle市公开课一等奖省赛课微课金奖课件.ppt
- Unit-4.Force-of-nature.-市公开课一等奖省赛课微课金奖课件.ppt
- Unit1-Wheredidyougoonvacation全单元公开课获奖课件.ppt
- Unit10sportsrevision职高英语基础模块省公开课金奖全国赛课一等奖微课获奖课件.ppt
- Unit2-WritingaLetterofInvitation市公开课一等奖省赛课微课金奖课.ppt
- Unit2复习课件2022-2023学年人教版英语七年级上册.ppt
- unit3inarestaurant.市公开课一等奖省赛课微课金奖课件.ppt
- 国开大学药学天热学形考任务答案 (2).pdf
- 9787568227124 公司财务报表分析 谢志琴 答案 .pdf
- 【中考真题】陕西省2024年中考语文真题试卷 .pdf
- 乙型肝炎病毒母婴传播防治2024PPT .pdf
- 2025上海市历年高考生物等级考《选必3生物技术与工程》真题汇总(学生版+解析版) .pdf
- 单元整体教学设计Unit 1 My school PB Let's talk 教案人教PEP版四年级下册 .pdf
- 【《奥克斯电器企业盈利质量研究》11000字】 .pdf
- 2022-2023学年浙江省台州市黄岩区部编版四年级上册期末考试语文试卷(解析版) .pdf
- 【5A版】教科版小学一年级科学下册全册教案 .docx
- 2023-2024学年浙江省杭州市上城区教科版五年级下册期末考试科学试卷(解析版) .pdf
文档评论(0)