[iOS] runAction 和 cc.callFunc 使用的问题

  • cocos2d-x 版本: 3.15.1 (js)
  • 测试机型: iphone(各个型号都会)

在场景中 运行 下面函数:

 _testAction: function(cb){
     this._testNode.runAction(cc.sequence(
         cc.delayTime(0.1),
         cc.callFunc(function(){
             if(cb){
                 cb();
             }
         }, this),
         cc.callFunc(function(){
             this._testAction(cb);
         }, this)
     ));
 }

在其他平台(H5/Android)这个函数会一直运行下去
但是在ios平台 会随机的断掉

有人知道是什么原因吗?

记得有个cc.RepeatForever

还有检查你的逻辑有没有调用stopAllActions

应该不是stopAllActions引起的 其他平台能一直运行下去 只有ios平台会随机的断掉
每次断掉时运行的次数都不一样

_testAction: function(cb){
var _self=this;
_self._testNode.runAction(cc.sequence(
cc.delayTime(0.1),
cc.callFunc(function(){
if(cb){
cb();
}

        _self._testAction(cb);
     }) 
 ));

}

你这样改改试试吧

这样也是一样的 冒似只要在callFunc里递归调用另外一个runAction 就会出问题
而且更奇怪的是只有iOS平台会出现这样问题

那你用setTimeout 也可以啊

恩 用scheduleOnce是可以

但是 感觉这个是iOS的一个BUG 想说让引擎人员看下是什么问题 怎么解决

可能是ios的一些机制原因!换一种写法吧,看着挺奇怪的

换一种写法是可以.
我只是想知道为什么这种写法会出问题. 是ios本身的限制,还是cocos的问题