我正在使用ondevicemotion API在设备上侦听运动数据。例如:
window.ondevicemotion = function(event) {
// do something with the event
}
我想在调用它时运行此函数;但是,因为它基于事件,所以它会在事件发生时触发(取决于设备,可能经常发生)。
如何调整功能以便它只在我调用时监听事件,而不是连续监听?
答案 0 :(得分:0)
您可以根据需要添加和删除事件侦听器:
function processMotion(e) {
// your code here to process devicemotion events
}
function addMotionListener() {
window.addEventListener("devicemotion", processMotion);
}
function removeMotionLisener() {
window.removeEventListener("devicemotion", processMotion);
}
因此,当您想要开始收听动作时,只需致电addMotionListener()
即可。如果您想停止听动作,请拨打removeMotionListener()
。
您无法自己调用processMotion()
,因为您需要系统创建包含其中所有运动数据的系统事件。相反,您注册事件处理程序,系统会在需要共享数据时调用您。