@vpmedia/phaser 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/phaser.cjs.LICENSE.txt +1 -1
  2. package/dist/phaser.js.LICENSE.txt +1 -1
  3. package/package.json +2 -3
  4. package/src/index.js +99 -0
  5. package/src/phaser/core/animation.js +355 -0
  6. package/src/phaser/core/animation_manager.js +238 -0
  7. package/src/phaser/core/animation_parser.js +130 -0
  8. package/src/phaser/core/array_set.js +108 -0
  9. package/src/phaser/core/cache.js +558 -0
  10. package/src/phaser/core/const.js +106 -0
  11. package/src/phaser/core/device.js +67 -0
  12. package/src/phaser/core/device_util.js +386 -0
  13. package/src/phaser/core/dom.js +207 -0
  14. package/src/phaser/core/event_manager.js +243 -0
  15. package/src/phaser/core/factory.js +74 -0
  16. package/src/phaser/core/frame.js +75 -0
  17. package/src/phaser/core/frame_data.js +84 -0
  18. package/src/phaser/core/frame_util.js +31 -0
  19. package/src/phaser/core/game.js +412 -0
  20. package/src/phaser/core/input.js +401 -0
  21. package/src/phaser/core/input_button.js +102 -0
  22. package/src/phaser/core/input_handler.js +687 -0
  23. package/src/phaser/core/input_mouse.js +289 -0
  24. package/src/phaser/core/input_mspointer.js +197 -0
  25. package/src/phaser/core/input_pointer.js +427 -0
  26. package/src/phaser/core/input_touch.js +157 -0
  27. package/src/phaser/core/loader.js +946 -0
  28. package/src/phaser/core/loader_parser.js +105 -0
  29. package/src/phaser/core/raf.js +46 -0
  30. package/src/phaser/core/raf_fb.js +75 -0
  31. package/src/phaser/core/raf_to.js +34 -0
  32. package/src/phaser/core/scale_manager.js +806 -0
  33. package/src/phaser/core/scene.js +66 -0
  34. package/src/phaser/core/scene_manager.js +310 -0
  35. package/src/phaser/core/signal.js +175 -0
  36. package/src/phaser/core/signal_binding.js +69 -0
  37. package/src/phaser/core/sound.js +538 -0
  38. package/src/phaser/core/sound_manager.js +365 -0
  39. package/src/phaser/core/stage.js +108 -0
  40. package/src/phaser/core/time.js +203 -0
  41. package/src/phaser/core/timer.js +276 -0
  42. package/src/phaser/core/timer_event.js +21 -0
  43. package/src/phaser/core/tween.js +329 -0
  44. package/src/phaser/core/tween_data.js +258 -0
  45. package/src/phaser/core/tween_easing.js +316 -0
  46. package/src/phaser/core/tween_manager.js +185 -0
  47. package/src/phaser/core/world.js +18 -0
  48. package/src/phaser/display/bitmap_text.js +322 -0
  49. package/src/phaser/display/button.js +194 -0
  50. package/src/phaser/display/canvas/buffer.js +36 -0
  51. package/src/phaser/display/canvas/graphics.js +227 -0
  52. package/src/phaser/display/canvas/masker.js +39 -0
  53. package/src/phaser/display/canvas/pool.js +121 -0
  54. package/src/phaser/display/canvas/renderer.js +123 -0
  55. package/src/phaser/display/canvas/tinter.js +141 -0
  56. package/src/phaser/display/canvas/util.js +151 -0
  57. package/src/phaser/display/display_object.js +597 -0
  58. package/src/phaser/display/graphics.js +723 -0
  59. package/src/phaser/display/graphics_data.js +27 -0
  60. package/src/phaser/display/graphics_data_util.js +14 -0
  61. package/src/phaser/display/group.js +227 -0
  62. package/src/phaser/display/image.js +288 -0
  63. package/src/phaser/display/sprite_batch.js +15 -0
  64. package/src/phaser/display/sprite_util.js +248 -0
  65. package/src/phaser/display/text.js +1089 -0
  66. package/src/phaser/display/webgl/abstract_filter.js +25 -0
  67. package/src/phaser/display/webgl/base_texture.js +68 -0
  68. package/src/phaser/display/webgl/blend_manager.js +35 -0
  69. package/src/phaser/display/webgl/earcut.js +647 -0
  70. package/src/phaser/display/webgl/earcut_node.js +28 -0
  71. package/src/phaser/display/webgl/fast_sprite_batch.js +242 -0
  72. package/src/phaser/display/webgl/filter_manager.js +46 -0
  73. package/src/phaser/display/webgl/filter_texture.js +61 -0
  74. package/src/phaser/display/webgl/graphics.js +618 -0
  75. package/src/phaser/display/webgl/graphics_data.js +42 -0
  76. package/src/phaser/display/webgl/mask_manager.js +36 -0
  77. package/src/phaser/display/webgl/render_texture.js +81 -0
  78. package/src/phaser/display/webgl/renderer.js +234 -0
  79. package/src/phaser/display/webgl/shader/complex.js +74 -0
  80. package/src/phaser/display/webgl/shader/fast.js +97 -0
  81. package/src/phaser/display/webgl/shader/normal.js +225 -0
  82. package/src/phaser/display/webgl/shader/primitive.js +72 -0
  83. package/src/phaser/display/webgl/shader/strip.js +77 -0
  84. package/src/phaser/display/webgl/shader_manager.js +89 -0
  85. package/src/phaser/display/webgl/sprite_batch.js +320 -0
  86. package/src/phaser/display/webgl/stencil_manager.js +170 -0
  87. package/src/phaser/display/webgl/texture.js +117 -0
  88. package/src/phaser/display/webgl/texture_util.js +32 -0
  89. package/src/phaser/display/webgl/util.js +74 -0
  90. package/src/phaser/geom/circle.js +186 -0
  91. package/src/phaser/geom/ellipse.js +65 -0
  92. package/src/phaser/geom/line.js +190 -0
  93. package/src/phaser/geom/matrix.js +147 -0
  94. package/src/phaser/geom/point.js +164 -0
  95. package/src/phaser/geom/polygon.js +141 -0
  96. package/src/phaser/geom/rectangle.js +306 -0
  97. package/src/phaser/geom/rounded_rectangle.js +36 -0
  98. package/src/phaser/geom/util/circle.js +115 -0
  99. package/src/phaser/geom/util/ellipse.js +30 -0
  100. package/src/phaser/geom/util/line.js +130 -0
  101. package/src/phaser/geom/util/matrix.js +48 -0
  102. package/src/phaser/geom/util/point.js +276 -0
  103. package/src/phaser/geom/util/polygon.js +24 -0
  104. package/src/phaser/geom/util/rectangle.js +212 -0
  105. package/src/phaser/geom/util/rounded_rectangle.js +28 -0
  106. package/src/phaser/util/math.js +279 -0
  107. package/src/phaser/util/string.js +26 -0
@@ -0,0 +1,289 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+ import Signal from './signal';
7
+
8
+ const NO_BUTTON = -1;
9
+ const LEFT_BUTTON = 0;
10
+ const MIDDLE_BUTTON = 1;
11
+ const RIGHT_BUTTON = 2;
12
+ const BACK_BUTTON = 3;
13
+ const FORWARD_BUTTON = 4;
14
+ const WHEEL_UP = 1;
15
+ const WHEEL_DOWN = -1;
16
+
17
+ class WheelEventProxy {
18
+
19
+ constructor(scaleFactor, deltaMode) {
20
+ this._scaleFactor = scaleFactor;
21
+ this._deltaMode = deltaMode;
22
+ this.originalEvent = null;
23
+ this.type = 'wheel';
24
+ this.deltaZ = { value: 0 };
25
+ }
26
+
27
+ bindEvent(event) {
28
+ // TODO
29
+ console.warn('input_mouse.bindEvent() is not implemented');
30
+ /*
31
+ if (!window.PhaserRegistry.isMouseWheelEventBinded && event) {
32
+ const makeBinder = (name) => {
33
+ return () => {
34
+ const v = this.originalEvent[name];
35
+ return typeof v !== 'function' ? v : v.bind(this.originalEvent);
36
+ };
37
+ };
38
+ window.PhaserRegistry.isMouseWheelEventBinded = true;
39
+ }
40
+ */
41
+ this.originalEvent = event;
42
+ return this;
43
+ }
44
+
45
+ get deltaMode() {
46
+ return this._deltaMode;
47
+ }
48
+
49
+ get deltaY() {
50
+ return (this._scaleFactor * (this.originalEvent.wheelDelta || this.originalEvent.detail)) || 0;
51
+ }
52
+
53
+ get deltaX() {
54
+ return (this._scaleFactor * this.originalEvent.wheelDeltaX) || 0;
55
+ }
56
+
57
+ }
58
+
59
+ export default class {
60
+
61
+ constructor(game) {
62
+ this.game = game;
63
+ this.input = game.input;
64
+ this.callbackContext = this.game;
65
+ this.mouseDownCallback = null;
66
+ this.mouseUpCallback = null;
67
+ this.mouseOutCallback = null;
68
+ this.mouseOverCallback = null;
69
+ this.mouseWheelCallback = null;
70
+ this.capture = false;
71
+ this.button = -1;
72
+ this.wheelDelta = 0;
73
+ this.enabled = true;
74
+ this.locked = false;
75
+ this.stopOnGameOut = false;
76
+ this.pointerLock = new Signal();
77
+ this.event = null;
78
+ this._onMouseDown = null;
79
+ this._onMouseMove = null;
80
+ this._onMouseUp = null;
81
+ this._onMouseOut = null;
82
+ this._onMouseOver = null;
83
+ this._onMouseWheel = null;
84
+ this._wheelEvent = null;
85
+ }
86
+
87
+ start() {
88
+ if (this.game.device.android && this.game.device.chrome === false) {
89
+ // Android stock browser fires mouse events even if you preventDefault on the touchStart, so ...
90
+ return;
91
+ }
92
+ if (this._onMouseDown !== null) {
93
+ // Avoid setting multiple listeners
94
+ return;
95
+ }
96
+ const scope = this;
97
+ this._onMouseDown = event => scope.onMouseDown(event);
98
+ this._onMouseMove = event => scope.onMouseMove(event);
99
+ this._onMouseUp = event => scope.onMouseUp(event);
100
+ this._onMouseUpGlobal = event => scope.onMouseUpGlobal(event);
101
+ this._onMouseOutGlobal = event => scope.onMouseOutGlobal(event);
102
+ this._onMouseOut = event => scope.onMouseOut(event);
103
+ this._onMouseOver = event => scope.onMouseOver(event);
104
+ this._onMouseWheel = event => scope.onMouseWheel(event);
105
+ const canvas = this.game.canvas;
106
+ canvas.addEventListener('mousedown', this._onMouseDown, true);
107
+ canvas.addEventListener('mousemove', this._onMouseMove, true);
108
+ canvas.addEventListener('mouseup', this._onMouseUp, true);
109
+ if (!this.game.device.cocoonJS) {
110
+ window.addEventListener('mouseup', this._onMouseUpGlobal, true);
111
+ window.addEventListener('mouseout', this._onMouseOutGlobal, true);
112
+ canvas.addEventListener('mouseover', this._onMouseOver, true);
113
+ canvas.addEventListener('mouseout', this._onMouseOut, true);
114
+ }
115
+ const wheelEvent = this.game.device.wheelEvent;
116
+ if (wheelEvent) {
117
+ canvas.addEventListener(wheelEvent, this._onMouseWheel, true);
118
+ if (wheelEvent === 'mousewheel') {
119
+ this._wheelEvent = new WheelEventProxy(-1 / 40, 1);
120
+ } else if (wheelEvent === 'DOMMouseScroll') {
121
+ this._wheelEvent = new WheelEventProxy(1, 1);
122
+ }
123
+ }
124
+ }
125
+
126
+ stop() {
127
+ const canvas = this.game.canvas;
128
+ canvas.removeEventListener('mousedown', this._onMouseDown, true);
129
+ canvas.removeEventListener('mousemove', this._onMouseMove, true);
130
+ canvas.removeEventListener('mouseup', this._onMouseUp, true);
131
+ canvas.removeEventListener('mouseover', this._onMouseOver, true);
132
+ canvas.removeEventListener('mouseout', this._onMouseOut, true);
133
+ const wheelEvent = this.game.device.wheelEvent;
134
+ if (wheelEvent) {
135
+ canvas.removeEventListener(wheelEvent, this._onMouseWheel, true);
136
+ }
137
+ window.removeEventListener('mouseup', this._onMouseUpGlobal, true);
138
+ window.removeEventListener('mouseout', this._onMouseOutGlobal, true);
139
+ document.removeEventListener('pointerlockchange', this._pointerLockChange, true);
140
+ document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true);
141
+ document.removeEventListener('webkitpointerlockchange', this._pointerLockChange, true);
142
+ }
143
+
144
+ onMouseDown(event) {
145
+ this.event = event;
146
+ this.eventPreventDefault(event);
147
+ if (this.mouseDownCallback) {
148
+ this.mouseDownCallback.call(this.callbackContext, event);
149
+ }
150
+ if (!this.input.enabled || !this.enabled) {
151
+ return;
152
+ }
153
+ event.identifier = 0;
154
+ this.input.mousePointer.start(event);
155
+ }
156
+
157
+ onMouseMove(event) {
158
+ this.event = event;
159
+ this.eventPreventDefault(event);
160
+ if (this.mouseMoveCallback) {
161
+ this.mouseMoveCallback.call(this.callbackContext, event);
162
+ }
163
+ if (!this.input.enabled || !this.enabled) {
164
+ return;
165
+ }
166
+ event.identifier = 0;
167
+ this.input.mousePointer.move(event);
168
+ }
169
+
170
+ onMouseUp(event) {
171
+ this.event = event;
172
+ this.eventPreventDefault(event);
173
+ if (this.mouseUpCallback) {
174
+ this.mouseUpCallback.call(this.callbackContext, event);
175
+ }
176
+ if (!this.input.enabled || !this.enabled) {
177
+ return;
178
+ }
179
+ event.identifier = 0;
180
+ this.input.mousePointer.stop(event);
181
+ }
182
+
183
+ onMouseUpGlobal(event) {
184
+ if (!this.input.mousePointer.withinGame) {
185
+ if (this.mouseUpCallback) {
186
+ this.mouseUpCallback.call(this.callbackContext, event);
187
+ }
188
+ event.identifier = 0;
189
+ this.input.mousePointer.stop(event);
190
+ }
191
+ }
192
+
193
+ onMouseOutGlobal(event) {
194
+ this.event = event;
195
+ this.eventPreventDefault(event);
196
+ this.input.mousePointer.withinGame = false;
197
+ if (!this.input.enabled || !this.enabled) {
198
+ return;
199
+ }
200
+ // If we get a mouseout event from the window then basically
201
+ // something serious has gone down, usually along the lines of
202
+ // the browser opening a context-menu or similar.
203
+ // On OS X Chrome especially this is bad news, as it blocks
204
+ // us then getting a mouseup event, so we need to force that through.
205
+ this.input.mousePointer.stop(event);
206
+ }
207
+
208
+ onMouseOut(event) {
209
+ this.event = event;
210
+ this.eventPreventDefault(event);
211
+ this.input.mousePointer.withinGame = false;
212
+ if (this.mouseOutCallback) {
213
+ this.mouseOutCallback.call(this.callbackContext, event);
214
+ }
215
+ if (!this.input.enabled || !this.enabled) {
216
+ return;
217
+ }
218
+ if (this.stopOnGameOut) {
219
+ event.identifier = 0;
220
+ this.input.mousePointer.stop(event);
221
+ }
222
+ }
223
+
224
+ onMouseOver(event) {
225
+ this.event = event;
226
+ this.eventPreventDefault(event);
227
+ this.input.mousePointer.withinGame = true;
228
+ if (this.mouseOverCallback) {
229
+ this.mouseOverCallback.call(this.callbackContext, event);
230
+ }
231
+ }
232
+
233
+ onMouseWheel(event) {
234
+ if (this._wheelEvent) {
235
+ event = this._wheelEvent.bindEvent(event);
236
+ }
237
+ this.event = event;
238
+ this.eventPreventDefault(event);
239
+ // reverse detail for firefox
240
+ this.wheelDelta = Math.max(-1, Math.min(1, -event.deltaY));
241
+ if (this.mouseWheelCallback) {
242
+ this.mouseWheelCallback.call(this.callbackContext, event);
243
+ }
244
+ }
245
+
246
+ requestPointerLock() {
247
+ if (this.game.device.pointerLock) {
248
+ const element = this.game.canvas;
249
+ element.requestPointerLock = element.requestPointerLock || element.mozRequestPointerLock || element.webkitRequestPointerLock;
250
+ element.requestPointerLock();
251
+ const scope = this;
252
+ this._pointerLockChange = event => scope.pointerLockChange(event);
253
+ document.addEventListener('pointerlockchange', this._pointerLockChange, true);
254
+ document.addEventListener('mozpointerlockchange', this._pointerLockChange, true);
255
+ document.addEventListener('webkitpointerlockchange', this._pointerLockChange, true);
256
+ }
257
+
258
+ }
259
+
260
+ pointerLockChange(event) {
261
+ const element = this.game.canvas;
262
+ if (document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element) {
263
+ // Pointer was successfully locked
264
+ this.locked = true;
265
+ this.pointerLock.dispatch(true, event);
266
+ } else {
267
+ // Pointer was unlocked
268
+ this.locked = false;
269
+ this.pointerLock.dispatch(false, event);
270
+ }
271
+ }
272
+
273
+ releasePointerLock() {
274
+ document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock;
275
+ document.exitPointerLock();
276
+ document.removeEventListener('pointerlockchange', this._pointerLockChange, true);
277
+ document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true);
278
+ document.removeEventListener('webkitpointerlockchange', this._pointerLockChange, true);
279
+ }
280
+
281
+ eventPreventDefault(event) {
282
+ if (this.capture) {
283
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
284
+ event.preventDefault();
285
+ }
286
+ }
287
+ }
288
+
289
+ }
@@ -0,0 +1,197 @@
1
+ /**
2
+ * @author Andras Csizmadia <andras@vpmedia.hu>
3
+ * @author Richard Davey <rich@photonstorm.com>
4
+ * @copyright Copyright (c) 2018-present Richard Davey, Photon Storm Ltd., Andras Csizmadia <andras@vpmedia.hu> (www.vpmedia.hu)
5
+ */
6
+
7
+ export default class {
8
+
9
+ constructor(game) {
10
+ this.game = game;
11
+ this.input = game.input;
12
+ this.callbackContext = this.game;
13
+ this.pointerDownCallback = null;
14
+ this.pointerMoveCallback = null;
15
+ this.pointerUpCallback = null;
16
+ this.capture = true;
17
+ this.button = -1;
18
+ this.event = null;
19
+ this.enabled = true;
20
+ this._onMSPointerDown = null;
21
+ this._onMSPointerMove = null;
22
+ this._onMSPointerUp = null;
23
+ this._onMSPointerUpGlobal = null;
24
+ this._onMSPointerOut = null;
25
+ this._onMSPointerOver = null;
26
+ }
27
+
28
+ start() {
29
+ if (!this.game.device.mspointer || this._onMSPointerDown !== null) {
30
+ return;
31
+ }
32
+ const scope = this;
33
+ this._onMSPointerDown = event => scope.onPointerDown(event);
34
+ this._onMSPointerMove = event => scope.onPointerMove(event);
35
+ this._onMSPointerUp = event => scope.onPointerUp(event);
36
+ this._onMSPointerUpGlobal = event => scope.onPointerUpGlobal(event);
37
+ this._onMSPointerOut = event => scope.onPointerOut(event);
38
+ this._onMSPointerOver = event => scope.onPointerOver(event);
39
+ const canvas = this.game.canvas;
40
+ canvas.addEventListener('MSPointerDown', this._onMSPointerDown, false);
41
+ canvas.addEventListener('MSPointerMove', this._onMSPointerMove, false);
42
+ canvas.addEventListener('MSPointerUp', this._onMSPointerUp, false);
43
+ // IE11+ uses non-prefix events
44
+ canvas.addEventListener('pointerdown', this._onMSPointerDown, false);
45
+ canvas.addEventListener('pointermove', this._onMSPointerMove, false);
46
+ canvas.addEventListener('pointerup', this._onMSPointerUp, false);
47
+ canvas.style['-ms-content-zooming'] = 'none';
48
+ canvas.style['-ms-touch-action'] = 'none';
49
+ if (!this.game.device.cocoonJS) {
50
+ window.addEventListener('MSPointerUp', this._onMSPointerUpGlobal, true);
51
+ canvas.addEventListener('MSPointerOver', this._onMSPointerOver, true);
52
+ canvas.addEventListener('MSPointerOut', this._onMSPointerOut, true);
53
+ // IE11+ uses non-prefix events
54
+ window.addEventListener('pointerup', this._onMSPointerUpGlobal, true);
55
+ canvas.addEventListener('pointerover', this._onMSPointerOver, true);
56
+ canvas.addEventListener('pointerout', this._onMSPointerOut, true);
57
+ }
58
+ }
59
+
60
+ stop() {
61
+ if (!this.game.device.mspointer) {
62
+ return;
63
+ }
64
+ const canvas = this.game.canvas;
65
+ canvas.removeEventListener('MSPointerDown', this._onMSPointerDown, false);
66
+ canvas.removeEventListener('MSPointerMove', this._onMSPointerMove, false);
67
+ canvas.removeEventListener('MSPointerUp', this._onMSPointerUp, false);
68
+ // IE11+ uses non-prefix events
69
+ canvas.removeEventListener('pointerdown', this._onMSPointerDown, false);
70
+ canvas.removeEventListener('pointermove', this._onMSPointerMove, false);
71
+ canvas.removeEventListener('pointerup', this._onMSPointerUp, false);
72
+ window.removeEventListener('MSPointerUp', this._onMSPointerUpGlobal, true);
73
+ canvas.removeEventListener('MSPointerOver', this._onMSPointerOver, true);
74
+ canvas.removeEventListener('MSPointerOut', this._onMSPointerOut, true);
75
+ // IE11+ uses non-prefix events
76
+ window.removeEventListener('pointerup', this._onMSPointerUpGlobal, true);
77
+ canvas.removeEventListener('pointerover', this._onMSPointerOver, true);
78
+ canvas.removeEventListener('pointerout', this._onMSPointerOut, true);
79
+ }
80
+
81
+ onPointerDown(event) {
82
+ this.game.input.executeTouchLockCallbacks(false, event);
83
+ this.event = event;
84
+ this.eventPreventDefault(event);
85
+ if (this.pointerDownCallback) {
86
+ this.pointerDownCallback.call(this.callbackContext, event);
87
+ }
88
+ if (!this.input.enabled || !this.enabled) {
89
+ return;
90
+ }
91
+ event.identifier = event.pointerId;
92
+ if (event.pointerType === 'mouse' || event.pointerType === 0x00000004) {
93
+ this.input.mousePointer.start(event);
94
+ } else {
95
+ this.input.startPointer(event);
96
+ }
97
+ }
98
+
99
+ onPointerMove(event) {
100
+ this.event = event;
101
+ this.eventPreventDefault(event);
102
+ if (this.pointerMoveCallback) {
103
+ this.pointerMoveCallback.call(this.callbackContext, event);
104
+ }
105
+ if (!this.input.enabled || !this.enabled) {
106
+ return;
107
+ }
108
+ event.identifier = event.pointerId;
109
+ if (event.pointerType === 'mouse' || event.pointerType === 0x00000004) {
110
+ this.input.mousePointer.move(event);
111
+ } else {
112
+ this.input.updatePointer(event);
113
+ }
114
+ }
115
+
116
+ onPointerUp(event) {
117
+ this.game.input.executeTouchLockCallbacks(true, event);
118
+ this.event = event;
119
+ this.eventPreventDefault(event);
120
+ if (this.pointerUpCallback) {
121
+ this.pointerUpCallback.call(this.callbackContext, event);
122
+ }
123
+ if (!this.input.enabled || !this.enabled) {
124
+ return;
125
+ }
126
+ event.identifier = event.pointerId;
127
+ if (event.pointerType === 'mouse' || event.pointerType === 0x00000004) {
128
+ this.input.mousePointer.stop(event);
129
+ } else {
130
+ this.input.stopPointer(event);
131
+ }
132
+ }
133
+
134
+ onPointerUpGlobal(event) {
135
+ if ((event.pointerType === 'mouse' || event.pointerType === 0x00000004) && !this.input.mousePointer.withinGame) {
136
+ this.onPointerUp(event);
137
+ } else {
138
+ const pointer = this.input.getPointerFromIdentifier(event.identifier);
139
+ if (pointer && pointer.withinGame) {
140
+ this.onPointerUp(event);
141
+ }
142
+ }
143
+ }
144
+
145
+ onPointerOut(event) {
146
+ this.event = event;
147
+ this.eventPreventDefault(event);
148
+ let pointer;
149
+ if (event.pointerType === 'mouse' || event.pointerType === 0x00000004) {
150
+ this.input.mousePointer.withinGame = false;
151
+ } else {
152
+ pointer = this.input.getPointerFromIdentifier(event.identifier);
153
+ if (pointer) {
154
+ pointer.withinGame = false;
155
+ }
156
+ }
157
+ if (this.input.mouse.mouseOutCallback) {
158
+ this.input.mouse.mouseOutCallback.call(this.input.mouse.callbackContext, event);
159
+ }
160
+ if (!this.input.enabled || !this.enabled) {
161
+ return;
162
+ }
163
+ if (this.input.mouse.stopOnGameOut) {
164
+ event.identifier = 0;
165
+ if (pointer) {
166
+ pointer.stop(event);
167
+ } else {
168
+ this.input.mousePointer.stop(event);
169
+ }
170
+ }
171
+ }
172
+
173
+ onPointerOver(event) {
174
+ this.event = event;
175
+ this.eventPreventDefault(event);
176
+ if (event.pointerType === 'mouse' || event.pointerType === 0x00000004) {
177
+ this.input.mousePointer.withinGame = true;
178
+ } else {
179
+ const pointer = this.input.getPointerFromIdentifier(event.identifier);
180
+ if (pointer) {
181
+ pointer.withinGame = true;
182
+ }
183
+ }
184
+ if (this.input.mouse.mouseOverCallback) {
185
+ this.input.mouse.mouseOverCallback.call(this.input.mouse.callbackContext, event);
186
+ }
187
+ }
188
+
189
+ eventPreventDefault(event) {
190
+ if (this.capture) {
191
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
192
+ event.preventDefault();
193
+ }
194
+ }
195
+ }
196
+
197
+ }