cocos creator的Action类整理
Action类
Action类是所有动作类型的基类
并且Action有两个类别
1、瞬时完成(ActionInstant)
2、非瞬时完成,即到完成时需要一定的时间ActionIntervial
相关API | 功能 |
---|---|
cc.moveTo() | 移动到目标位置 |
cc.moveBy() | 移动指定的距离 |
cc.rotateTo() | 旋转到目标角度 |
cc.rotateBy() | 旋转到指定角度 |
cc.scaleTo() | 缩放到目标大小 |
cc.scaleBy() | 缩放到指定大小 |
cc.fadeIn() | 淡入效果(透明度小于255才能体现效果) |
cc.fadeOut() | 淡出效果(透明度大于0才能体现效果) |
cc.fadeTo() | 修改透明度到目标值 |
cc.callFun() | 执行回调函数 |
cc.delayTime() | 动作延迟时间 |
cc.sequence() | 顺序执行动作,创建的动作将按顺序依次运行 |
cc.repeat() | 重复动作,可以按一定次数重复一个动 |
cc.repeatForever() | 一直重复动作 |
Action.easeIn() | 由慢到快的缓动对象 |
Action.easeOut() | 由快到慢的缓动对象 |
stopAction() | 停止并移除指定的动作 |
stopAllActions() | 停止并且移除所有正在运行的动作列表。 |
以上的Action API均需要node.runAction()结合使用
使用演示:
//move var movTo=cc.moveTo(1,cc.p(100,100)); this.node.runAction(movTo);//第一个参数是移动到目标位置的时间 var movBy=cc.moveBy(1,cc.p(100,100)); this.node.runAction(movBy); //rotate var rTo=cc.rotateTo(1, 180);//第一个参数也是时间参数,将节点旋转180° this.node.runAction(rTo); var rBy=cc.rotateBy(1,180);//该节点再旋转180° this.node.runAction(rBy); //scale var scTo = cc.scaleTo(1,2);//将节点缩放到2倍 this.node.runAction(scTo); var scBy = cc.scaleBy(1,2);//将节点在原来的基础上再乘2 this.node.runAction(scBy); //fade var faO = cc.fadeOut(2);//2秒淡出 this.node.runAction(faO); var faI = cc.fadeIn(2);//2秒淡入 this.node.opacity = 0;//调节透明度 this.node.runAction(faI); var faTo = cc.fadeTo(1, 128); this.node.runAction(faTo); //callfun var callF = cc.callFunc(function(){ cc.log("function callback!!"); }.bind(this)); cc.node.runAction(callF); //seq var seqA = cc.seq([movTo,rTo,faO]); cc.node.runAction(seqA); //repeat var rep = cc.repeat(seqA,2); cc.node.runAction(rep); var repF = cc.repeatForever(seqA); cc.node.runAction(repF); //回弹特效 var m = cc.moveTo(1, 100, 0).easing(cc.easeBackOut()); this.node.runAction(m); //转动特效 var r = cc.rotateBy(3, 360).easing(cc.easeCubicActionOut()); var rf = cc.repeatForever(r); this.node.runAction(rf); //delay延时 var time = cc.delayTime(2); var mov = cc.moveBy(2,cc.p(100,100)); var fun = cc.callFunc(function(){ this.node.removeFromParent(); }.bind(this)); var seq1 = cc.sequence([time, mov, fun]); this.node.runAction(seq); //this.node.stopAllActions();