66
77var Class = require ( '../../utils/Class' ) ;
88var Components = require ( '../components' ) ;
9- var GameObject = require ( '../GameObject' ) ;
109var DOMElementRender = require ( './DOMElementRender' ) ;
10+ var GameObject = require ( '../GameObject' ) ;
11+ var Vector4 = require ( '../../math/Vector4' ) ;
1112
1213/**
1314 * @classdesc
@@ -21,24 +22,17 @@ var DOMElementRender = require('./DOMElementRender');
2122 *
2223 * @extends Phaser.GameObjects.Components.Alpha
2324 * @extends Phaser.GameObjects.Components.BlendMode
25+ * @extends Phaser.GameObjects.Components.ComputedSize
2426 * @extends Phaser.GameObjects.Components.Depth
25- * @extends Phaser.GameObjects.Components.Flip
26- * @extends Phaser.GameObjects.Components.GetBounds
27- * @extends Phaser.GameObjects.Components.Mask
2827 * @extends Phaser.GameObjects.Components.Origin
29- * @extends Phaser.GameObjects.Components.Pipeline
30- * @extends Phaser.GameObjects.Components.ScaleMode
3128 * @extends Phaser.GameObjects.Components.ScrollFactor
32- * @extends Phaser.GameObjects.Components.Size
33- * @extends Phaser.GameObjects.Components.TextureCrop
34- * @extends Phaser.GameObjects.Components.Tint
3529 * @extends Phaser.GameObjects.Components.Transform
3630 * @extends Phaser.GameObjects.Components.Visible
3731 *
3832 * @param {Phaser.Scene } scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.
3933 * @param {number } x - The horizontal position of this Game Object in the world.
4034 * @param {number } y - The vertical position of this Game Object in the world.
41- * @param {string } texture - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager .
35+ * @param {( string|HTMLElement) } [element] - The DOM Element to use .
4236 */
4337var DOMElement = new Class ( {
4438
@@ -47,17 +41,10 @@ var DOMElement = new Class({
4741 Mixins : [
4842 Components . Alpha ,
4943 Components . BlendMode ,
44+ Components . ComputedSize ,
5045 Components . Depth ,
51- // Components.Flip,
52- // Components.GetBounds,
53- // Components.Mask,
54- // Components.Origin,
55- // Components.Pipeline,
56- // Components.ScaleMode,
46+ Components . Origin ,
5747 Components . ScrollFactor ,
58- // Components.Size,
59- // Components.TextureCrop,
60- // Components.Tint,
6148 Components . Transform ,
6249 Components . Visible ,
6350 DOMElementRender
@@ -69,20 +56,45 @@ var DOMElement = new Class({
6956 {
7057 GameObject . call ( this , scene , 'DOMElement' ) ;
7158
72- // this.setTexture(texture, frame);
73- this . setPosition ( x , y ) ;
74- // this.setSizeToFrame();
75- // this.setOriginFromFrame();
76- // this.initPipeline('TextureTintPipeline');
77-
7859 this . parent = scene . sys . game . domContainer ;
7960
8061 this . node ;
8162
82- this . setNode ( element ) ;
63+ this . skewX = 0 ;
64+ this . skewY = 0 ;
65+
66+ // https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d
67+ this . rotate3d = new Vector4 ( ) ;
68+ this . rotate3dAngle = 'deg' ;
69+
70+ this . setPosition ( x , y ) ;
71+
72+ if ( element )
73+ {
74+ this . setElement ( element ) ;
75+ }
76+ } ,
77+
78+ setSkew : function ( x , y )
79+ {
80+ if ( x === undefined ) { x = 0 ; }
81+ if ( y === undefined ) { y = x ; }
82+
83+ this . skewX = x ;
84+ this . skewY = y ;
85+
86+ return this ;
87+ } ,
88+
89+ setPerspective : function ( value )
90+ {
91+ // Sets it on the DOM Container!
92+ this . parent . style . perspective = value + 'px' ;
93+
94+ return this ;
8395 } ,
8496
85- setNode : function ( element )
97+ setElement : function ( element )
8698 {
8799 var target ;
88100
@@ -103,12 +115,44 @@ var DOMElement = new Class({
103115 this . node = target ;
104116
105117 target . style . zIndex = '0' ;
118+ target . style . display = 'block' ;
106119 target . style . position = 'absolute' ;
107120
108121 if ( this . parent )
109122 {
110123 this . parent . appendChild ( target ) ;
111124 }
125+
126+ var nodeBounds = target . getBoundingClientRect ( ) ;
127+
128+ this . setSize ( nodeBounds . width || 0 , nodeBounds . height || 0 ) ;
129+
130+ return this ;
131+ } ,
132+
133+ setText : function ( text )
134+ {
135+ if ( this . node )
136+ {
137+ this . node . innerText = text ;
138+ }
139+
140+ return this ;
141+ } ,
142+
143+ setHTML : function ( html )
144+ {
145+ if ( this . node )
146+ {
147+ this . node . innerHTML = html ;
148+ }
149+
150+ return this ;
151+ } ,
152+
153+ destroy : function ( )
154+ {
155+
112156 }
113157
114158} ) ;
0 commit comments