DOMElement Class
This class is still experimental, and more advanced use is likely to be buggy. Please report bugs.
A DOMElement allows you to associate a HTMLElement with the display list. It will be transformed within the DOM as though it is child of the Container it is added to. However, it is not rendered to canvas, and as such will retain whatever z-index it has relative to the canvas (ie. it will be drawn in front of or behind the canvas).
The position of a DOMElement is relative to their parent node in the DOM. It is recommended that the DOM Object be added to a div that also contains the canvas so that they share the same position on the page.
DOMElement is useful for positioning HTML elements over top of canvas content, and for elements that you want to display outside the bounds of the canvas. For example, a tooltip with rich HTML content.
Mouse Interaction
DOMElement instances are not full EaselJS display objects, and do not participate in EaselJS mouse events or support methods like hitTest. To get mouse events from a DOMElement, you must instead add handlers to the htmlElement (note, this does not support EventDispatcher)
var domElement = new createjs.DOMElement(htmlElement);
domElement.htmlElement.onclick = function() {
console.log("clicked");
}
Constructor
DOMElement
-
htmlElement
Parameters:
-
htmlElement
HTMLElementA reference or id for the DOM element to manage.
Item Index
Methods
- _applyFilters
- _applyShadow
- _hasMouseHandler
- _testHit
- _tick
- addEventListener
- cache
- clone
- cloneProps
- dispatchEvent
- draw
- getCacheDataURL.
- getConcatenatedMatrix
- getMatrix
- getStage
- globalToLocal
- hasEventListener
- hitArea
- hitTest
- initialize
- isVisible
- localToGlobal
- localToLocal
- removeAllEventListeners
- removeEventListener
- set
- setTransform
- toString
- uncache
- updateCache
- updateContext
Properties
- _cacheDataURL
- _cacheDataURLID
- _cacheOffsetX
- _cacheOffsetY
- _cacheScale
- _listeners
- _matrix
- _oldMtx
- alpha
- cacheCanvas
- cacheID
- compositeOperation
- cursor
- DisplayObject__tick
- DisplayObject_initialize
- filters
- hitArea
- htmlElement
- id
- mask
- mouseEnabled
- name
- onClick deprecated
- onDoubleClick deprecated
- onMouseOut deprecated
- onMouseOver deprecated
- onPress deprecated
- onTick deprecated
- parent
- regX
- regY
- rotation
- scaleX
- scaleY
- shadow
- skewX
- skewY
- snapToPixel deprecated
- visible
- x
- y
Methods
_applyFilters
()
protected
_hasMouseHandler
-
typeMask
Indicates whether the display object has a listener of the corresponding event types.
Parameters:
-
typeMask
NumberA bitmask indicating which event types to look for. Bit 1 specifies press & click & double click, bit 2 specifies it should look for mouse over and mouse out. This implementation may change.
Returns:
_tick
()
protected
addEventListener
-
type
-
listener
Adds the specified event listener. Note that adding multiple listeners to the same function will result in multiple callbacks getting fired.
Example
displayObject.addEventListener("click", handleClick);
function handleClick(event) {
// Click happened.
}
Parameters:
cache
()
Not applicable to DOMElement.
clone
()
DOMElement cannot be cloned. Throws an error.
cloneProps
-
o
Parameters:
-
o
DisplayObjectThe DisplayObject instance which will have properties from the current DisplayObject instance copied into.
dispatchEvent
-
eventObj
-
[target]
Dispatches the specified event to all listeners.
Example
// Use a string event
this.dispatchEvent("complete");
// Use an object
var event = {
type: "complete",
foo: "bar"
};
this.dispatchEvent(event);
Parameters:
-
eventObj
Object | StringAn object with a "type" property, or a string type. If a string is used, dispatchEvent will construct a generic event object with the specified type.
-
[target]
Object optionalThe object to use as the target property of the event object. This will default to the dispatching object.
Returns:
draw
-
ctx
-
ignoreCache
Draws the display object into the specified context ignoring it's visible, alpha, shadow, and transform. Returns true if the draw was handled (useful for overriding functionality). NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
Parameters:
-
ctx
CanvasRenderingContext2DThe canvas 2D context object to draw into.
-
ignoreCache
BooleanIndicates whether the draw operation should ignore any current cache. For example, used for drawing the cache (to prevent it from simply drawing an existing cache back into itself).
getCacheDataURL.
()
Returns a data URL for the cache, or null if this display object is not cached. Uses cacheID to ensure a new data URL is not generated if the cache has not changed.
getConcatenatedMatrix
-
[mtx]
Generates a concatenated Matrix2D object representing the combined transform of the display object and all of its parent Containers up to the highest level ancestor (usually the Stage). This can be used to transform positions between coordinate spaces, such as with localToGlobal and globalToLocal.
Parameters:
getMatrix
-
matrix
Returns a matrix based on this object's transform.
Parameters:
-
matrix
Matrix2DOptional. A Matrix2D object to populate with the calculated values. If null, a new Matrix object is returned.
Returns:
getStage
()
Stage
Returns the stage that this display object will be rendered on, or null if it has not been added to one.
Returns:
globalToLocal
()
Not applicable to DOMElement.
hasEventListener
-
type
Indicates whether there is at least one listener for the specified event type.
Parameters:
-
type
StringThe string type of the event.
Returns:
hitArea
()
Not applicable to DOMElement.
hitTest
-
x
-
y
Tests whether the display object intersects the specified local point (ie. draws a pixel with alpha > 0 at the specified position). This ignores the alpha, shadow and compositeOperation of the display object, and all transform properties including regX/Y.
Example
stage.addEventListener("stagemousedown", handleMouseDown);
function handleMouseDown(event) {
var hit = myShape.hitTest(event.stageX, event.stageY);
}
Please note that shape-to-shape collision is not currently supported by EaselJS.
Parameters:
Returns:
initialize
()
protected
Initialization method.
isVisible
()
Boolean
Returns true or false indicating whether the display object would be visible if drawn to a canvas. This does not account for whether it would be visible within the boundaries of the stage. NOTE: This method is mainly for internal use, though it may be useful for advanced uses.
Returns:
localToGlobal
()
Not applicable to DOMElement.
localToLocal
()
Not applicable to DOMElement.
removeAllEventListeners
-
[type]
Removes all listeners for the specified type, or all listeners of all types.
Example
// Remove all listeners
displayObject.removeAllEvenListeners();
// Remove all click listeners
displayObject.removeAllEventListeners("click");
Parameters:
-
[type]
String optionalThe string type of the event. If omitted, all listeners for all types will be removed.
removeEventListener
-
type
-
listener
Removes the specified event listener.
Important Note: that you must pass the exact function reference used when the event was added. If a proxy function, or function closure is used as the callback, the proxy/closure reference must be used - a new proxy or closure will not work.
Example
displayObject.removeEventListener("click", handleClick);
set
-
props
Provides a chainable shortcut method for setting a number of properties on a DisplayObject instance.
Example
var myGraphics = new createjs.Graphics().beginFill("#ff0000").drawCircle(0, 0, 25);
var shape = stage.addChild(new Shape())
.set({graphics:myGraphics, x:100, y:100, alpha:0.5});
Parameters:
-
props
ObjectA generic object containing properties to copy to the DisplayObject instance.
Returns:
setTransform
-
[x=0]
-
[y=0]
-
[scaleX=1]
-
[scaleY=1]
-
[rotation=0]
-
[skewX=0]
-
[skewY=0]
-
[regX=0]
-
[regY=0]
Shortcut method to quickly set the transform properties on the display object. All parameters are optional. Omitted parameters will have the default value set.
Example
displayObject.setTransform(100, 100, 2, 2);
Parameters:
-
[x=0]
Number optionalThe horizontal translation (x position) in pixels
-
[y=0]
Number optionalThe vertical translation (y position) in pixels
-
[scaleX=1]
Number optionalThe horizontal scale, as a percentage of 1
-
[scaleY=1]
Number optionalthe vertical scale, as a percentage of 1
-
[rotation=0]
Number optionalThe rotation, in degrees
-
[skewX=0]
Number optionalThe horizontal skew factor
-
[skewY=0]
Number optionalThe vertical skew factor
-
[regX=0]
Number optionalThe horizontal registration point in pixels
-
[regY=0]
Number optionalThe vertical registration point in pixels
Returns:
toString
()
String
Returns a string representation of this object.
Returns:
uncache
()
Not applicable to DOMElement.
updateCache
()
Not applicable to DOMElement.
updateContext
-
ctx
Applies this display object's transformation, alpha, globalCompositeOperation, clipping path (mask), and shadow to the specified context. This is typically called prior to draw.
Parameters:
-
ctx
CanvasRenderingContext2DThe canvas 2D to update.
Properties
_oldMtx
Unknown
protected
alpha
Number
The alpha (transparency) for this display object. 0 is fully transparent, 1 is fully opaque.
Default: 1
cacheCanvas
HTMLCanvasElement | Object
If a cache is active, this returns the canvas that holds the cached version of this display object. See cache() for more information. READ-ONLY.
Default: null
cacheID
Number
Returns an ID number that uniquely identifies the current cache for this display object. This can be used to * determine if the cache has changed since a previous check.
Default: 0
compositeOperation
String
The composite operation indicates how the pixels of this display object will be composited with the elements behind it. If null, this property is inherited from the parent container. For more information, read the whatwg spec on compositing.
Default: null
cursor
String
A CSS cursor (ex. "pointer", "help", "text", etc) that will be displayed when the user hovers over this display object. You must enable mouseover events using the enableMouseOver method to use this property. If null it will use the default cursor.
Default: null
filters
Array
An array of Filter objects to apply to this display object. Filters are only applied / updated when cache()
or
updateCache()
is called on the display object, and only apply to the area that is cached.
Default: null
hitArea
DisplayObject
A display object that will be tested when checking mouse interactions or testing getObjectsUnderPoint.
The hit area will have its transformation applied relative to this display object's coordinate space (as though
the hit test object were a child of this display object and relative to its regX/Y). The hitArea will be tested
using only its own alpha
value regardless of the alpha value on the target display object, or the target's
ancestors (parents).
Note that hitArea is NOT currently used by the hitTest()
method, nor is it supported for Stage.
Default: null
id
Number
Unique ID for this display object. Makes display objects easier for some uses.
Default: -1
mask
Shape
A Shape instance that defines a vector mask (clipping path) for this display object. The shape's transformation will be applied relative to the display object's parent coordinates (as if it were a child of the parent).
Default: null
mouseEnabled
Boolean
Indicates whether to include this object when running mouse interactions. Setting this to false
for children
of a Container will cause events on the Container to not fire when that child is
clicked. Note that setting this property to false
does not prevent the getObjectsUnderPoint
method from returning the child.
Default: true
name
String
An optional name for this display object. Included in toString(). Useful for debugging.
Default: null
onClick
Function
deprecated
The onClick callback is called when the user presses down on and then releases the mouse button over this display object. The handler is passed a single param containing the corresponding MouseEvent instance. If an onClick handler is set on a container, it will receive the event if any of its children are clicked.
onDoubleClick
Function
deprecated
The onDoubleClick callback is called when the user double clicks over this display object. The handler is passed a single param containing the corresponding MouseEvent instance. If an onDoubleClick handler is set on a container, it will receive the event if any of its children are clicked.
onMouseOut
Function
deprecated
The onMouseOut callback is called when the user rolls off of the display object. You must enable this event using stage.enableMouseOver(). The handler is passed a single param containing the corresponding MouseEvent instance.
onMouseOver
Function
deprecated
The onMouseOver callback is called when the user rolls over the display object. You must enable this event using stage.enableMouseOver(). The handler is passed a single param containing the corresponding MouseEvent instance.
onPress
Function
deprecated
The onPress callback is called when the user presses down on their mouse over this display object. The handler is passed a single param containing the corresponding MouseEvent instance. You can subscribe to the onMouseMove and onMouseUp callbacks of the event object to receive these events until the user releases the mouse button. If an onPress handler is set on a container, it will receive the event if any of its children are clicked.
onTick
Function
deprecated
The onTick callback is called on each display object on a stage whenever the stage updates.
This occurs immediately before the rendering (draw) pass. When stage.update() is called, first all display
objects on the stage have onTick called, then all of the display objects are drawn to stage. Children will have
their onTick
called in order of their depth prior to onTick being called on their parent.
Any parameters passed in to stage.update()
are passed on to the onTick()
handlers. For example, if you call
stage.update("hello")
, all of the display objects with a handler will have onTick("hello")
called.
parent
Container
final
A reference to the Container or Stage object that contains this display object, or null if it has not been added to one. READ-ONLY.
Default: null
regX
Number
The x offset for this display object's registration point. For example, to make a 100x100px Bitmap rotate around it's center, you would set regX and regY to 50.
Default: 0
regY
Number
The y offset for this display object's registration point. For example, to make a 100x100px Bitmap rotate around it's center, you would set regX and regY to 50.
Default: 0
scaleX
Number
The factor to stretch this display object horizontally. For example, setting scaleX to 2 will stretch the display object to twice it's nominal width. To horizontally flip an object, set the scale to a negative number.
Default: 1
scaleY
Number
The factor to stretch this display object vertically. For example, setting scaleY to 0.5 will stretch the display object to half it's nominal height. To vertically flip an object, set the scale to a negative number.
Default: 1
shadow
Shadow
A shadow object that defines the shadow to render on this display object. Set to null to remove a shadow. If null, this property is inherited from the parent container.
Default: null
snapToPixel
Boolean
deprecated
Indicates whether the display object should have it's x & y position rounded prior to drawing it to stage.
Snapping to whole pixels can result in a sharper and faster draw for images (ex. Bitmap & cached objects).
This only applies if the enclosing stage has snapPixelsEnabled set to true. The snapToPixel property is true
by default for Bitmap and BitmapAnimation instances, and false for all other display objects.
Note that this applies only rounds the display object's local position. You should
ensure that all of the display object's ancestors (parent containers) are also on a whole pixel. You can do this
by setting the ancestors' snapToPixel property to true.
Default: false
visible
Boolean
Indicates whether this display object should be rendered to the canvas and included when running Stage.getObjectsUnderPoint().
Default: true
Events
click
Interaction events should be added to htmlElement
, and not the DOMElement instance, since DOMElement instances
are not full EaselJS display objects and do not participate in EaselJS mouse events.
dblClick
Interaction events should be added to htmlElement
, and not the DOMElement instance, since DOMElement instances
are not full EaselJS display objects and do not participate in EaselJS mouse events.
dblclick
Dispatched when the user double clicks their left mouse button over this display object. See the MouseEvent class for a listing of event properties.
mousedown
Interaction events should be added to htmlElement
, and not the DOMElement instance, since DOMElement instances
are not full EaselJS display objects and do not participate in EaselJS mouse events.
mouseout
Dispatched when the user's mouse rolls out of this display object. This event must be enabled using enableMouseOver. See the MouseEvent class for a listing of event properties.
mouseover
The HTMLElement can listen for the mouseover event, not the DOMElement instance. Since DOMElement instances are not full EaselJS display objects and do not participate in EaselJS mouse events.
tick
Not applicable to DOMElement.