父节点进行for循环,回收子节点到对象池内,循环体内,子节点.parent=null,会报错,这是为什么呢,错误大概意思是,不能置为null
子节点.parent = null 实际上修改了父节点的 children 列表
在父节点进行子节点遍历过程中,修改 children 列表,这种操作太危险了,引擎也没有可靠的办法保障这个行为的结果正常,所以报错禁止这样的操作
遍历一个数组时,不要进行添加和删除元素。
可以先用一个变量let children = this.parent.children; this.parent.removeAllChildren() ;

我现在这样操作的,但是子物体回收后,还在显示,
我这样操作,保证了子节点数组元素个数不会改变,进而可以回收掉每个子节点,但是回收后,子节点,还在显示
其实只要保证数组元素个数不变,是可以进行删除操作的
那我们怎么更改一个child的父节点?
从一个父节点移动到另外一个父节点
用标准的方式,child.parent = null; 只是从 children 中删除,遗漏了太多必要操作
大哥,你这个循环有问题。
一边在删除,一边还在 i++。你在好好想想?
你看懂代码的话,就不会这样说了。。。。
好的,问题解决了。标准做法,就不会有问题,谢了
想了解一下,目前也有遇到類似的問題,標準的作法意思是@@?
child.parent = null;
想了解一下~ 那如果透過以下代碼的方式,是否不好呢?
let _putPool = Array();
for(var j = 0; j < this.handCard.children.length; j++) {
_putPool.push(this.handCard.children[j]);
}
for(var j = 0; j < _putPool.length; j++) {
this._pool.put(_putPool[j]);
}