@vpmedia/phaser 1.125.0 → 1.127.0
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.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +117 -14
- package/dist/index.js.map +1 -1
- package/dist/phaser/core/device_util.d.ts.map +1 -1
- package/dist/phaser/core/dom.d.ts.map +1 -1
- package/dist/phaser/core/game.d.ts.map +1 -1
- package/dist/phaser/core/input.d.ts.map +1 -1
- package/dist/phaser/core/input_handler.d.ts.map +1 -1
- package/dist/phaser/core/page_lifecycle.d.ts +49 -0
- package/dist/phaser/core/page_lifecycle.d.ts.map +1 -0
- package/dist/phaser/core/sound_manager.d.ts.map +1 -1
- package/package.json +1 -2
- package/src/index.ts +13 -0
- package/src/phaser/core/device_util.ts +4 -1
- package/src/phaser/core/dom.ts +2 -1
- package/src/phaser/core/frame_data.ts +1 -1
- package/src/phaser/core/game.test.ts +131 -0
- package/src/phaser/core/game.ts +5 -0
- package/src/phaser/core/input.ts +3 -2
- package/src/phaser/core/input_handler.ts +5 -4
- package/src/phaser/core/page_lifecycle.test.ts +178 -0
- package/src/phaser/core/page_lifecycle.ts +142 -0
- package/src/phaser/core/scale_manager.ts +1 -1
- package/src/phaser/core/sound_manager.ts +3 -8
- package/src/phaser/display/webgl/graphics.ts +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,8 @@ export * as Const from './phaser/core/const.js';
|
|
|
2
2
|
export { GameObjectFactory } from './phaser/core/factory.js';
|
|
3
3
|
export { Game } from './phaser/core/game.js';
|
|
4
4
|
export type { GameConfig } from './phaser/core/game.js';
|
|
5
|
+
export { getPageState, onPageStateChange, oncePageActive, PAGE_STATE_ACTIVE, PAGE_STATE_FROZEN, PAGE_STATE_HIDDEN, PAGE_STATE_PASSIVE, PAGE_STATE_TERMINATED, readPageState, startPageLifecycle, } from './phaser/core/page_lifecycle.js';
|
|
6
|
+
export type { PageState, PageStateListener } from './phaser/core/page_lifecycle.js';
|
|
5
7
|
export type { AppliedCallback, Callback, CandidateHandler, EasingFunction, InterpolationFunction, PointerMoveCallback, UserData, } from './phaser/core/callback.js';
|
|
6
8
|
export { Signal } from './phaser/core/signal.js';
|
|
7
9
|
export * as MathUtils from './phaser/util/math.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EACV,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,mCAAmC,EACnC,uCAAuC,EACvC,mCAAmC,EACnC,6BAA6B,EAC7B,sCAAsC,EACtC,+BAA+B,GAChC,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { getLogger } from "@logtape/logtape";
|
|
2
2
|
import { v4 } from "uuid";
|
|
3
|
-
import { PAGE_LIFECYCLE_STATE_ACTIVE, PAGE_LIFECYCLE_STATE_CHANGE_EVENT, addPageLifecycleCallback, getPageLifecycleEventEmitter } from "@vpmedia/simplify";
|
|
4
3
|
//#region \0rolldown/runtime.js
|
|
5
4
|
var __defProp = Object.defineProperty;
|
|
6
5
|
var __exportAll = (all, no_symbols) => {
|
|
@@ -3947,7 +3946,7 @@ var FrameData = class {
|
|
|
3947
3946
|
}
|
|
3948
3947
|
getFrameIndexes(frames, useNumericIndex = true, output = null) {
|
|
3949
3948
|
const result = output ?? [];
|
|
3950
|
-
if (frames
|
|
3949
|
+
if ((frames?.length ?? 0) > 0) for (const f of frames) if (useNumericIndex && this._frames[f]) result.push(this._frames[f].index);
|
|
3951
3950
|
else {
|
|
3952
3951
|
const found = this.getFrameByName(f);
|
|
3953
3952
|
if (found) result.push(found.index);
|
|
@@ -5189,7 +5188,7 @@ var InputHandler = class {
|
|
|
5189
5188
|
this.game.canvas.style.cursor = "pointer";
|
|
5190
5189
|
this._setHandCursor = true;
|
|
5191
5190
|
}
|
|
5192
|
-
if (!silent && sendEvent && this.sprite
|
|
5191
|
+
if (!silent && sendEvent && this.sprite?.events) this.sprite.events.onInputOver$dispatch(this.sprite, pointer);
|
|
5193
5192
|
if (this.sprite.parent && this.sprite.parent.type === 7) this.sprite.parent.onChildInputOver.dispatch(this.sprite, pointer);
|
|
5194
5193
|
}
|
|
5195
5194
|
}
|
|
@@ -5208,7 +5207,7 @@ var InputHandler = class {
|
|
|
5208
5207
|
this.game.canvas.style.cursor = "default";
|
|
5209
5208
|
this._setHandCursor = false;
|
|
5210
5209
|
}
|
|
5211
|
-
if (!silent && this.sprite
|
|
5210
|
+
if (!silent && this.sprite?.events) {
|
|
5212
5211
|
this.sprite.events.onInputOut$dispatch(this.sprite, pointer);
|
|
5213
5212
|
if (this.sprite?.parent?.type === 7) this.sprite.parent.onChildInputOut.dispatch(this.sprite, pointer);
|
|
5214
5213
|
}
|
|
@@ -5227,7 +5226,7 @@ var InputHandler = class {
|
|
|
5227
5226
|
data.timeDown = this.game.time.time;
|
|
5228
5227
|
this.downPoint.setTo(pointer.x, pointer.y);
|
|
5229
5228
|
pointer.dirty = true;
|
|
5230
|
-
if (this.sprite
|
|
5229
|
+
if (this.sprite?.events) {
|
|
5231
5230
|
this.sprite.events.onInputDown$dispatch(this.sprite, pointer);
|
|
5232
5231
|
if (this.sprite?.parent?.type === 7) this.sprite.parent.onChildInputDown.dispatch(this.sprite, pointer);
|
|
5233
5232
|
if (this.sprite === null) return;
|
|
@@ -5266,7 +5265,7 @@ var InputHandler = class {
|
|
|
5266
5265
|
data.timeUp = this.game.time.time;
|
|
5267
5266
|
data.downDuration = data.timeUp - data.timeDown;
|
|
5268
5267
|
let isOver = this.checkPointerOver(pointer);
|
|
5269
|
-
if (this.sprite
|
|
5268
|
+
if (this.sprite?.events) {
|
|
5270
5269
|
if (!this.dragStopBlocksInputUp || this.dragStopBlocksInputUp && !(this.draggable && this.isDragged && this._draggedPointerID === pointer.id)) this.sprite.events.onInputUp$dispatch(this.sprite, pointer, isOver);
|
|
5271
5270
|
if (this.sprite?.parent?.type === 7) this.sprite.parent.onChildInputUp.dispatch(this.sprite, pointer, isOver);
|
|
5272
5271
|
if (isOver) isOver = this.checkPointerOver(pointer);
|
|
@@ -7737,7 +7736,7 @@ const buildPoly = (graphicsData, webGLData) => {
|
|
|
7737
7736
|
const g = color[1] * alpha;
|
|
7738
7737
|
const b = color[2] * alpha;
|
|
7739
7738
|
const triangles = triangulate(points, null, 2);
|
|
7740
|
-
if (triangles
|
|
7739
|
+
if (!triangles?.length) return false;
|
|
7741
7740
|
const vertPos = verts.length / 6;
|
|
7742
7741
|
for (let i = 0; i < triangles.length; i += 3) {
|
|
7743
7742
|
indices.push(triangles[i] + vertPos);
|
|
@@ -12930,7 +12929,7 @@ const checkFullScreenSupport = (device) => {
|
|
|
12930
12929
|
device.cancelFullscreen = name;
|
|
12931
12930
|
break;
|
|
12932
12931
|
}
|
|
12933
|
-
if (Element.ALLOW_KEYBOARD_INPUT !== void 0) device.fullscreenKeyboard = true;
|
|
12932
|
+
if (globalThis.Element && Element.ALLOW_KEYBOARD_INPUT !== void 0) device.fullscreenKeyboard = true;
|
|
12934
12933
|
}
|
|
12935
12934
|
};
|
|
12936
12935
|
/**
|
|
@@ -14535,7 +14534,8 @@ var Input = class {
|
|
|
14535
14534
|
if (!displayObject.worldVisible) return false;
|
|
14536
14535
|
this.getLocalPosition(displayObject, pointer, this._localPoint);
|
|
14537
14536
|
localPoint.copyFrom(this._localPoint);
|
|
14538
|
-
|
|
14537
|
+
const { hitArea } = displayObject;
|
|
14538
|
+
if (hitArea && hitArea.contains) return hitArea.contains(this._localPoint.x, this._localPoint.y);
|
|
14539
14539
|
else if (displayObject instanceof Image$1) {
|
|
14540
14540
|
const { width } = displayObject.texture.frame;
|
|
14541
14541
|
const { height } = displayObject.texture.frame;
|
|
@@ -15819,7 +15819,8 @@ var DOM = class {
|
|
|
15819
15819
|
* @returns {boolean} True if bounds were successfully retrieved, false otherwise.
|
|
15820
15820
|
*/
|
|
15821
15821
|
getBounds(element, cushion = 0) {
|
|
15822
|
-
const
|
|
15822
|
+
const wrapped = element;
|
|
15823
|
+
const target = wrapped && !wrapped.nodeType ? element[0] : wrapped;
|
|
15823
15824
|
if (target?.nodeType !== 1) return false;
|
|
15824
15825
|
return this.calibrate(target.getBoundingClientRect(), cushion);
|
|
15825
15826
|
}
|
|
@@ -16261,7 +16262,7 @@ var ScaleManager = class {
|
|
|
16261
16262
|
this.aspectRatio = this.width / this.height;
|
|
16262
16263
|
if (this.game.canvas) this.dom.getOffset(this.game.canvas, this.offset);
|
|
16263
16264
|
this.bounds.setTo(this.offset.x, this.offset.y, this.width, this.height);
|
|
16264
|
-
if (this.game.input) this.game.input.scale.setTo(this.scaleFactor.x, this.scaleFactor.y);
|
|
16265
|
+
if (this.game.input?.scale) this.game.input.scale.setTo(this.scaleFactor.x, this.scaleFactor.y);
|
|
16265
16266
|
}
|
|
16266
16267
|
/**
|
|
16267
16268
|
* TBD.
|
|
@@ -17593,6 +17594,103 @@ var SoundSprite = class {
|
|
|
17593
17594
|
}
|
|
17594
17595
|
};
|
|
17595
17596
|
//#endregion
|
|
17597
|
+
//#region src/phaser/core/page_lifecycle.ts
|
|
17598
|
+
/**
|
|
17599
|
+
* A minimal page lifecycle observer.
|
|
17600
|
+
* @see https://developer.chrome.com/docs/web-platform/page-lifecycle-api
|
|
17601
|
+
*/
|
|
17602
|
+
/** The page is visible and has focus. */
|
|
17603
|
+
const PAGE_STATE_ACTIVE = "active";
|
|
17604
|
+
/** The page is visible but does not have focus. */
|
|
17605
|
+
const PAGE_STATE_PASSIVE = "passive";
|
|
17606
|
+
/** The page is not visible. */
|
|
17607
|
+
const PAGE_STATE_HIDDEN = "hidden";
|
|
17608
|
+
/** The browser has frozen the page to reclaim its resources. */
|
|
17609
|
+
const PAGE_STATE_FROZEN = "frozen";
|
|
17610
|
+
/** The page is being unloaded. */
|
|
17611
|
+
const PAGE_STATE_TERMINATED = "terminated";
|
|
17612
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
17613
|
+
let currentState = null;
|
|
17614
|
+
let started = false;
|
|
17615
|
+
/**
|
|
17616
|
+
* Reads the state the page is in right now.
|
|
17617
|
+
* @returns {PageState} The current page state.
|
|
17618
|
+
*/
|
|
17619
|
+
const readPageState = () => {
|
|
17620
|
+
if (document.visibilityState === "hidden") return PAGE_STATE_HIDDEN;
|
|
17621
|
+
return document.hasFocus() ? PAGE_STATE_ACTIVE : PAGE_STATE_PASSIVE;
|
|
17622
|
+
};
|
|
17623
|
+
/**
|
|
17624
|
+
* Records a new state and tells the listeners, ignoring transitions to the state already held.
|
|
17625
|
+
* @param {PageState} next - The state the page has entered.
|
|
17626
|
+
*/
|
|
17627
|
+
const enterState = (next) => {
|
|
17628
|
+
const previous = currentState ?? readPageState();
|
|
17629
|
+
if (next === previous) return;
|
|
17630
|
+
currentState = next;
|
|
17631
|
+
const current = [...listeners];
|
|
17632
|
+
for (const listener of current) listener(next, previous);
|
|
17633
|
+
};
|
|
17634
|
+
/**
|
|
17635
|
+
* Starts observing the page, if it is not observed already.
|
|
17636
|
+
*/
|
|
17637
|
+
const startPageLifecycle = () => {
|
|
17638
|
+
if (started) return;
|
|
17639
|
+
started = true;
|
|
17640
|
+
currentState = readPageState();
|
|
17641
|
+
for (const type of [
|
|
17642
|
+
"pageshow",
|
|
17643
|
+
"focus",
|
|
17644
|
+
"blur",
|
|
17645
|
+
"visibilitychange",
|
|
17646
|
+
"resume"
|
|
17647
|
+
]) globalThis.addEventListener(type, (event) => {
|
|
17648
|
+
const fromElement = event.target !== globalThis && event.target !== document;
|
|
17649
|
+
if ((event.type === "blur" || event.type === "focus") && fromElement) return;
|
|
17650
|
+
enterState(readPageState());
|
|
17651
|
+
}, true);
|
|
17652
|
+
globalThis.addEventListener("freeze", () => {
|
|
17653
|
+
enterState(PAGE_STATE_FROZEN);
|
|
17654
|
+
}, true);
|
|
17655
|
+
globalThis.addEventListener("pagehide", (event) => {
|
|
17656
|
+
enterState(event.persisted ? PAGE_STATE_FROZEN : PAGE_STATE_TERMINATED);
|
|
17657
|
+
}, true);
|
|
17658
|
+
};
|
|
17659
|
+
/**
|
|
17660
|
+
* Returns the state the page is in, starting the observer on first use.
|
|
17661
|
+
* @returns {PageState} The current page state.
|
|
17662
|
+
*/
|
|
17663
|
+
const getPageState = () => {
|
|
17664
|
+
startPageLifecycle();
|
|
17665
|
+
return currentState ?? readPageState();
|
|
17666
|
+
};
|
|
17667
|
+
/**
|
|
17668
|
+
* Registers a listener for every state change.
|
|
17669
|
+
* @param {PageStateListener} listener - The listener to call on each change.
|
|
17670
|
+
* @returns {() => void} A function that removes the listener again.
|
|
17671
|
+
*/
|
|
17672
|
+
const onPageStateChange = (listener) => {
|
|
17673
|
+
startPageLifecycle();
|
|
17674
|
+
listeners.add(listener);
|
|
17675
|
+
return () => {
|
|
17676
|
+
listeners.delete(listener);
|
|
17677
|
+
};
|
|
17678
|
+
};
|
|
17679
|
+
/**
|
|
17680
|
+
* Runs a callback the next time the page becomes active, once.
|
|
17681
|
+
* @param {() => void} callback - The callback to run.
|
|
17682
|
+
* @returns {() => void} A function that cancels the pending callback.
|
|
17683
|
+
*/
|
|
17684
|
+
const oncePageActive = (callback) => {
|
|
17685
|
+
const stop = onPageStateChange((state) => {
|
|
17686
|
+
if (state === "active") {
|
|
17687
|
+
stop();
|
|
17688
|
+
callback();
|
|
17689
|
+
}
|
|
17690
|
+
});
|
|
17691
|
+
return stop;
|
|
17692
|
+
};
|
|
17693
|
+
//#endregion
|
|
17596
17694
|
//#region src/phaser/core/sound_manager.ts
|
|
17597
17695
|
var SoundManager = class {
|
|
17598
17696
|
game;
|
|
@@ -17684,7 +17782,7 @@ var SoundManager = class {
|
|
|
17684
17782
|
this.masterGain.connect(this.context.destination);
|
|
17685
17783
|
if (this.context.state === "suspended" || this.context.state === "interrupted") this.addUnlockHandlers();
|
|
17686
17784
|
this.context.addEventListener("statechange", this.onContextStateChange, false);
|
|
17687
|
-
|
|
17785
|
+
onPageStateChange(this.onPageLifecycleChange);
|
|
17688
17786
|
}
|
|
17689
17787
|
/**
|
|
17690
17788
|
* Handles page lifecycle changes for audio management.
|
|
@@ -17833,7 +17931,7 @@ var SoundManager = class {
|
|
|
17833
17931
|
error: typedError,
|
|
17834
17932
|
tags: { "asset.key": key }
|
|
17835
17933
|
});
|
|
17836
|
-
if (typedError.name === "InvalidStateError")
|
|
17934
|
+
if (typedError.name === "InvalidStateError") oncePageActive(() => {
|
|
17837
17935
|
this.decode(key);
|
|
17838
17936
|
});
|
|
17839
17937
|
else if (typedError.name === "EncodingError") this._watchList.remove(key);
|
|
@@ -20047,6 +20145,11 @@ var Game = class {
|
|
|
20047
20145
|
this.parseConfigElement(config, "renderType", 0);
|
|
20048
20146
|
this.parseConfigElement(config, "isForceDisabledAudio", false);
|
|
20049
20147
|
this.parseConfigElement(config, "maxParallelDownloads", 16);
|
|
20148
|
+
this.parseConfigElement(config, "canvas");
|
|
20149
|
+
this.parseConfigElement(config, "isSkipTicker");
|
|
20150
|
+
this.parseConfigElement(config, "scaleMode");
|
|
20151
|
+
this.parseConfigElement(config, "fullScreenScaleMode");
|
|
20152
|
+
this.parseConfigElement(config, "fullScreenTarget");
|
|
20050
20153
|
if (config.parent !== void 0) this.parent = config.parent;
|
|
20051
20154
|
this.state = new SceneManager(this, config.state ?? null);
|
|
20052
20155
|
}
|
|
@@ -20487,6 +20590,6 @@ var Line = class {
|
|
|
20487
20590
|
}
|
|
20488
20591
|
};
|
|
20489
20592
|
//#endregion
|
|
20490
|
-
export { Animation, AnimationManager, BaseTexture, BitmapText, Button, Cache, Circle, const_exports as Const, DisplayObject, ENGINE_ERROR_CANNOT_SET_FRAME, ENGINE_ERROR_CANNOT_SET_FRAME_NAME, ENGINE_ERROR_CREATING_AUDIO_CONTEXT, ENGINE_ERROR_CREATING_CANVAS_2D_CONTEXT, ENGINE_ERROR_CREATING_WEBGL_CONTEXT, ENGINE_ERROR_GETTING_DOCUMENT, ENGINE_ERROR_INVALID_BITMAP_FONT_ATLAS, ENGINE_ERROR_WEBGL_CONTEXT_LOST, Ellipse, Game, GameObjectFactory, Graphics, Group, Image$1 as Image, Input, Line, Loader, math_exports as MathUtils, Matrix, Point, Pointer, Polygon, Rectangle, RoundedRectangle, ScaleManager, Scene, SceneManager, Signal, Sound, SoundManager, SoundSprite, Text, Texture, Time, Timer, TimerEvent, Tween, TweenData, TweenManager };
|
|
20593
|
+
export { Animation, AnimationManager, BaseTexture, BitmapText, Button, Cache, Circle, const_exports as Const, DisplayObject, ENGINE_ERROR_CANNOT_SET_FRAME, ENGINE_ERROR_CANNOT_SET_FRAME_NAME, ENGINE_ERROR_CREATING_AUDIO_CONTEXT, ENGINE_ERROR_CREATING_CANVAS_2D_CONTEXT, ENGINE_ERROR_CREATING_WEBGL_CONTEXT, ENGINE_ERROR_GETTING_DOCUMENT, ENGINE_ERROR_INVALID_BITMAP_FONT_ATLAS, ENGINE_ERROR_WEBGL_CONTEXT_LOST, Ellipse, Game, GameObjectFactory, Graphics, Group, Image$1 as Image, Input, Line, Loader, math_exports as MathUtils, Matrix, PAGE_STATE_ACTIVE, PAGE_STATE_FROZEN, PAGE_STATE_HIDDEN, PAGE_STATE_PASSIVE, PAGE_STATE_TERMINATED, Point, Pointer, Polygon, Rectangle, RoundedRectangle, ScaleManager, Scene, SceneManager, Signal, Sound, SoundManager, SoundSprite, Text, Texture, Time, Timer, TimerEvent, Tween, TweenData, TweenManager, getPageState, onPageStateChange, oncePageActive, readPageState, startPageLifecycle };
|
|
20491
20594
|
|
|
20492
20595
|
//# sourceMappingURL=index.js.map
|