diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2015-11-16 16:58:18 +0200 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2015-11-16 16:58:18 +0200 |
| commit | 13c5dc317abe0fb4458e703f2ab9397a7c24c859 (patch) | |
| tree | 1410e5e6d250cbcadc29a1b66a851473e15da8b6 /src/keyboard.js | |
Rengöring
Diffstat (limited to 'src/keyboard.js')
| -rw-r--r-- | src/keyboard.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/keyboard.js b/src/keyboard.js new file mode 100644 index 0000000..8f9b12d --- /dev/null +++ b/src/keyboard.js @@ -0,0 +1,38 @@ +function keyboard(keyCode) { + var key = {}; + key.code = keyCode; + key.isDown = false; + key.isUp = true; + key.press = undefined; + key.release = undefined; + //The `downHandler` + key.downHandler = function(event) { + if (event.keyCode === key.code) { + if (key.isUp && key.press) key.press(); + key.isDown = true; + key.isUp = false; + } + event.preventDefault(); + }; + + //The `upHandler` + key.upHandler = function(event) { + if (event.keyCode === key.code) { + if (key.isDown && key.release) key.release(); + key.isDown = false; + key.isUp = true; + } + event.preventDefault(); + }; + + //Attach event listeners + window.addEventListener( + "keydown", key.downHandler.bind(key), false + ); + window.addEventListener( + "keyup", key.upHandler.bind(key), false + ); + return key; +} + +var k_space = keyboard(32) // space bar |
