0
x/y座標のストリームとして入力していますが、これらの座標が指定された範囲内にある場合(たとえば2秒)イベントをトリガーしたいと思います。誰かがこれを行う方法を提案できますか?javascriptタイムドイベント
x/y座標のストリームとして入力していますが、これらの座標が指定された範囲内にある場合(たとえば2秒)イベントをトリガーしたいと思います。誰かがこれを行う方法を提案できますか?javascriptタイムドイベント
アルゴリズム上、アルゴリズムが最初に範囲内にあることを検出すると、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()
機能の実装はあなた次第明らかである:
は、ここでのコード例です。