<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">游戏开发有个交互模块,按键触发!做前端的都知道,我们习惯使用onkeydown事件触发,这样做好处就是立即响应。缺点就是无论是onkeydown,onkeyup,onkeypress它们都是单一触发事件,就是按下一个按键,阻断当前按键,也就是无法做到同时按下两个按键。</span>
所以,网络上流行另外一种触发模式,事件监听addEventListener绑定事件的对象方法,这里用来绑定keydown和keyup事件,为了紧凑,首先定义一个对象keysDown
//按键事件缓存,这样好处就是可以同时按下两个键
keysDown = {};
addEventListener("keydown", function (e) {
keysDown[e.keyCode] = true;
yy();
}, false);
addEventListener("keyup", function (e) {
delete keysDown[e.keyCode];
}, false);
解释下,keysDown对象用来保存按键keyCode值,当按下一个按键不松开时候,会将键值保存,如果再按下另外一个按键依旧会继续保存,所以就能够实现多按键组合,当松开时候,就删除保存键值。
接下来,到了Demo时间,