定时器代码怎么使用呀?应该放哪个位置,求大神

component.schedule(function() {
// 这里的 this 指向 component
this.doSomething();
}, 5);
这个代码应该放到什么位置,我尝试放到onload,star,update里都不行呀。

上面加 self = this ,里面的this 换成self 或者 ()=>{this. …}

这样吗?我放到onload里,页面加载不了

let self = this;
component.schedule(function() {
     self.dosomething();
},0.01,repeat)

或者

component.schedule(() => {
     this.dosomething();
},0.01,repeat)

页面还是加载不了呀。

有报错么?把报错信息发一下

没有报错。

那你给个demo看一下吧,或者给下工程

我的cocos creator是2.1.0

assets.zip (645.4 KB)
我是想用个计时器实现记录分数

首先,别用cc.director.getWinSize()了,不是有警告么,提示直接用cc.winSize就行
定时器的问题是component变量没有声明就拿来使用,肯定有问题啊。


改成:

let self = this;
this.schedule(function() {
......
})

还有那个repeat参数也是,没定义的属性就往里面传参
如果要有限次数执行,传入的是执行次数,比如数值3。
如果要重复运行,传入的是cc.macro.REPEAT_FOREVER

定义properties属性不定义type,也不赋值,这样你的

self.uiLayerComonent.addGold();

这段代码肯定是有问题的啊。

贴下最终的计时器代码:

let self = this;
this.schedule(function() {
     cc.log("xxxxx");
},0.01,cc.macro.REPEAT_FOREVER);

你的代码里面还有其他的问题,慢慢检查吧,计时器这里这样就没问题了,你可以看到有log的输出。
通过error信息慢慢查

2赞

谢谢。计时器问题解决了