23 lines
819 B
TypeScript
23 lines
819 B
TypeScript
import {Scene} from "phaser";
|
|
import DOMElement = Phaser.GameObjects.DOMElement;
|
|
|
|
export abstract class ResizableScene extends Scene {
|
|
public abstract onResize(ev: UIEvent): void;
|
|
|
|
/**
|
|
* Centers the DOM element on the X axis.
|
|
*
|
|
* @param object
|
|
* @param defaultWidth The width of the DOM element. We try to compute it but it may not be available if called from "create".
|
|
*/
|
|
public centerXDomElement(object: DOMElement, defaultWidth: number): void {
|
|
object.x = (this.scale.width / 2) -
|
|
(
|
|
object
|
|
&& object.node
|
|
&& object.node.getBoundingClientRect().width > 0
|
|
? (object.node.getBoundingClientRect().width / 2 / this.scale.zoom)
|
|
: (300 / this.scale.zoom)
|
|
);
|
|
}
|
|
}
|