key-js
Version:
Simple library for JavaScript key code constants and key press state
52 lines (32 loc) • 2.06 kB
Markdown
# key-js
Simple library for JavaScript key code constants and a utility to check key press state. It is a port of my [KeyAS3](https://github.com/Cleod9/KeyAS3) library.
Many existing libraries expose key code values in strange ways (such as requiring function calls that took string values). This library provides a simple static object containing the key codes, and comes with an additional utility function for checking the pressed state of keys. The API is heavily influenced by the `Key` class from the olden days of ActionScript 2.0.
## Usage
### CommonJS
```js
var KeyJS = require('key-js');
```
### `<script>` Tag
When loaded through a `<script>` tag in the browser, `KeyJS` will become a global variable on the `window` object.
### Retrieving Key Code Constants
The `KeyJS` object exposes the key code values as values attached to the object itself. See below:
```js
console.log(KeyJS.A); // 65
console.log(KeyJS.ENTER); // 13
console.log(KeyJS.SPACEBAR); // 32
```
See [key.js](key.js) for a full list of all the constants
### Checking the state of the Keyboard
By default `KeyJS` will not listen for Keyboard events. You can use the function `KeyJS.startCapture()` to start the listeners. The full API can then be accessed as outlined below:
`KeyJS.startCapture(target = null)` - Starts listening for keyboard events on the `target` DOM element. By default this will be set to the `window` object. Note that keyboard events are only tracked while the `target` has focus. This means you don't have to worry about key presses becoming "stuck" in the pressed state when focus is lost.
`KeyJS.endCapture()` - Stops listening for keyboard events.
`KeyJS.isDown(keyCode)` - Checks the "pressed" state of the specified key specified by its key code.
#### Example Code
```js
var KeyJS = require('key-js');
KeyJS.startCapture();
setInterval(function () {
// Check console to see when spacebar is pressed
console.log('Spacebar pressed: ' + KeyJS.isDown(KeyJS.SPACEBAR));
}, 100);
```