我正在创建我的第一个JS库(主要是为了学习),我希望有一个带有两个参数的简单函数,(键和代码 )。这个函数会执行代码,这通常类似于" myFunction()",只要键键是" down&#34 ; (比如onkeydown)。这是一个例子:
function moveForward() {
// some code
}
function jump(height) {
// some code
}
// whenever the w key is down, run the function "moveForward".
ice.keyDown("w", moveForward);
// whenever the space bar is down, run the function "jump".
ice.keyDown("space", jump);
值得注意的是,我还有两个类似的功能,ice.keyUp和ice.keyPress。这些几乎可以达到你的期望,就像ice.keyDown一样,但是对于onkeyup和onkeypress。
此外,我希望能够有第四个功能,它有三个参数,键,代码和模式。此函数(可能称为ice.keyRemove)将删除任何现有的ice.keyDown / Up / Press功能,当键按下/向上/按下时,该功能将执行代码。要清除按键时执行任何代码的所有ice.keyDown / Up / Press功能,您将使用" all"作为参数代码。另一个例子:
// whenever the control key stops being pressed, run the function "myFunc".
ice.keyUp("ctrl", myFunc);
// whenever the control key is pressed (onkeypress), run the function "myOtherFunc".
ice.keyPress("ctrl", console.log("8 pressed"));
// stop running stuff when the ctrl key is down/up/pressed.
ice.keyRemove("ctrl", "all", "all");
我希望一切都有道理。正如我之前提到的,这主要是为了学习体验,所以请不要只给我代码,但要解释可能有效/无效的原因以及原因。我也知道有些库可以做到这一点,比如Keypress,但我再次尝试了解这样的事情是如何最有效地完成的。