setTimeout 和 setInterval的使用感觉还可以,
但是官方提供的文档里面说计时器更加强大灵活,我发现如果我想每个n秒执行一次cc.log(num);的输出,在我需要的时候(重复次数不确定的情况下)关闭实现起来就要麻烦好多(n秒 != 每帧)
而setInterval就可以
这个你自己处理逻辑就好了啊
取消计时器在任意时候使用 unschedule 就可以了
http://cocos.com/docs/creator/api/classes/Component.html#method_unschedule
假设我在计时器中次数设置了20(因为不知道次数),在执行20次之前我取消了计时器的方法,但是打印日志发现,会执行到20次才停下来,不是道该怎么取消
let num=0;
this.sche=cc.director.getScheduler().schedule(function() {
num++;
cc.log(num+'_ceshi');
if(num>=10){
cc.director.getScheduler().unschedule(this.sche);
}
},this,0.01,20);
this.sche = function() {
num++;
cc.log(num+'_ceshi');
if(num>=10){
cc.director.getScheduler().unschedule(this.sche, this);
}
}
cc.director.getScheduler().schedule(this.sche, this, 0.01, 20);
2赞
可是运行完后就闪退了,计时器也确实取消了,发现时间间隔不能为0.01,改为0.1后就不闪退了,版本1.0.3

