我想写一个小游戏
网页上监听按键:
window.addEventListener( "keypress", doKeyPress, false )
doKeyPress 函数大致就是移动网页上的元素,
但我想给这个移动加一点限速,
怎样在得到一个按键事件后就丢弃一定时间内的按键事件呢?
或者别的实现方法啊,
function keyPress(e) {
console.log("sadfsdf")
key = e.keyCode || e.which
keychar = String.fromCharCode(key);
switch (key) {
//...
}
}
function doKeyPress(e){
return function(){
keyPress(e);
}
}
1
luoweihua7sync 2014-11-30 22:07:50 +08:00 2
undersocre的debounce方法会给你思路
|
2
Tankpt 2014-11-30 22:12:36 +08:00 1
你可以这样试试
var a = null; function doKeyPress(e){ if(!a){ a= setTimeout(function(){ clearTimeout(a); a= null; },200); /*do press event*/ } } |
3
yaoyen0002 2014-11-30 22:22:40 +08:00 1
怎样在得到一个按键事件后就丢弃一定时间内的按键事件呢?
|
4
yaoyen0002 2014-11-30 22:24:30 +08:00 1
怎样在得到一个按键事件后就丢弃一定时间内的按键事件呢?
不好意思,刚点错快捷键直接发出去了。。 可以在按键后,存一个时间戳,之后的按键,都和这个时间戳对比一下间隔,小于你设定阙值的就啥都不干。。判断通过就刷新一下时间戳 |
5
pysama 2014-11-30 23:48:54 +08:00 1
@Tankpt 的思路是让用户的操作滞后特定时间执行
@yaoyen0002 的思路是特定时间内只执行一次 (个人更倾向这种思路) @luoweihua7sync 的建议不错,去看_的实现。 话说你的头像真是:好坏的!!! |
7
althoughghgh OP |