unschedule一个还没有schedule的函数,会报JS Exception: cc.Scheduler: Illegal target which doesn’t have uuid or instanceId
我现在用1.6.2,以前1.5.2不会有这个问题
那我有什么 办法判断这个函数是否被schedule了吗?
最新1.8.1
1.8.1版本我的游戏有问题,直接crash了,也没提示哪里问题
所以,降到1.6.2
同问, 我能想到的做法是:
- 尽量使用 update 回调做计时器
- 使用额外的 boolean 值判断
- 判断 instanceId 是否存在
这个schedule的问题好像在1.8.2里修复了,但是是不是真修复了不知道
而且,我测试,发现unscheduleAllCallbacks方法没效果
应该是你代码的问题,你好好看一下api
使用计时器 · GitBook
http://docs.cocos.com/creator/manual/zh/scripting/scheduler.html
你是否是直接使用了 cc.director.getScheduler().schedule?
这里的问题不是unschedule了一个还没有schedule的函数引起的,而是你传入的 target 不被支持。scheduler 的 target 只能是 node/component.
另外,你可以用 isScheduled,如果 target 支持的话。
为了避免用户产生同样的困惑,之后我们会对报错信息进行完善。