laya如何给动画添加帧事件

使用 Animation 类中的 addLabel 函数,给动画的某一帧添加一个 标签label,然后监听Laya.Event.LABEL 事件即可。

在场景下添加一个做好的动画,但不要设置默认自动播放,不然动画将不监听Label事件,

然后给场景挂载如下脚本。

示例如下:

export default class AniEventScript extends Laya.Script {
    private ani:Laya.Animation;

    onAwake(): void {
        this.ani = this.owner.getChildByName("ani") as Laya.Animation;
        this.ani.addLabel("testAni", 2); // 2帧后执行某个事件
        this.ani.on(Laya.Event.LABEL, this, this.onAniEvent);
        this.ani.on(Laya.Event.COMPLETE, this, () => {
            console.log("complete");
        });

        this.ani.play(0, false);
    }

    onAniEvent(e) {
        console.log(e);
        console.log(1234);
    }
}

在代码中我给这个帧动画的第2帧添加了一个“testAni”事件,并在onAniEvent函数中执行对应行为。大家可以将事件参数e打印出来,在上面的例子中e的类型是string,这是因为我使用的是laya原生的动画,当我们使用spine动画时,参数e的类型为Laya.EventData,大家要注意。不管是哪种类型,我们都可以通过e的不同来区别不同帧要处理的事件行为。

参考:LAYA_DEMO

你可能感兴趣的:(动画,laya,帧事件)