Navigation
These archived docs are for Phaser 2.4.4 Phaser 3 docs can be found on newdocs.phaser.io.
Phaser CE docs can be found on the Phaser CE Documentation site.

Constructor

Phaser. Keyboard

new Keyboard(game)

The Keyboard class monitors keyboard input and dispatches keyboard events.

Note: many keyboards are unable to process certain combinations of keys due to hardware limitations known as ghosting. See http://www.html5gamedevs.com/topic/4876-impossible-to-use-more-than-2-keyboard-input-buttons-at-the-same-time/ for more details.

Parameters
Name Type Description
game Phaser.Game

A reference to the currently running game.

Source code: input/Keyboard.js (Line 17)

Public Properties

callbackContext : Object

The context under which the callbacks are run.

Source code: input/Keyboard.js (Line 44)

enabled : boolean

Keyboard input will only be processed if enabled.

Default Value
  • true
Source code: input/Keyboard.js (Line 29)

event : Object

The most recent DOM event from keydown or keyup. This is updated every time a new key is pressed or released.

Source code: input/Keyboard.js (Line 34)

game : Phaser.Game

Local reference to game.

Source code: input/Keyboard.js (Line 22)

[readonly] lastChar : string

Returns the string value of the most recently pressed key.

Source code: input/Keyboard.js (Line 545)

[readonly] lastKey : Phaser.Key

Returns the most recently pressed Key. This is a Phaser.Key object and it changes every time a key is pressed.

Source code: input/Keyboard.js (Line 568)

onDownCallback : Function

This callback is invoked every time a key is pressed down, including key repeats when a key is held down.

Source code: input/Keyboard.js (Line 49)

onPressCallback : Function

This callback is invoked every time a DOM onkeypress event is raised, which is only for printable keys.

Source code: input/Keyboard.js (Line 54)

onUpCallback : Function

This callback is invoked every time a key is released.

Source code: input/Keyboard.js (Line 59)

pressEvent : Object

The most recent DOM event from keypress.

Source code: input/Keyboard.js (Line 39)

Public Methods

addCallbacks(context, onDown, onUp, onPress)

Add callbacks to the Keyboard handler so that each time a key is pressed down or released the callbacks are activated.

Parameters
Name Type Argument Default Description
context object

The context under which the callbacks are run.

onDown function <optional>
null

This callback is invoked every time a key is pressed down.

onUp function <optional>
null

This callback is invoked every time a key is released.

onPress function <optional>
null

This callback is invoked every time the onkeypress event is raised.

Source code: input/Keyboard.js (Line 110)

addKey(keycode) → {Phaser.Key}

If you need more fine-grained control over a Key you can create a new Phaser.Key object via this method. The Key object can then be polled, have events attached to it, etc.

Parameters
Name Type Description
keycode integer

The keycode of the key.

Returns

The Key object which you can store locally and reference directly.

Source code: input/Keyboard.js (Line 140)

addKeyCapture(keycode)

By default when a key is pressed Phaser will not stop the event from propagating up to the browser. There are some keys this can be annoying for, like the arrow keys or space bar, which make the browser window scroll.

The addKeyCapture method enables consuming keyboard event for specific keys so it doesn't bubble up to the the browser and cause the default browser behavior.

Pass in either a single keycode or an array/hash of keycodes.

Parameters
Name Type Description
keycode integer | Array.<integer> | object

Either a single keycode or an array/hash of keycodes such as [65, 67, 68].

Source code: input/Keyboard.js (Line 290)

addKeys(keys) → {object}

A practical way to create an object containing user selected hotkeys.

For example,

addKeys( { 'up': Phaser.KeyCode.W, 'down': Phaser.KeyCode.S, 'left': Phaser.KeyCode.A, 'right': Phaser.KeyCode.D } );

would return an object containing properties (up, down, left and right) referring to Phaser.Key object.

Parameters
Name Type Description
keys object

A key mapping object, i.e. { 'up': Phaser.KeyCode.W, 'down': Phaser.KeyCode.S } or { 'up': 52, 'down': 53 }.

Returns
object -

An object containing the properties mapped to Phaser.Key values.

Source code: input/Keyboard.js (Line 161)

clearCaptures()

Clear all set key captures.

Source code: input/Keyboard.js (Line 329)

createCursorKeys() → {object}

Creates and returns an object containing 4 hotkeys for Up, Down, Left and Right.

Returns
object -

An object containing properties: up, down, left and right of Phaser.Key objects.

Source code: input/Keyboard.js (Line 204)

destroy()

Stops the Keyboard event listeners from running (keydown and keyup). They are removed from the window. Also clears all key captures and currently created Key objects.

Source code: input/Keyboard.js (Line 273)

downDuration(keycode, duration) → {boolean}

Returns true if the Key was pressed down within the duration value given, or false if it either isn't down, or was pressed down longer ago than then given duration.

Parameters
Name Type Argument Default Description
keycode integer

The keycode of the key to check: i.e. Phaser.KeyCode.UP or Phaser.KeyCode.SPACEBAR.

duration number <optional>
50

The duration within which the key is considered as being just pressed. Given in ms.

Returns
boolean -

True if the key was pressed down within the given duration, false if not or null if the Key wasn't found.

Source code: input/Keyboard.js (Line 479)

isDown(keycode) → {boolean}

Returns true of the key is currently pressed down. Note that it can only detect key presses on the web browser.

Parameters
Name Type Description
keycode integer

The keycode of the key to check: i.e. Phaser.KeyCode.UP or Phaser.KeyCode.SPACEBAR.

Returns
boolean -

True if the key is currently down, false if not or null if the Key wasn't found.

Source code: input/Keyboard.js (Line 523)

<internal> processKeyDown(event)

Process the keydown event.

Parameters
Name Type Description
event KeyboardEvent
Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: input/Keyboard.js (Line 359)

<internal> processKeyPress(event)

Process the keypress event.

Parameters
Name Type Description
event KeyboardEvent
Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: input/Keyboard.js (Line 397)

<internal> processKeyUp(event)

Process the keyup event.

Parameters
Name Type Description
event KeyboardEvent
Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: input/Keyboard.js (Line 420)

removeKey(keycode)

Removes a Key object from the Keyboard manager.

Parameters
Name Type Description
keycode integer

The keycode of the key to remove.

Source code: input/Keyboard.js (Line 187)

removeKeyCapture(keycode)

Removes an existing key capture.

Parameters
Name Type Description
keycode integer

The keycode to remove capturing of.

Source code: input/Keyboard.js (Line 317)

reset(hard)

Resets all Keys.

Parameters
Name Type Argument Default Description
hard boolean <optional>
true

A soft reset won't reset any events or callbacks that are bound to the Keys. A hard reset will.

Source code: input/Keyboard.js (Line 455)

<internal> start()

Starts the Keyboard event listeners running (keydown and keyup). They are attached to the window. This is called automatically by Phaser.Input and should not normally be invoked directly.

Internal:
  • This member is internal (protected) and may be modified or removed in the future.
Source code: input/Keyboard.js (Line 216)

stop()

Stops the Keyboard event listeners from running (keydown, keyup and keypress). They are removed from the window.

Source code: input/Keyboard.js (Line 256)

update()

Updates all currently defined keys.

Source code: input/Keyboard.js (Line 340)

upDuration(keycode, duration) → {boolean}

Returns true if the Key was pressed down within the duration value given, or false if it either isn't down, or was pressed down longer ago than then given duration.

Parameters
Name Type Argument Default Description
keycode Phaser.KeyCode | integer

The keycode of the key to check, i.e. Phaser.KeyCode.UP or Phaser.KeyCode.SPACEBAR.

duration number <optional>
50

The duration within which the key is considered as being just released. Given in ms.

Returns
boolean -

True if the key was released within the given duration, false if not or null if the Key wasn't found.

Source code: input/Keyboard.js (Line 501)