问一个关于节点池的问题
游戏偶尔会报这个错误 “child already added it cant be added again”;
“重复添加节点到同一个 parent 或者不同的 parent 上”;
代码定位到了,节点是刚从节点池中取出来了。
官方文档 “返还节点时,对象池内部会调用结点的 removeFromParent(false) 方法,将对象从父节点中移除”
正常来说不应该出现这个错误啊…
各位同学有遇到过类似的错误吗?
另外发现了一个规律,就是节点池使用的越频繁,这个错误出现的概率越大。
在报这个错误的时候,会进入CCCDebug, 这里面断点终止程序了 what???
if (!cond) {
if (msg) {
msg = cc.js.formatStr.apply(null, cc.js.shiftArguments.apply(null, arguments));
}
if (CC_DEV) {
debugger;
}
if (CC_TEST) {
ok(false, msg);
}
else {
throw new Error(msg);
}
}
重点来了 debugger; 这个是什么鬼? 直接抛异常就行了啊。 为啥打断点终止程序运行啊? 直接GG了…