/**
* 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) {},
});