runAction里面,怎么让动作执行结束后再执行新的动作呢

大概就是,点击一次就让跳一下,但快速点击的话,就会再跳跃的过程中再次跳跃,用的moveBy,所以点的非常快的时候,简直都要上天了,所以求问:怎么才能让跳跃的动作执行中不再执行跳跃的动作呢,只有在没有跳跃的时候才能跳???
var game = cc.find(“Canvas”);
game.on(“touchstart”,function(){
this.node.runAction(cc.moveBy(0.4,0,192));
});

我的方案是,你在moveBy过程中做一个标记为true, moveBy完成后为false

//检查标记
if (this.node.flag) {
   return;
}

let moveBy = cc.moveBy(...)
let callFunc = cc.callFunc(() => {
    //恢复标记
    this.node.flag = false;
});

//设置标记
this.node.flag = true;
this.node.runAction(cc.sequence(moveBy, callFunc));

谢谢了啊,我咋就没想到呢,一开始还光想着判断在不在某个坐标范围内,就没想到原来用个true,false就行了。。。。

if(this.node.getNumberOfRunningActions() >= 1 ) return;

http://docs.cocos.com/creator/api/zh/classes/Node.html#getnumberofrunningactions

你可以看一下 用于检测节点的动作链表 如果存在1个以上就直接return 不执行动画 这个比较简单

2赞

你的方法不错:+1: