javascript定时事件

时间:2011-08-09 02:52:27

标签: javascript events time

我正在输入x / y coords的流,如果这些coords在给定的时间段(例如2秒)内落在指定的范围内,我想触发一个事件。有人可以建议一种方法吗?

1 个答案:

答案 0 :(得分:2)

在算法上,当您第一次检测到它在范围内时,您执行setTimeout() 2秒钟。从那时起,如果coords停留在边界并且已经设置了计时器,则不执行任何操作。如果坐标超出范围,则使用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()函数的实现显然取决于你,因为你没有描述问题的这一部分。