私はゲームパッド API で遊んでいます。特に、コントローラーのジョイスティックを使用する軸です。これらの位置は頻繁に更新されます。そのため、私が聞いているイベント (棒の動き) も頻繁に発生します。ラグを減らすために、たとえば 1 秒間に 25 回に制限する方法はありますか?
質問する
7946 次
3 に答える
14
JavaScript イベントがトリガーされる頻度を制限することはできませんが、イベント ハンドラーは一部の呼び出しで何もしないことを選択できます。これを使用した例を次に示しmousemove
ます (どのゲームパッド API について話しているのかわかりません)。
var lastMove = 0;
document.addEventListener('mousemove', function() {
// do nothing if last move was less than 40 ms ago
if(Date.now() - lastMove > 40) {
// Do stuff
lastMove = Date.now();
}
});
于 2013-02-02T22:08:49.183 に答える
1
このようなことを行うことができます.1秒間隔でイベントが呼び出される頻度と、それを処理するかどうかを確認します. コードサンプル、私が考えていたことの大まかな概要(保証はありません(そのスペルなど))。
function process_event() {
var curr = new Date().getTime();
if ((curr - timeObj.last) < 1000) { //One Second
if (timeObj.counter > 25) {
for (var x=0;x<timeObj.times;x++) {
if ((curr - timeObj.times[x]) >= 1000) {
timeObj.times.splice(x, 1);
timeObj.counter -= 1;
}
}
}
else {
timeObj.counter += 1;
timeObj.times[timeObj.times.length()-1] = curr;
}
}
else {
timeObj.counter = 0;
timeObj.times = [];
}
if (timeObj.counter > 25) {
return False
}
else {
return True
}
}
于 2013-02-02T22:19:17.323 に答える
0
イベント リスナーがアクティブになるたびに増加する変数を初期化します。変数が 25 未満の場合にのみ、イベント リスナーが出力する関数が発生するようにします。
于 2013-02-02T22:07:43.453 に答える