查看: 936|回复: 3

handle中Frame事件中返回true或false有什么用处吗?

[复制链接]

该用户从未签到

发表于 2015-2-6 14:42:40 | 显示全部楼层 |阅读模式
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

该用户从未签到

发表于 2015-2-7 14:03:00 | 显示全部楼层
返回true表示,该事件已经被处理,后面handle就不会再接收到frame事件,返回false的话,后面的handle可以接受frame事件。

该用户从未签到

 楼主| 发表于 2015-2-26 11:21:10 | 显示全部楼层
zhufu0208 发表于 2015-2-7 14:03
返回true表示,该事件已经被处理,后面handle就不会再接收到frame事件,返回false的话,后面的handle可以接 ...

程序测试return true 第二个handle也会响应呀。。。

  1. #include "stdafx.h"
  2. #include <osg/Geode>
  3. #include <osg/Geometry>
  4. #include <osgViewer/Viewer>
  5. #include <osgDB/ReadFile>
  6. #include <osg/StateSet>
  7. #include <osg/Camera>
  8. #pragma comment(lib,"OpenThreadsd.lib")
  9. #pragma comment(lib,"osgd.lib")
  10. #pragma comment(lib,"osgDBd.lib")
  11. #pragma comment(lib,"osgAPExd.lib")
  12. #pragma comment(lib,"osgGAd.lib")
  13. #pragma comment(lib,"osgUtild.lib")
  14. #pragma comment(lib,"osgTextd.lib")
  15. #pragma comment(lib,"osgSimd.lib")
  16. #pragma comment(lib,"osgViewerd.lib")

  17. class CPrimary : public osgGA::GUIEventHandler
  18. {
  19. public:
  20.         bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& us){
  21.                 switch(ea.getEventType())
  22.                 {
  23.                 case osgGA::GUIEventAdapter::FRAME:
  24.                         {
  25.                                 return true;
  26.                         }
  27.                         break;
  28.                 }
  29.                 return true;
  30.         }
  31. };


  32. class CPrimary2 : public osgGA::GUIEventHandler
  33. {
  34. public:
  35.         bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& us){
  36.                 switch(ea.getEventType())
  37.                 {
  38.                 case osgGA::GUIEventAdapter::FRAME:
  39.                         {
  40.                                 //return true;
  41.                                 int j =0;
  42.                         }
  43.                         break;
  44.                 }
  45.                 return false;
  46.         }
  47. };

  48. int _tmain(int argc, _TCHAR* argv[])
  49. {
  50.         osgViewer::Viewer viewer;
  51.         viewer.setSceneData(osgDB::readNodeFile("subtile.ive"));
  52.         osg::ref_ptr<CPrimary> pH = new CPrimary;
  53.         osg::ref_ptr<CPrimary2> pH2 = new CPrimary2;
  54.         viewer.addEventHandler(pH);
  55.         viewer.addEventHandler(pH2);
  56.         return viewer.run();
  57.         return 0;
  58. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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