feat: AnimationView
This commit is contained in:
parent
a4b0c9dd22
commit
042e6ae071
49
packages/graphics/animation-view.js
Normal file
49
packages/graphics/animation-view.js
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
import {hasGraphics} from './has-graphics';
|
||||||
|
import {Container} from './container';
|
||||||
|
import {Image} from './image';
|
||||||
|
import {Renderable} from './renderable';
|
||||||
|
import {Sprite} from './sprite';
|
||||||
|
|
||||||
|
export class AnimationView extends Renderable {
|
||||||
|
|
||||||
|
constructor(animation) {
|
||||||
|
super();
|
||||||
|
this.animation = animation;
|
||||||
|
this.container = new Container();
|
||||||
|
if (hasGraphics) {
|
||||||
|
Image.load(this.animation.imageUri).then((image) => {
|
||||||
|
this.sprite = new Sprite(image);
|
||||||
|
this.container.addChild(this.sprite);
|
||||||
|
this.resetSourceRectangle();
|
||||||
|
});
|
||||||
|
animation.on(['directionChanged', 'indexChanged'], () => {
|
||||||
|
if (this.sprite) {
|
||||||
|
this.resetSourceRectangle();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
if (this.sprite) {
|
||||||
|
this.sprite.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get internal() {
|
||||||
|
return this.container.internal;
|
||||||
|
}
|
||||||
|
|
||||||
|
reset() {
|
||||||
|
this.animation.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
resetSourceRectangle() {
|
||||||
|
this.sprite.sourceRectangle = this.animation.sourceRectangle;
|
||||||
|
}
|
||||||
|
|
||||||
|
tick() {
|
||||||
|
this.animation.tick();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,3 +1,4 @@
|
||||||
|
export {AnimationView} from './animation-view';
|
||||||
export {Color} from './color';
|
export {Color} from './color';
|
||||||
export {Container} from './container';
|
export {Container} from './container';
|
||||||
export {hasGraphics} from './has-graphics';
|
export {hasGraphics} from './has-graphics';
|
||||||
|
|
Loading…
Reference in New Issue
Block a user