简要说明(由于本人英语水平真的很烂,文里漏洞百出,欢迎批评指正)
Listener类定义了一系列回调函数,你可以在子类中复写它们,来对Leap Motion 控制器对象引发的事件做出回应。
公有成员函数
()
创建一个监听器Listener对象
virtual void (const &)
当controller对象连接到Leap Motion 软件并且Leap Motion 硬件插上的时候被调用,或者当这个Listener对象被添加到一个已经连接的controller对象的时候被调用。
virtual void (const &)
当controller对象和Leap Motion 软件的连接断开或者Leap Motion 硬件被拔下来的时候调用。
virtual void (const &)
当这个Listener对象从controller中被移除的时候,或者这个controller对象被销毁的时候调用。
virtual void (const &)
当这个应用程序变成前台应用程序的时候被调用。
virtual void (const &)
当这个应用程序失去前台焦点变成后台应用程序的时候被调用。
virtual void (const &)
当获得一个新的手和手指的跟踪数据帧的时候被调用。
virtual void (const &)
被调用一次,当这个Listener对象被新添加到一个controller对象的时候。
virtual ()
析构函数
详细说明
定义了一系列回调函数,你可以在子类中复写它们,来对Leap Motion 控制器对象引发的事件做出回应。
为了处理Leap Motion 事件,创建一个Listener子类的实例,并且把它分配到这个controller实例。当一个时间发生的时候,controller 调用相关的listener回调函数,通过一个对自身的引用。你不必要实现你不需要处理的事件的回调函数。
controller对象在由Leap Motion 库创建的一个线程中调用这些listener函数,而不是在用来创建或者设置listener实例的线程中。
Since
1.0
构造函数和析构函数文档
Leap::Listener::Listener()
构造一个listener对象。
Since
1.0
virtual Leap::Listener::~Listener()
销毁一个listener对象。
成员函数文档
virtual void Leap::Listener::onConnect(const & )
当controller对象连接到Leap Motion 软件并且Leap Motion 硬件插上的时候被调用,或者当这个Listener对象被添加到一个已经连接的controller对象的时候被调用。
void SampleListener::onConnect(const Controller& controller) { std::cout << "Connected" << std::endl; }
参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onDisconnect(const & )
当controller对象和Leap Motion 软件的连接断开或者Leap Motion 硬件被拔下来的时候调用。
当Leap Motion硬件没有被插上的时候,用户关闭Leap Motion 软件的时候,或者Leap Motion 软件遇到不可恢复的错误的时候,controller对象可能断开。
void SampleListener::onDisconnect(const Controller& controller) { std::cout << "Disconnected" << std::endl; }
注意:当你在调试模式启动了Leap应用的时候,Leap Motion库不会从应用程序断开连接。这就允许你单步执行代码而不会因为超时而丢失连接。
参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onExit(const & )
当这个Listener对象从controller中被移除的时候,或者这个controller对象被销毁的时候调用。
void SampleListener::onExit(const Controller& controller) { std::cout << "Exited" << std::endl; }
参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onFocusGained(const & )
当这个应用程序变成前台应用程序的时候被调用。
只有前台的应用程序从Leap Motion controller接收跟踪到的数据。这个函数只有在controller对象在连接状态的时候被调用。
void SampleListener::onFocusGained(const Controller& controller) { std::cout << "Focus gained " << std::endl; }
参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onFocusLost(const & )
当这个应用程序失去前台焦点变成后台应用程序的时候被调用。
只有前台的应用程序从Leap Motion controller接收跟踪到的数据。这个函数只有在controller对象在连接状态的时候被调用。
void SampleListener::onFocusLost(const Controller& controller) { std::cout << "Focus lost " << std::endl; }
参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onFrame(const & )
当获得一个新的手和手指的跟踪数据帧的时候被调用。
使用
函数访问新的帧数据。void SampleListener::onFrame(const Controller& controller) { std::cout << "New frame " << std::endl; }
注意:controller跳过任何等待的onFrame事件,当你的处理程序执行的时候。如果你的实现执行时间太长才返回结果,一个或者更多的帧就会被忽略。controller仍然把跳过的帧加入到历史帧队列中。当调用
函数的时候,你可以访问近期的帧通过history参数。如果任何的等候onFrame事件被跳过了,你可以通过比较近期的帧的ID和最新的帧的ID来判断。参数:
controller 调用这个回调函数的controller对象
Since
1.0
virtual void Leap::Listener::onInit(const & )
被调用一次,当这个Listener对象被新添加到一个controller对象的时候。
void SampleListener::onInit(const Controller& controller) { std::cout << "Initialized" << std::endl; }
参数:
controller 调用这个回调函数的controller对象
Since
1.0