【问题】组件定时器scheduleOnce有几率未执行

  • Creator 版本:2.0.7

  • 目标平台:Web

  • 详细报错信息,包含调用堆栈:未报错,不是由于报错引起的

  • 重现方式:概率重现,整理过demo,但基本上重现不了,可能跟整体游戏流程有关

  • 之前哪个版本是正常的 :一直用的 版本2.0.7

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :win10 chrome浏览器

  • 编辑器之前是否有其它报错 :没有

**问题描述:**上述函数是通过事件回调机制执行的,每次发生碰撞后,会执行此函数,但是在多次碰撞后,该函数中的this.scheduleOnce没有执行,如日志,正常情况下,图标:1日志打印后0.3秒打印图标:2的日志,但是后面的图标:1打印出来后,没有图标:2的日志,且游戏流程中断;看到的表现就是 scheduleOnce没有执行(说明:其他流程与之没有联系,且执行的时候,不会存在异步的问题,都是单次执行完毕,才会执行下一次)
**调试措施:**断点调试过,但是断点时,执行的都是正常的(此处尝试在20次以内,没太多时间)
**优化措施:**目前是将scheduleOnce替换为setTimeout,执行多次后未遇到流程中断问题

不知道有没有大佬遇到过同样的问题,求指点:joy::joy::joy:

我看下

谢谢你的反馈。我这边无法复现你的问题,说下你的creator版本,然后提供一个你复现的demo给我?

2.3.3我刚遇见了这问题··········
unschedule再调用once,也是不执行·······
头大······

重现方法是在schedule的回调中,调用schedule的自身(回调函数)····
还是说这种方法不被允许?

代码贴出来看看吧。

random_move:function(){
console.log(“random_move==>>执行了”);
this.scheduleOnce(this.random_move,1);

//游戏逻辑xxxxx
//

},

1赞

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