查看: 1708|回复: 9

请问是否可以屏蔽掉viewer中一些按键交互功能

[复制链接]

该用户从未签到

发表于 2009-11-19 10:01:34 | 显示全部楼层 |阅读模式
问题是这样的:我的场景中各个子节点附加有相应的键盘控制,但有些按键可能会与viewer默认的功能按键有所重叠,请教一下能否屏蔽某些viewer的按键功能,而不是完全取代viewer的键盘控制?谢谢~~

该用户从未签到

发表于 2009-11-19 11:16:13 | 显示全部楼层
返回真就可以了~~不会再交给其他处理了

该用户从未签到

 楼主| 发表于 2009-11-19 15:31:24 | 显示全部楼层
这里返回真、假有什么区别呢?

该用户从未签到

发表于 2009-11-19 16:33:17 | 显示全部楼层
返回假还会再交给其他handler处理的~~~

该用户从未签到

 楼主| 发表于 2009-11-20 10:05:17 | 显示全部楼层
试了一下好像不行啊,现在我是在viewer上添加了键盘事件处理,在场景中其他节点上也分别加入了键盘事件处理,现在case中设置返回的都是true了,但好像不行,是否有其他方法来让那些键盘控制相互之间不影响么?麻烦各位了~~

该用户从未签到

发表于 2009-11-20 10:25:50 | 显示全部楼层
"return true"只对Viewer::addEventHandler的各个事件处理器有效,对于“添加给节点的事件处理器”是起不到作用的;事实上我们也很少会给某个节点添加GUIEventHandler。不知道您的系统结构是否必须这样做,最好还是能采取其他的方法

该用户从未签到

 楼主| 发表于 2009-11-20 11:04:06 | 显示全部楼层
感谢array版主

还是想请教一下:当在随着场景的变化(比如类似游戏的进程:动画-主菜单-游戏场景),键盘控制的功能会有所变化,那么这种情况是否有比较好的实现键盘控制的方法?

该用户从未签到

发表于 2009-11-20 12:24:03 | 显示全部楼层
您使用的是自己派生得到的GUIEventHandler,那么您自然有自己的方法来改变键盘控制的响应方式了~~呵呵

该用户从未签到

 楼主| 发表于 2009-11-20 13:56:57 | 显示全部楼层
Viewer::addEventHandler的各个事件处理器,与其他节点的GUIEventHandler,在执行的时候的机制是什么样的呢?系统中是否有一个全局的、能够获取到发起当前事件处理器信息的函数?

该用户从未签到

发表于 2009-11-20 14:21:01 | 显示全部楼层
OSG并不管理所谓“节点的GUIEventHandler”,因此也不建议您这样使用GUIEventHandler;它往往只能造成您的程序结构的混乱。Viewer::addEventHandler的各个处理器是由eventTraversal()统一调度的,也可以直接获取
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表