2011-08-09 4 views
0

x/y座標のストリームとして入力していますが、これらの座標が指定された範囲内にある場合(たとえば2秒)イベントをトリガーしたいと思います。誰かがこれを行う方法を提案できますか?javascriptタイムドイベント

答えて

2

アルゴリズム上、アルゴリズムが最初に範囲内にあることを検出すると、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()機能の実装はあなた次第明らかである:

は、ここでのコード例です。