Enables an Entity to render a simple static sprite or sprite animations.
entity: Entity
The Entity that this Component is attached to.
Component.entity
system: ComponentSystem
The ComponentSystem used to create this Component.
Component.system
get autoPlayClip(): string
Gets the name of the clip to play automatically when the component is enabled.
string
set autoPlayClip(value: string): void
Sets the name of the clip to play automatically when the component is enabled.
string
void
get batchGroupId(): number
Gets the batch group for the sprite.
number
set batchGroupId(value: number): void
Sets the batch group for the sprite (see BatchGroup). Default is -1 (no group).
number
void
get clips(): {}
Gets the dictionary that contains SpriteAnimationClips.
{
}
set clips(value: {}): void
Sets the dictionary that contains SpriteAnimationClips.
void
get color(): Color
Gets the color tint of the sprite.
set color(value: Color): void
Sets the color tint of the sprite.
void
get currentClip(): SpriteAnimationClip
Gets the current clip being played.
get drawOrder(): number
Gets the draw order of the component.
number
set drawOrder(value: number): void
Sets the draw order of the component. A higher value means that the component will be rendered on top of other components in the same layer. This is not used unless the layer's sort order is set to SORTMODE_MANUAL.
number
void
get enabled(): boolean
Gets the enabled state of the component.
boolean
set enabled(arg: boolean): void
Sets the enabled state of the component.
boolean
void
Component.enabled
get flipX(): boolean
Gets whether to flip the X axis when rendering a sprite.
boolean
set flipX(value: boolean): void
Sets whether to flip the X axis when rendering a sprite.
boolean
void
get flipY(): boolean
Gets whether to flip the Y axis when rendering a sprite.
boolean
set flipY(value: boolean): void
Sets whether to flip the Y axis when rendering a sprite.
boolean
void
get frame(): number
Gets which frame from the current sprite asset to render.
number
set frame(value: number): void
Sets which frame from the current sprite asset to render.
number
void
get height(): number
Gets the height of the sprite when rendering using 9-Slicing.
number
set height(value: number): void
Sets the height of the sprite when rendering using 9-Slicing. The width and height are only used when the render mode of the sprite asset is Sliced or Tiled.
number
void
get layers(): number[]
Gets the array of layer IDs (Layer#id) to which this sprite belongs.
number
set layers(value: number[]): void
Sets the array of layer IDs (Layer#id) to which this sprite should belong.
number
void
get opacity(): number
Gets the opacity of the sprite.
number
set opacity(value: number): void
Sets the opacity of the sprite.
number
void
get speed(): number
Gets the global speed modifier used when playing sprite animation clips.
number
set speed(value: number): void
Sets the global speed modifier used when playing sprite animation clips.
number
void
get sprite(): Sprite
Gets the current sprite.
set sprite(value: Sprite): void
Sets the current sprite.
void
get spriteAsset(): number | Asset
Gets the asset id or the Asset of the sprite to render.
number | Asset
set spriteAsset(value: number | Asset): void
Sets the asset id or the Asset of the sprite to render. Only works for SPRITETYPE_SIMPLE sprites.
number | Asset
void
get type(): string
Gets the type of the SpriteComponent.
string
set type(value: string): void
Sets the type of the SpriteComponent. Can be:
Defaults to SPRITETYPE_SIMPLE.
string
void
get width(): number
Gets the width of the sprite when rendering using 9-Slicing.
number
set width(value: number): void
Sets the width of the sprite when rendering using 9-Slicing. The width and height are only used when the render mode of the sprite asset is Sliced or Tiled.
number
void
addClip(data: {
fps: number;
loop: boolean;
name: string;
spriteAsset: number | Asset;
}): SpriteAnimationClip
Creates and adds a new SpriteAnimationClip to the component's clips.
Data for the new animation clip.
number
Frames per second for the animation clip.
boolean
Whether to loop the animation clip.
string
The name of the new animation clip.
number | Asset
The asset id or the Asset of the sprite that this clip will play.
The new clip that was added.
clip(name: string): SpriteAnimationClip
Get an animation clip by name.
string
The name of the clip.
The clip.
fire(
name: string,
arg1?: any,
arg2?: any,
arg3?: any,
arg4?: any,
arg5?: any,
arg6?: any,
arg7?: any,
arg8?: any): EventHandler
Fire an event, all additional arguments are passed on to the event listener.
string
Name of event to fire.
any
First argument that is passed to the event handler.
any
Second argument that is passed to the event handler.
any
Third argument that is passed to the event handler.
any
Fourth argument that is passed to the event handler.
any
Fifth argument that is passed to the event handler.
any
Sixth argument that is passed to the event handler.
any
Seventh argument that is passed to the event handler.
any
Eighth argument that is passed to the event handler.
Self for chaining.
obj.fire('test', 'This is the message')
Component.fire
hasEvent(name: string): boolean
Test if there are any handlers bound to an event name.
string
The name of the event to test.
boolean
True if the object has handlers bound to the specified event name.
obj.on('test', () => {}) // bind an event to 'test'
obj.hasEvent('test') // returns true
obj.hasEvent('hello') // returns false
Component.hasEvent
off(
name?: string,
callback?: HandleEventCallback,
scope?: any): EventHandler
Detach an event handler from an event. If callback is not provided then all callbacks are unbound from the event, if scope is not provided then all events with the callback will be unbound.
string
Name of the event to unbind.
HandleEventCallback
Function to be unbound.
any
Scope that was used as the this when the event is fired.
Self for chaining.
const handler = () => {}
obj.on('test', handler)
obj.off() // Removes all events
obj.off('test') // Removes all events called 'test'
obj.off('test', handler) // Removes all handler functions, called 'test'
obj.off('test', handler, this) // Removes all handler functions, called 'test' with scope this
Component.off
on(
name: string,
callback: HandleEventCallback,
scope?: any): EventHandle
Attach an event handler to an event.
string
Name of the event to bind the callback to.
HandleEventCallback
Function that is called when event is fired. Note the callback is limited to 8 arguments.
any = ...
Object to use as 'this' when the event is fired, defaults to current this.
Can be used for removing event in the future.
obj.on('test', (a, b) => {
console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
const evt = obj.on('test', (a, b) => {
console.log(a + b)
})
// some time later
evt.off()
Component.on
once(
name: string,
callback: HandleEventCallback,
scope?: any): EventHandle
Attach an event handler to an event. This handler will be removed after being fired once.
string
Name of the event to bind the callback to.
HandleEventCallback
Function that is called when event is fired. Note the callback is limited to 8 arguments.
any = ...
Object to use as 'this' when the event is fired, defaults to current this.
obj.once('test', (a, b) => {
console.log(a + b)
})
obj.fire('test', 1, 2) // prints 3 to the console
obj.fire('test', 1, 2) // not going to get handled
Component.once
pause(): void
Pauses the current animation clip.
void
play(name: string): SpriteAnimationClip
Plays a sprite animation clip by name. If the animation clip is already playing then this will do nothing.
string
The name of the clip to play.
The clip that started playing.
removeClip(name: string): void
Removes a clip by name.
string
The name of the animation clip to remove.
void
resume(): void
Resumes the current paused animation clip.
void
stop(): void
Stops the current animation clip and resets it to the first frame.
void
static EVENT_END: string = 'end';
Fired when an animation clip stops playing because it reached its end. The handler is passed the SpriteAnimationClip that ended.
entity.sprite.on('end', (clip) => {
console.log(`Animation clip ${'${clip.name}'} ended.`)
})
static EVENT_LOOP: string = 'loop';
Fired when an animation clip reached the end of its current loop. The handler is passed the SpriteAnimationClip that looped.
entity.sprite.on('loop', (clip) => {
console.log(`Animation clip ${'${clip.name}'} looped.`)
})
static EVENT_PAUSE: string = 'pause';
Fired when an animation clip is paused. The handler is passed the SpriteAnimationClip that was paused.
entity.sprite.on('pause', (clip) => {
console.log(`Animation clip ${'${clip.name}'} paused.`)
})
static EVENT_PLAY: string = 'play';
Fired when an animation clip starts playing. The handler is passed the SpriteAnimationClip that started playing.
entity.sprite.on('play', (clip) => {
console.log(`Animation clip ${'${clip.name}'} started playing.`)
})
static EVENT_RESUME: string = 'resume';
Fired when an animation clip is resumed. The handler is passed the SpriteAnimationClip that was resumed.
entity.sprite.on('resume', (clip) => {
console.log(`Animation clip ${'${clip.name}'} resumed.`)
})
static EVENT_STOP: string = 'stop';
Fired when an animation clip is stopped. The handler is passed the SpriteAnimationClip that was stopped.
entity.sprite.on('stop', (clip) => {
console.log(`Animation clip ${'${clip.name}'} stopped.`)
})