我正在node.js中构建一个小的网络游戏,我一直在使用事件监听器进行输入,它在按键和鼠标移动等方面运行良好。
window.addEventListener("keydown", onKeyDown);
window.addEventListener("keyup", onKeyUp);
window.removeEventListener("mousemove", onMouseInput);
(所有这些都非常完美(
但是,当我尝试使用mouseup
/mousedown
事件(以及pointerup
/pointerdown
(时,它们不会注册。我做错什么了吗?它必须点击什么吗?
window.addEventListener("pointerdown", changeShooting(true));
window.addEventListener("pointerup", changeShooting(false));
(不起作用(
您必须将一个函数传递给addEventListener
,同时将调用的结果传递给changeShooting
(我认为它不会返回函数(。
为了做到这一点,您可以定义一个内联函数,如:
window.addEventListener("pointerdown", function() {
changeShooting(true)
});
如果以后需要删除侦听器,则必须明确定义它:
function onPointerDown() {
changeShooting(true);
}
window.addEventListener("pointerdown", onPointerDown);
// later somewhere
window.removeEventListener("pointerdown", onPointerDown);