动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.Java游戏编程分析--棋子的拖动.
.WebLogic 6.1的LOG文件.
.百分之百纯Java(TM)--名词解释.
.Java语言中Timer类的简洁用法(二).
.从 if else 到设.
.Java核心代码例程之:ShowFileCo.
.Java初学者问道:Java IDE选择.
.关于继承内部类——java编程思想.
.JAVA设计模式系列之Adapter(适配.
.TortoiseSVN从1.2.6升级到1.3.2过.
.JAVA规则基本篇.
.自我参考:Java学习的30个目标.
.null,this和supper变量.
.JGraph 5.8 发布.
.J2EE编程起步(1).
.共享内存在Java中的实现和应用.
.利用ThreadLocal简化struts开发.
.新手入门Eclipse插件的安装与配置.
.Java Security Notes (6).
.java设计模式之Mediator.

X3D实战基础讲座之十二

发表日期:2008-1-5 |



  在X3D中,通过使用程序化的节点Script来嵌入脚本程序。它支持ECMAScript/javascript 或 Java语言。这里解释一下什么是ECMAScript,ECMAScript也是一种脚本语言,由Netscape和Microsoft使用开发,它是一种面向对象语言,ECMAScript和DOM一起十分接近于现在对JavaScript和JScript的实现,虽然说是用于网络环境,但它可以用于任何脚本环境中,并且其语法与JavaScript基本相同。



  在本讲中,我们先来看一个实例过程,然后说明其简单编程方法。

  一、 一个嵌入脚本程序的实例过程

  这个示例是当鼠标点击圆柱体时,圆柱体移出和它相连的球,再单击圆柱体,圆柱体回到原来的位置。示例过程如下:


(图片较大,请拉动滚动条观看)

  (1) 创建一个12..x3d新文档,其初始化程序如下:

X3D实战基础讲座之十二(图二)

  (2) 由于球不需要移动,因此,我们先构造一个球,颜色为黄色。如下面的代码:

X3D实战基础讲座之十二(图三)

  (3) 对于圆柱体的鼠标事件映射,我们使用触摸传感器,见下面的代码:

X3D实战基础讲座之十二(图四)

  (4) 在Group后面添加Script节点。

  (5) 为Script节点添加Field子节点,如下所示:

X3D实战基础讲座之十二(图五)

  (6) 选中Field子节点,在其属性窗口中设置相关属性,结果如下所示:

X3D实战基础讲座之十二(图六)

  说明:name是用来指定域名,AccessType是用来设置域的访问类型,通常可以是inputOnly(输入)、outputOnly(输出)和inputOutput(输入输出)。Type指定域变量的数据类型,类型中前缀是SF表示单值,MF表示多值。Value为域变量提供缺省的初始值。

  (7) 再为Script节点添加两个Field子节点,用于输出程序中指定的坐标值和记录是否移出。结果如下面的代码:


(图片较大,请拉动滚动条观看)

  其中,SFBool为单值的布尔型,SFVec3F为单值的三维坐标的实数型。

  (8) 为Script节点CDATA用于添加嵌入脚本程序,然后在CDATA的属性窗口中输入如下的脚本程序:

ecmascript:
function set_translation( isActive ) {
 if (isActive == true) {
  if (isTrans == false) {
   value_changed[0] = 5;
  } else {
   value_changed[0] = 0;
  }
  value_changed[1] = 0;
  value_changed[2] = 0;
  isTrans = ! isTrans;
 }
}
  (9) 单击CDATA的属性窗口中的Apply按钮,程序代码输入有效。此时节点CDATA变成了ecmascript节点。

  (10) 将Script节点命名为USESCRIPT,然后添加ROUTE语句。整个代码如下所示:

X3D实战基础讲座之十二(图八)X3D实战基础讲座之十二(图九)

  编译并预览,结果正如我们一开始设定那样,单击圆柱体,移出,再单击圆柱体,圆柱体回到原来的位置。如下所示:

X3D实战基础讲座之十二(图十)

  二、 分析

  我们来看看代码的运行过程。首先第一条ROUTE语句将ToUChSensor传感器的isActive事件传递给函数set_translation。该函数只有一个形参isActive,这个形参名可以是其他名称,形参的数据类型取决于该函数的类型。当鼠标单击圆柱体时,isActive事件为True,该值传到set_translation,并执行函数代码。由于第一次单击,IsTrans为False,这样该函数运行后,value_changed的值就变为[5,0,0],IsTrans为True。

  value_changed的值改变后,通过第二条ROUTE语句,将其传递给圆柱体所在的父节点Transform的translation域,从而使圆柱体位置发生改变。

  若再单击圆柱体,则仍然会沿着刚才的路由进行数值的传递,从而圆柱体又回到了原来的位置。
从上述示例可以看出,实际上这种嵌入式脚本程序其目的是答应用户自己定义带有输入输出事件的节点。

  三、 多传感器和多个嵌入脚本

  上述示例中,圆柱体位置是直接变化的,能否使圆柱体的位置慢慢变化到指定的位置。也就是说,当单击圆柱体,圆柱体慢慢地移动到[5,0,0]位置,而再单击圆柱体,圆柱体又慢慢回到原来的位置。为了不使程序代码过于复杂,我们只实现前一个动作,即当单击圆柱体,圆柱体慢慢地移动到[5,0,0]位置。

  首先我们构思一下其路由:单击鼠标,激活时间触发器,继而通过位置插补器,使圆柱体慢慢移出。然后根据移出的结果,再通过程序设置时间触发器停止。

  具体程序如下:

X3D实战基础讲座之十二(图十)

  上述代码,读者完全可以自己分析,这里不再赘述。

  总之,通过对X3D的节点,我们可以构造出不一般的场景,这样就可以用于基于WEB的产品展示、网络教学、仿真等一系列领域。本讲座仅仅是一个入门的基础教程,更深层次的探索还需要我们慢慢去体验。进入讨论组讨论。
上一篇:触摸Java中的包和文档 人气:394
下一篇:利用JBuilder2005开发Web应用程序 人气:387
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-19 Roclog v3.1.4 SP1
2008-7-19 马克斯CMS(Maxcms) v1.1 Build 0
2008-7-19 乐学LBBS无限级目录图片直读系统
2008-7-19 PHP在线考试系统PPExam v1.2.5
2008-7-19 APJE私服发布系统 v2.0
2008-7-19 寻觅图书管理系统 v1.12
2008-7-19 寻觅学校管理系统
2008-7-19 义乌网站目录baidu新闻订阅 v1.0
2008-7-19 牛仔IIS日志蜘蛛爬行记录分析器
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵