123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { _decorator, Component, Animation } from 'cc';
- const { ccclass, requireComponent } = _decorator;
- @ccclass('AnimEvent')
- @requireComponent([Animation])
- export class AnimEvent extends Component {
- private _animation: Animation = null;
- playCallback: Function = null; //开始播放时触发
- stopCallback: Function = null; //停止播放时触发
- pauseCallback: Function = null; //暂停播放时触发
- resumeCallback: Function = null; //恢复播放时触发
- lastFrameCallback: Function = null; //假如动画循环次数大于1,当动画播放到最后一帧时触发
- finishedCallback: Function = null; //动画完成播放时触发
- onLoad() {
- this._animation = this.getComponent(Animation);
- this._animation.on(Animation.EventType.PLAY, () => {
- this.playCallback && this.playCallback(this);
- }, this);
- this._animation.on(Animation.EventType.STOP, () => {
- this.stopCallback && this.stopCallback(this);
- }, this);
- this._animation.on(Animation.EventType.PAUSE, () => {
- this.pauseCallback && this.pauseCallback(this);
- }, this);
- this._animation.on(Animation.EventType.RESUME, () => {
- this.resumeCallback && this.resumeCallback(this);
- }, this);
- this._animation.on(Animation.EventType.LASTFRAME, () => {
- this.lastFrameCallback && this.lastFrameCallback(this);
- }, this);
- this._animation.on(Animation.EventType.FINISHED, () => {
- this.finishedCallback && this.finishedCallback(this);
- }, this);
- }
- play(name?: string) {
- this.node.active = true;
- this._animation.play(name);
- }
- stop() {
- this._animation.stop();
- this.node.active = false;
- }
- crossFade(name: string, duration?: number) {
- this._animation.crossFade(name, duration);
- }
- pause() {
- this._animation.pause();
- }
- resume() {
- this._animation.resume();
- }
- getState(name: string) {
- return this._animation.getState(name);
- }
- }
|