X3D实战底子讲座之十一[Java编程]
本文“X3D实战底子讲座之十一[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
我们知道,关于Visual C++而言,交互的实现是通过消息映射来举行的.一样,X3D的交互实现也是通过近似的映射机制.用户事件的产生是通过呼应的传感器产生的,而ROUTE语句就是相当于事件的映射,它映射到另一个输入事件中.
X3D中,用户事件的传感器有:KeySensor(键盘传感器) 、StringSensor(字符串传感器)、TouchSensor(触摸传感器)、PlaneSensor(平移传感器) 、SphereSensor(绕点旋转感器)和CylinderSensor(Y轴旋转传感器)等.由于BS浏览插件对X3D新增的KeySensor和StringSensor节点的支持不够好,故这里暂不谈论.
1、TouchSensor(触摸传感器)节点
TouchSensor(触摸传感器)节点产生基于定点输入设备(普通是鼠标)的事件.这些事件表明用户能否正在点选某个多少体和用户在什么地方,以及在什么时刻按了定点设备的键.它的主要域或事件有:
description -- 这个节点功效的文字提醒.
enabled -- 设置传感器节点能否有效.默许值为True.
isActive -- 当点击或移动鼠标(指导设备时)发送事件.按下鼠标主键时isActive=True, 放开时
isActive=False.
isOver -- 当指导设备移动过传感器表面时发送事件.
hitPoint_changed -- 事件输出在子节点部分坐标系统点击点的定位.
hitNormal_changed -- 事件输出了点击点的表面的法线向量.
hitTexCoord_changed -- 事件输出了点击点的表面的纹理坐标.
touchTime -- 当传感器被指导设备点击时产生时间事件.
需求阐明的是:
(1) 若定点设备未指向传感器的兄弟多少体,而用户开始将定点设备移到传感器的兄弟多少体时,传感器将产生一个isOver事件,并将其值设置为True;相反,若定点设备已经指向传感器的兄弟多少体,此时用户将定点设备移出传感器的兄弟多少体,传感器将产生一个isOver事件,并将其值设置为False.
(2) 当用户将定点设备从多少体的一点移动到另一点时,传感器将发送一系列事件: hitPoint_changed、hitNormal_changed、hitTexCoord_changed,辨别表明用户所指的位置、该点的法向量和纹理坐标.
(3) 当用户点击被TouchSensor监督的对象时,传感器将产生值为True的isActive事件;而当用户释放定点设备的键时,传感器将产生isActive为False的事件.
(4) 若用户在指向多少体时按下鼠标键,然后在仍旧指向这个多少体(或又回到这个多少体)时释放鼠标键,传感器将要发送一个touchTime事件,表明键被释放的时间.可以利用这一事件来模拟很多常用的用户接口(如只有在用户点击和释放定点设备按键时才产生的行动).
下面举两个例子来阐明:
以上是“X3D实战底子讲座之十一[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |