mirror of
https://github.com/photonstorm/phaser
synced 2025-02-17 14:38:30 +00:00
Tided up the Key handler.
This commit is contained in:
parent
8fd0a7a531
commit
fbb591fd94
4 changed files with 32 additions and 10 deletions
|
@ -1,4 +1,4 @@
|
|||
var CHECKSUM = {
|
||||
build: '79e0cfa0-f84f-11e6-aabb-e9b6cbc3e561'
|
||||
build: '2d175030-f855-11e6-8baa-a7d5f1237a30'
|
||||
};
|
||||
module.exports = CHECKSUM;
|
|
@ -2,6 +2,8 @@ var EventDispatcher = require('../../events/EventDispatcher');
|
|||
var Event = require('./events');
|
||||
var KeyCodes = require('./keys/KeyCodes');
|
||||
var Key = require('./keys/Key');
|
||||
var KeyCombo = require('./combo/KeyCombo');
|
||||
var ProcessKeyCombo = require('./combo/ProcessKeyCombo');
|
||||
var ProcessKeyDown = require('./keys/ProcessKeyDown');
|
||||
var ProcessKeyUp = require('./keys/ProcessKeyUp');
|
||||
|
||||
|
@ -31,6 +33,8 @@ var KeyboardManager = function (inputManager)
|
|||
|
||||
this.keys = [];
|
||||
|
||||
this.combos = [];
|
||||
|
||||
// Standard FIFO queue
|
||||
this.queue = [];
|
||||
|
||||
|
@ -137,14 +141,16 @@ KeyboardManager.prototype = {
|
|||
* @param {integer} keycode - The {@link Phaser.KeyCode keycode} of the key.
|
||||
* @return {Phaser.Key} The Key object which you can store locally and reference directly.
|
||||
*/
|
||||
addKey: function (keycode, name)
|
||||
addKey: function (keyCode)
|
||||
{
|
||||
if (!this.keys[keycode])
|
||||
var keys = this.keys;
|
||||
|
||||
if (!keys[keyCode])
|
||||
{
|
||||
this.keys[keycode] = new Key(this, keycode, name);
|
||||
keys[keyCode] = new Key(keyCode);
|
||||
}
|
||||
|
||||
return this.keys[keycode];
|
||||
return keys[keyCode];
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -161,6 +167,15 @@ KeyboardManager.prototype = {
|
|||
}
|
||||
},
|
||||
|
||||
addKeyCombo: function (keys, config)
|
||||
{
|
||||
var combo = KeyCombo(keys, config);
|
||||
|
||||
this.combos.push(combo);
|
||||
|
||||
return combo;
|
||||
},
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/KeyboardEvent
|
||||
// type = 'keydown', 'keyup'
|
||||
// keyCode = integer
|
||||
|
@ -177,6 +192,7 @@ KeyboardManager.prototype = {
|
|||
var queue = this.queue.splice(0, this.queue.length);
|
||||
|
||||
var keys = this.keys;
|
||||
var singleKey;
|
||||
|
||||
// Process the event queue, dispatching all of the events that have stored up
|
||||
for (var i = 0; i < queue.length; i++)
|
||||
|
@ -187,9 +203,11 @@ KeyboardManager.prototype = {
|
|||
{
|
||||
this.events.dispatch(new Event.KEY_DOWN_EVENT(event));
|
||||
|
||||
if (Event._DOWN[event.keyCode])
|
||||
singleKey = Event._DOWN[event.keyCode];
|
||||
|
||||
if (singleKey)
|
||||
{
|
||||
this.events.dispatch(new Event._DOWN[event.keyCode](event));
|
||||
this.events.dispatch(new singleKey(event));
|
||||
}
|
||||
|
||||
if (keys[event.keyCode])
|
||||
|
@ -201,9 +219,11 @@ KeyboardManager.prototype = {
|
|||
{
|
||||
this.events.dispatch(new Event.KEY_UP_EVENT(event));
|
||||
|
||||
if (Event._UP[event.keyCode])
|
||||
singleKey = Event._UP[event.keyCode];
|
||||
|
||||
if (singleKey)
|
||||
{
|
||||
this.events.dispatch(new Event._UP[event.keyCode](event));
|
||||
this.events.dispatch(new singleKey(event));
|
||||
}
|
||||
|
||||
if (keys[event.keyCode])
|
||||
|
|
|
@ -7,6 +7,8 @@ module.exports = {
|
|||
Key: require('./keys/Key'),
|
||||
KeyCodes: require('./keys/KeyCodes'),
|
||||
|
||||
KeyCombo: require('./combo/KeyCombo'),
|
||||
|
||||
JustDown: require('./keys/JustDown'),
|
||||
JustUp: require('./keys/JustUp'),
|
||||
DownDuration: require('./keys/DownDuration'),
|
||||
|
|
|
@ -18,7 +18,7 @@ var Key = function (keyCode)
|
|||
* @property {boolean} preventDefault - Should this Key prevent event propagation?
|
||||
* @default
|
||||
*/
|
||||
this.preventDefault = false;
|
||||
this.preventDefault = true;
|
||||
|
||||
/**
|
||||
* @property {boolean} enabled - Can this Key be processed?
|
||||
|
|
Loading…
Add table
Reference in a new issue