Animation组件的使用

/**
 * Author:W
 * 动画组件Animation的使用
 */
cc.Class({
    extends: cc.Component,

    properties: {
        
    },

    // LIFE-CYCLE CALLBACKS:

    onLoad () {
        this.anim = this.getComponent(cc.Animation);

        //动画状态事件回调注册
        this.anim.on('play',this.onPlay,this);
        this.anim.on('stop',this.onStop,this);
        this.anim.on('lastframe',this.onLastFrame,this);
        this.anim.on('finished',this.onFinished,this);
        this.anim.on('pause',this.onPause,this);
        this.anim.on('resume',this.onResume,this);
    },

    start () {

    },

    onDestroy(){
        //动画状态事件回调注册
        this.anim.on('play',this.onPlay,this);
        this.anim.on('stop',this.onStop,this);
        this.anim.on('lastframe',this.onLastFrame,this);
        this.anim.on('finished',this.onFinished,this);
        this.anim.on('pause',this.onPause,this);
        this.anim.on('resume',this.onResume,this);
    },

    onPlay:function(){},
    onStop:function(){},
    onLastFrame:function(){},
    onFinished:function(){},
    onPause:function(){},
    onResume:function(){},

    //动画播放
    playAni:function(){
        //指定动画文件播放
        anim.play('Idle');

        // //指定从动画文件的1s开始播放
        // anim.play('Idle',1);

        // //如果设置了defaultclip动画片段时,则默认播放该动画
        // anim.play();
    },

    //动画播放:【复合动画:支持同时播放多个动画文件】
    playAdditiveAni:function(){
        this.anim.playAdditive('Idle');
        this.anim.playAdditive('Scale');
    },

    //暂停播放
    pauseAni:function(){
        //暂停Idle动画
        this.anim.pause('Idle');

        // //暂停所有动画
        // this.anim.pause();
    },

    //恢复播放
    resumeAni:function(){
        //恢复Idle动画播放
        this.anim.resume('Idle');
        // //恢复所有动画播放
        // this.anim.resume();
    },

    //停止播放
    stopAni:function(){
        //停止Idle动画
        this.anim.stop('Idle');

        // //停止所有动画
        // this.anim.stop();
    },

    //设置动画时间
    setAniTime:function(){
        //设置Idle动画的播放时间为1s
        this.anim.setCurrentTime(1,'Idle');

        // //设置所有动画播放时间为1秒
        // this.anim.setCurrentTime(1);
    },

    //获取当前播放动画生成的AnimationState实例,它包含了很多动画运行的状态信息,可以修改设置
    setAnimationState:function(){
        // //获取AnimtionState实例方式1
        // var animState = this.anim.play('Idle');
        //获取AnimationState实例方式2
        var animState = this.anim.getAnimationState('Idle');

        //获取动画关联的clip
        var clip = animState.clip;
        //获取动画的名字
        var name = animState.name;
        //获取动画的播放速度
        var speed = animState.speed;
        //获取动画的播放总时长
        var duration = animState.duration;
        //获取动画的播放时间
        var time = animState.time;
        //获取动画的重复次数
        var repeatCount = animState.repeatCount;
        //获取动画的循环模式
        var wrapMode = animState.wrapMode;
        //获取动画是否正在播放
        var playing = animState.isPlaying;
        //获取动画是否已经暂停
        var paused = animState.isPaused;
        //获取动画的帧率
        var frameRate = animState.frameRate;

        //【注意:可以对上述可修改的属性进行修改】

    },


    //动画事件【在编辑动画时,添加的动画帧事件】
    onAniEvent:function(num,str){

    }
    

    // update (dt) {},
});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值