creator api 中stopAllAction没有停止动作的执行

Creator 版本:1.9.1
目标平台:wechat
重现方式:
//生成多个障碍物

    //如果上一个障碍物运行到一定位置就再次生成,玩家的高度+玩家高度*随机数 作为再次生成的节点

setNewDangluMore(){
var children = this.node.children
var lastDangluNodeY = children[children.length-1].getPositionY();

    var cheHeight = this.cheqi.getContentSize().height;
    var randY = cheHeight+cc.random0To1()*cheHeight*0.1;
         if(lastDangluNodeY < randY){
        this.spawnNewDanglu();
    }
},
removeAllremoveAllListeners(){
          this.node.stopAllActions();
          console.log('ppppppppppppppppppppppp');
},

详细描述:stopAllAction 会停止后续的节点生成,已经生成的节点以及该节点上的adction 会继续执行。

求大神帮帮忙

是不是因为你停止动作以后就没有达到生成障碍物的条件了?

第一,我去看了源代码逻辑,你调用的方法StopAllAction没有中止进行中动作的逻辑(实际上可以:见补充说明)


第二。存在方法pauseAllRunningActions,但在源代码全局搜索并没认使用过。因此这个方法应该是提供给用户自己调用

补充说明。CCActionManager活在update函数中更新每一个动作。也就是说移除的元素将不会
被update函数找到并持续更新。因此就停住动作。从逻辑上来讲也是可以停住动作的。

目前查的结果如下
你在当前节点上调用的stopAllActions行为。不会影响子节点动画。如果要停止生成节点的动画
要在生成节点动画上调用stopAllActions

好的 谢谢 我试一试!!

好的 谢谢我试一试 ,这个动画是预制资源 所以遍历起来会很麻烦,不过还是谢谢你给我一个思路方向了

谢谢 这是我的解决办法,可能有更好的 但是暂时只找到这一个办法
//移除主节点上的监听
this.node.stopAllActions();
var children = this.node.children;
var actionManager = cc.director.getActionManager();
for(var i=0;i<children.length;i++){
var child = children[i];
//停止执行节点上的动画
actionManager.pauseTarget(child);
}