scheduleOnce在微信小游戏里报错selector already scheduled

scheduleOnce在CocosCreator模拟器下工作正常,在微信小游戏里报错:selector already scheduled。
每隔1,2,3,4秒调用一次scheduleOnce,第一次第二次运行正常,第三次开始报错。

  • Creator 版本:1.8,2

  • 目标平台: 微信小游戏

  • 详细报错信息,包含调用堆栈:

selector already scheduled

  • 出现概率:100%

请问有没有人碰到过类似的问题,以及如何解决

你可以在再次调用前先停止下,再开启

试过了,就是不报错,第三次的函数并没有被执行。感觉是在小程序里schedule执行完之后没有被正常释放的样子

或者是途中调用者变了,能想到的就这两种可能

这样不行的话你就只能自己update里加个判断或者 用回调代替

下班了再试试,3Q

代码
onNextMessage() {

    var serif = this.chapter.getSerif();
    if (serif == null) {
        return;
    }
    this.createMessage(serif);
    this.scheduleOnce(this.onNextMessage,serif.delay);

},

微信开发工具提示错误
cc.Scheduler#scheduleSelector: Selector already scheduled. Updating interval from: 0 to 0

this.scheduleOnce(this.onNextMessage,serif.delay);
改成
this.scheduleOnce(function (){
this.onNextMessage();
},serif.delay);
就可以用了

1赞

能解释一下原理吗

这个 引擎的人才能解释吧~:grinning:

同样遇到了这个问题,修改写法后ok,有大佬解释一下原理嘛?
image

https://www.cnblogs.com/kingbook/p/10946801.html 参考这个