aboutsummaryrefslogtreecommitdiffstats
path: root/src/keyboard.js
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2015-11-16 16:58:18 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2015-11-16 16:58:18 +0200
commit13c5dc317abe0fb4458e703f2ab9397a7c24c859 (patch)
tree1410e5e6d250cbcadc29a1b66a851473e15da8b6 /src/keyboard.js
Rengöring
Diffstat (limited to 'src/keyboard.js')
-rw-r--r--src/keyboard.js38
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