Skip to content

Commit cc26ccb

Browse files
committed
Updated Input Manager to run the show
1 parent b6b7715 commit cc26ccb

5 files changed

Lines changed: 69 additions & 82 deletions

File tree

v3/src/checksum.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
var CHECKSUM = {
2-
build: 'ef0a8d80-4fc4-11e7-8a79-a19b26898a36'
2+
build: '214dcc80-5097-11e7-9900-0395e9b33639'
33
};
44
module.exports = CHECKSUM;

v3/src/input/GlobalInputManager.js

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@
22

33
var Keyboard = require('./keyboard/KeyboardManager');
44
var Mouse = require('./mouse/MouseManager');
5+
var MouseEvent = require('./mouse/events/');
6+
var EventDispatcher = require('../events/EventDispatcher');
57

68
var GlobalInputManager = function (game, gameConfig)
79
{
810
this.game = game;
911

1012
this.gameConfig = gameConfig;
1113

14+
this.enabled = true;
15+
16+
this.events = new EventDispatcher();
17+
18+
// Standard FIFO queue
19+
this.queue = [];
20+
21+
// Listeners
1222
this.keyboard = new Keyboard(this);
1323
this.mouse = new Mouse(this);
1424
};
@@ -33,7 +43,38 @@ GlobalInputManager.prototype = {
3343
update: function ()
3444
{
3545
this.keyboard.update();
36-
this.mouse.update();
46+
47+
var len = this.queue.length;
48+
49+
if (!this.enabled || len === 0)
50+
{
51+
return;
52+
}
53+
54+
// Clears the queue array, and also means we don't work on array data that could potentially
55+
// be modified during the processing phase
56+
var queue = this.queue.splice(0, len);
57+
58+
// Process the event queue, dispatching all of the events that have stored up
59+
for (var i = 0; i < len; i++)
60+
{
61+
var event = queue[i];
62+
63+
switch (event.type)
64+
{
65+
case 'mousemove':
66+
this.events.dispatch(new MouseEvent.MOVE(event));
67+
break;
68+
69+
case 'mousedown':
70+
this.events.dispatch(new MouseEvent.DOWN(event));
71+
break;
72+
73+
case 'mouseup':
74+
this.events.dispatch(new MouseEvent.UP(event));
75+
break;
76+
}
77+
}
3778
}
3879

3980
};

v3/src/input/keyboard/KeyboardManager.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
var EventDispatcher = require('../../events/EventDispatcher');
21
var Event = require('./events');
32
var KeyCodes = require('./keys/KeyCodes');
43
var Key = require('./keys/Key');
@@ -29,8 +28,6 @@ var KeyboardManager = function (inputManager)
2928

3029
this.target;
3130

32-
this.events = new EventDispatcher();
33-
3431
this.keys = [];
3532

3633
this.combos = [];
@@ -40,7 +37,7 @@ var KeyboardManager = function (inputManager)
4037
// Standard FIFO queue
4138
this.queue = [];
4239

43-
this.keyHandler;
40+
this.handler;
4441
};
4542

4643
KeyboardManager.prototype.constructor = KeyboardManager;
@@ -72,7 +69,7 @@ KeyboardManager.prototype = {
7269
var queue = this.queue;
7370
var captures = this.captures;
7471

75-
var keyHandler = function (event)
72+
var handler = function (event)
7673
{
7774
if (event.preventDefaulted)
7875
{
@@ -88,16 +85,16 @@ KeyboardManager.prototype = {
8885
}
8986
};
9087

91-
this.keyHandler = keyHandler;
88+
this.handler = handler;
9289

93-
this.target.addEventListener('keydown', keyHandler, false);
94-
this.target.addEventListener('keyup', keyHandler, false);
90+
this.target.addEventListener('keydown', handler, false);
91+
this.target.addEventListener('keyup', handler, false);
9592
},
9693

9794
stopListeners: function ()
9895
{
99-
this.target.removeEventListener('keydown', this.keyHandler);
100-
this.target.removeEventListener('keyup', this.keyHandler);
96+
this.target.removeEventListener('keydown', this.handler);
97+
this.target.removeEventListener('keyup', this.handler);
10198
},
10299

103100
/**
@@ -235,13 +232,13 @@ KeyboardManager.prototype = {
235232

236233
if (event.type === 'keydown')
237234
{
238-
this.events.dispatch(new Event.KEY_DOWN_EVENT(event));
235+
this.manager.events.dispatch(new Event.KEY_DOWN_EVENT(event));
239236

240237
singleKey = Event._DOWN[event.keyCode];
241238

242239
if (singleKey)
243240
{
244-
this.events.dispatch(new singleKey(event));
241+
this.manager.events.dispatch(new singleKey(event));
245242
}
246243

247244
if (keys[event.keyCode])
@@ -251,13 +248,13 @@ KeyboardManager.prototype = {
251248
}
252249
else
253250
{
254-
this.events.dispatch(new Event.KEY_UP_EVENT(event));
251+
this.manager.events.dispatch(new Event.KEY_UP_EVENT(event));
255252

256253
singleKey = Event._UP[event.keyCode];
257254

258255
if (singleKey)
259256
{
260-
this.events.dispatch(new singleKey(event));
257+
this.manager.events.dispatch(new singleKey(event));
261258
}
262259

263260
if (keys[event.keyCode])

v3/src/input/mouse/MouseManager.js

Lines changed: 12 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
var EventDispatcher = require('../../events/EventDispatcher');
2-
var Event = require('./events');
1+
// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
2+
// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
33

44
var MouseManager = function (inputManager)
55
{
@@ -9,25 +9,13 @@ var MouseManager = function (inputManager)
99

1010
this.target;
1111

12-
this.events = new EventDispatcher();
13-
14-
this.mouseHandler;
15-
16-
// Standard FIFO queue
17-
this.queue = [];
12+
this.handler;
1813
};
1914

2015
MouseManager.prototype.constructor = MouseManager;
2116

2217
MouseManager.prototype = {
2318

24-
/**
25-
* The Boot handler is called by Phaser.Game when it first starts up.
26-
* The renderer is available by now.
27-
*
28-
* @method Phaser.Input.MouseManager#boot
29-
* @private
30-
*/
3119
boot: function ()
3220
{
3321
var config = this.manager.gameConfig;
@@ -48,9 +36,9 @@ MouseManager.prototype = {
4836

4937
startListeners: function ()
5038
{
51-
var queue = this.queue;
39+
var queue = this.manager.queue;
5240

53-
var mouseHandler = function (event)
41+
var handler = function (event)
5442
{
5543
if (event.preventDefaulted)
5644
{
@@ -61,58 +49,19 @@ MouseManager.prototype = {
6149
queue.push(event);
6250
};
6351

64-
this.mouseHandler = mouseHandler;
52+
this.handler = handler;
6553

66-
this.target.addEventListener('mousemove', mouseHandler, false);
67-
this.target.addEventListener('mousedown', mouseHandler, false);
68-
this.target.addEventListener('mouseup', mouseHandler, false);
54+
this.target.addEventListener('mousemove', handler, false);
55+
this.target.addEventListener('mousedown', handler, false);
56+
this.target.addEventListener('mouseup', handler, false);
6957
},
7058

7159
stopListeners: function ()
7260
{
73-
this.target.removeEventListener('mousemove', this.mouseHandler);
74-
this.target.removeEventListener('mousedown', this.mouseHandler);
75-
this.target.removeEventListener('mouseup', this.mouseHandler);
76-
},
77-
78-
// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
79-
// https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
80-
81-
update: function ()
82-
{
83-
var len = this.queue.length;
84-
85-
if (!this.enabled || len === 0)
86-
{
87-
return;
88-
}
89-
90-
// Clears the queue array, and also means we don't work on array data that could potentially
91-
// be modified during the processing phase
92-
var queue = this.queue.splice(0, len);
93-
94-
// Process the event queue, dispatching all of the events that have stored up
95-
for (var i = 0; i < len; i++)
96-
{
97-
var event = queue[i];
98-
99-
switch (event.type)
100-
{
101-
case 'mousemove':
102-
this.events.dispatch(new Event.MOUSE_MOVE_EVENT(event));
103-
break;
104-
105-
case 'mousedown':
106-
this.events.dispatch(new Event.MOUSE_DOWN_EVENT(event));
107-
break;
108-
109-
case 'mouseup':
110-
this.events.dispatch(new Event.MOUSE_UP_EVENT(event));
111-
break;
112-
}
113-
}
61+
this.target.removeEventListener('mousemove', this.handler);
62+
this.target.removeEventListener('mousedown', this.handler);
63+
this.target.removeEventListener('mouseup', this.handler);
11464
}
115-
11665
};
11766

11867
module.exports = MouseManager;

v3/src/input/mouse/events/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
module.exports = {
3-
MOUSE_DOWN_EVENT: require('./MouseDownEvent'),
4-
MOUSE_UP_EVENT: require('./MouseUpEvent'),
5-
MOUSE_MOVE_EVENT: require('./MouseMoveEvent')
3+
DOWN: require('./MouseDownEvent'),
4+
UP: require('./MouseUpEvent'),
5+
MOVE: require('./MouseMoveEvent')
66
};

0 commit comments

Comments
 (0)