BitmapAnimation Class
Displays frames or sequences of frames (ie. animations) from a sprite sheet image. A sprite sheet is a series of images (usually animation frames) combined into a single image. For example, an animation consisting of 8 100x100 images could be combined into a 400x200 sprite sheet (4 frames across by 2 high). You can display individual frames, play frames as an animation, and even sequence animations together.
See the SpriteSheet class for more information on setting up frames and animations.
Example
var instance = new createjs.BitmapAnimation(spriteSheet);
instance.gotoAndStop("frameName");
Currently, you must call either gotoAndStop or gotoAndPlay, or nothing will display on stage.
Constructor
BitmapAnimation
-
spriteSheet
Parameters:
-
spriteSheet
SpriteSheetThe SpriteSheet instance to play back. This includes the source image(s), frame dimensions, and frame data. See SpriteSheet for more information.
Item Index
Methods
- _applyFilters
- _applyShadow
- _goto
- _hasMouseHandler
- _normalizeCurrentFrame
- _testHit
- _tick
- addEventListener
- advance
- cache
- clone
- cloneProps
- dispatchEvent
- draw
- getBounds
- getCacheDataURL.
- getConcatenatedMatrix
- getMatrix
- getStage
- globalToLocal
- gotoAndPlay
- gotoAndStop
- hasEventListener
- hitTest
- initialize
- isVisible
- localToGlobal
- localToLocal
- play
- removeAllEventListeners
- removeEventListener
- set
- setTransform
- stop
- toString
- uncache
- updateCache
- updateContext
Properties
- _advanceCount
- _animation
- _cacheDataURL
- _cacheDataURLID
- _cacheOffsetX
- _cacheOffsetY
- _cacheScale
- _dispatchAnimationEnd
- _listeners
- _matrix
- alpha
- cacheCanvas
- cacheID
- compositeOperation
- currentAnimation
- currentAnimationFrame
- currentFrame
- cursor
- DisplayObject__tick
- DisplayObject_cloneProps
- DisplayObject_draw
- DisplayObject_initialize
- filters
- hitArea
- id
- mask
- mouseEnabled
- name
- offset
- onAnimationEnd deprecated
- onClick deprecated
- onDoubleClick deprecated
- onMouseOut deprecated
- onMouseOver deprecated
- onPress deprecated
- onTick deprecated
- parent
- paused
- regX
- regY
- rotation
- scaleX
- scaleY
- shadow
- skewX
- skewY
- snapToPixel
- spriteSheet
- visible
- x
- y
Methods
_applyFilters
()
protected
_goto
-
frameOrAnimation
Moves the playhead to the specified frame number or animation.
_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:
_normalizeCurrentFrame
()
protected
Normalizes the current frame, advancing animations and dispatching callbacks as appropriate.
_tick
()
protected
Advances the currentFrame
if paused is not true. This is called automatically when the Stage
ticks.
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:
advance
()
Advances the playhead. This occurs automatically each tick by default.
cache
()
Because the content of a Bitmap is already in a simple format, cache is unnecessary for Bitmap instances. You should not cache Bitmap instances as it can degrade performance.
clone
()
BitmapAnimation
Returns a clone of the BitmapAnimation instance. Note that the same SpriteSheet is shared between cloned instances.
Returns:
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).
getBounds
()
Rectangle
Returns a Rectangle instance defining the bounds of the current frame relative to
the origin. For example, a 90 x 70 frame with regX=50
and regY=40
would return a
rectangle with [x=-50, y=-40, width=90, height=70].
Also see the SpriteSheet getFrameBounds method.
Returns:
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
-
x
-
y
Transforms the specified x and y position from the global (stage) coordinate space to the coordinate space of the display object. For example, this could be used to determine the current mouse position within the display object. Returns a Point instance with x and y properties correlating to the transformed position in the display object's coordinate space.
Example
displayObject.x = 300;
displayObject.y = 200;
stage.addChild(displayObject);
var point = myDisplayObject.globalToLocal(100, 100);
// Results in x=-200, y=-100
Parameters:
Returns:
gotoAndPlay
-
frameOrAnimation
Sets paused to false and plays the specified animation name, named frame, or frame number.
gotoAndStop
-
frameOrAnimation
Sets paused to true and seeks to the specified animation name, named frame, or frame number.
hasEventListener
-
type
Indicates whether there is at least one listener for the specified event type.
Parameters:
-
type
StringThe string type of the event.
Returns:
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
-
x
-
y
Transforms the specified x and y position from the coordinate space of the display object to the global (stage) coordinate space. For example, this could be used to position an HTML label over a specific point on a nested display object. Returns a Point instance with x and y properties correlating to the transformed coordinates on the stage.
Example
displayObject.x = 300;
displayObject.y = 200;
stage.addChild(displayObject);
var point = myDisplayObject.localToGlobal(100, 100);
// Results in x=400, y=300
Parameters:
Returns:
localToLocal
-
x
-
y
-
target
Transforms the specified x and y position from the coordinate space of this display object to the coordinate space of the target display object. Returns a Point instance with x and y properties correlating to the transformed position in the target's coordinate space. Effectively the same as using the following code with localToGlobal and globalToLocal.
var pt = this.localToGlobal(x, y);
pt = target.globalToLocal(pt.x, pt.y);
Parameters:
-
x
NumberThe x position in the source display object to transform.
-
y
NumberThe y position on the stage to transform.
-
target
DisplayObjectThe target display object to which the coordinates will be transformed.
Returns:
play
()
Begin playing a paused animation. The BitmapAnimation will be paused if either stop or gotoAndStop is called. Single frame animations will remain unchanged.
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:
stop
()
Stop playing a running animation. The BitmapAnimation will be playing if gotoAndPlay is called. Note that calling gotoAndPlay or play will resume playback.
toString
()
String
Returns a string representation of this object.
Returns:
uncache
()
Because the content of a Bitmap is already in a simple format, cache is unnecessary for Bitmap instances. You should not cache Bitmap instances as it can degrade performance.
updateCache
()
Because the content of a Bitmap is already in a simple format, cache is unnecessary for Bitmap instances. You should not cache Bitmap instances as it can degrade performance.
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
_dispatchAnimationEnd
Function
private
Dispatches the "animationend" event. Returns true if a handler changed the animation (ex. calling stop, gotoAndPlay, etc.)
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
currentAnimationFrame
Number
Specifies the current frame index within the current playing animation. When playing normally, this will increase successively from 0 to n-1, where n is the number of frames in the current animation.
Default: 0
currentFrame
Number
The frame that will be drawn when draw is called. Note that with some SpriteSheet data, this will advance non-sequentially. READ-ONLY.
Default: -1
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
offset
Number
When used in conjunction with animations having an frequency greater than 1, this lets you offset which tick the playhead will advance on. For example, you could create two BitmapAnimations, both playing an animation with a frequency of 2, but one having offset set to 1. Both instances would advance every second tick, but they would advance on alternating ticks (effectively, one instance would advance on odd ticks, the other on even ticks).
Default: 0
onAnimationEnd
Function
deprecated
Specifies a function to call whenever any animation reaches its end. It will be called with three params: the first will be a reference to this instance, the second will be the name of the animation that just ended, and the third will be the name of the next animation that will be played.
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
paused
Boolean
Prevents the animation from advancing each tick automatically. For example, you could create a sprite
sheet of icons, set paused to true, and display the appropriate icon by setting currentFrame
.
Default: false
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
Whether or not the image should be draw to the canvas at whole pixel coordinates.
Default: true
spriteSheet
SpriteSheet
The SpriteSheet instance to play back. This includes the source image, frame dimensions, and frame data. See SpriteSheet for more information.
visible
Boolean
Indicates whether this display object should be rendered to the canvas and included when running Stage.getObjectsUnderPoint().
Default: true
Events
animationend
Dispatched when an animation reaches its ends.
click
Dispatched when the user presses their left mouse button and then releases it while over the display object. See the MouseEvent class for a listing of event properties.
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
Dispatched when the user presses their left mouse button over the display object. See the MouseEvent class for a listing of event properties.
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
Dispatched when the user's mouse rolls over this display object. This event must be enabled using Stage.enableMouseOver. See the MouseEvent class for a listing of event properties.
tick
Dispatched on each display object on a stage whenever the stage updates. This occurs immediately before the rendering (draw) pass. When update is called, first all display objects on the stage dispatch the tick event, then all of the display objects are drawn to stage. Children will have their tick event dispatched in order of their depth prior to the event being dispatched on their parent.