|
我写了一个处理事件的类,继承自osgGA::GUIEventHandler,
然后重写bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa);函数
在处理键盘按键事件的时候,我发现。如果一直按着键盘上的某一个按键,例如‘A’。osg在处理事件的
时候会一直响应‘A’按键的handleKeyUp()。
这导致了无法处理一些一直按着键盘某一个见的一些操作。
不知这是osg的bug还是我处理的不当。
bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa)
{
case osgGA::GUIEventAdapter::KEYDOWN:
{
return handleKeyDown(ea); // 按下按钮‘A’,进入画线模式
}
case osgGA::GUIEventAdapter::KEYUP:
{
return handleKeyUp(ea); // 松开按钮‘A’的时候,返回普通模式,并将画的线隐藏
}
}
按着‘A'的时候,没有松开就会进入 handleKeyUp(ea),画的线也一闪而过隐藏掉了。
|
|