cc.callFunc很大几率不执行

for(let i=0;i<needNode.length;i++){
console.log(i);
let repeat = cc.sequence(
cc.repeat(
cc.sequence(
cc.scaleTo(0.2,1.1),
cc.scaleTo(0.2,1)
),3),
cc.callFunc(()=>{
console.log("我执行了 "+i);
})
);
needNode[i].runAction(repeat);
}

还查了下相关的问题有的说在cc.callFunc后面再加一个无用的动作试了也一样

@huanxinyin 能帮忙看下吗

@panda

版本是creator2.1.3

在浏览器上测试就这样了

0
1
2
我进来了 0
我进来了 1
我进来了 2
0
1
2
我进来了 0
我进来了 1

0
1
2
3
4
5
我进来了 0
我进来了 1
我进来了 2
我进来了 3
我进来了 4
我进来了 5
0
1
2
我进来了 0

for(let i=0;i<needNode.length;i++){
console.log(i);
let ani0 = cc.tween().to(0.2,{scale: 1.1});
let ani1 = cc.tween().to(0.2,{scale: 1});
cc.tween(needNode[i])
.repeat(3,cc.tween().sequence(
ani0,
ani1
))
.call(() => {
console.log("我进来了 "+i);
this.clearItem(i,needNode[i],dataIdx,needNode.length);
})
.start()
// let repeat = cc.sequence(
// cc.repeat(
// cc.sequence(
// cc.scaleTo(0.2,1.1),
// cc.scaleTo(0.2,1)
// ),3),
// cc.callFunc(()=>{

        //     }),
        // );
        // needNode[i].runAction(repeat);
    }

我了个去,这也太坑了吧。。下面这段屏蔽改成cc.tween就不会出现了。

不知道在其他平台还会不会出现

克隆一下试试?
repeat.clone()

是因为你第二次循环的时候把节点上的动作停掉了吧?cc.tween没有停掉所以执行了回调

你看代码了吗?哪来的停止动作

没道理啊 有demo项目吗 发一个看看

刚写了个demo测试了下知道原因了,因为我这个是类似消消乐的游戏,我node消除了只是把它隐藏了,然后这个needNode里会包含隐藏的node,然而runAction只有在node显示的时候才会执行,cc.tween隐藏他也会执行。

1赞

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。