0
我將輸入爲x/y座標的流,如果這些座標在給定的時間段(例如2秒)內落在指定的範圍內,我想觸發一個事件。有人可以建議一種方法來做到這一點?javascript timed event
我將輸入爲x/y座標的流,如果這些座標在給定的時間段(例如2秒)內落在指定的範圍內,我想觸發一個事件。有人可以建議一種方法來做到這一點?javascript timed event
算法上,當你第一次檢測到它在範圍內時,你做一個setTimeout()
2秒。從那時起,如果座標在邊界內並且計時器已經設置好,你什麼也不做。如果座標不在界限內,則用clearTimeout()
停止計時。如果計時器在清除之前觸發,那麼座標在所需的時間內保持在界限內。
下面是一個代碼示例:
var myTimer = null;
function processCoordinatePair(x,y) {
if (inBounds(x,y)) {
if (!myTimer) {
setTimeout(function() {
// we stayed in bounds for 2 seconds, do whatever needs doing
myTimer = null; // clear timer for future use
}, 2000);
}
} else { // not in bounds any more
if (myTimer) {
clearTimeout(mytimer); // if timer was running, stop it
myTimer = null;
}
}
}
的inBounds()
功能的實現顯然是由你,因爲你還沒有描述的問題的一部分。