关于计时器

setTimeout 和 setInterval的使用感觉还可以,
但是官方提供的文档里面说计时器更加强大灵活,我发现如果我想每个n秒执行一次cc.log(num);的输出,在我需要的时候(重复次数不确定的情况下)关闭实现起来就要麻烦好多(n秒 != 每帧)
而setInterval就可以:innocent:

这个你自己处理逻辑就好了啊

取消计时器在任意时候使用 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