下面这段代码,b.onEnable()只会被调用一次。是故意这么设计的,还是BUG?不管怎么样,这样子很容易出错啊。
a.addChild(b);
b.removeFromParent();
a.addChild(b)
下面这段代码,b.onEnable()只会被调用一次。是故意这么设计的,还是BUG?不管怎么样,这样子很容易出错啊。
a.addChild(b);
b.removeFromParent();
a.addChild(b)
测试代码如下,未能重现
var a = cc.find('New Node');
var b = new cc.Node('BBB');
b.addComponent('NewScript');
a.addChild(b);
b.removeFromParent();
a.addChild(b);
怀疑你的问题是出在 a 根本就没加到场景中,所以这时 a.addChild 不会触发任何的 onEnable。只有当 a 加到场景后,a 下面的组件才会统一触发一次 onEnable。
log 的collapse 有点奇怪。有的时候 collapse在一起了,有的时候又没有。
cc.log('test 1'); cc.log('aaaa'); cc.log('test 2'); cc.log('bbbb'); cc.log('test 3'); cc.log('aaaa'); cc.log('test 4'); cc.log('bbbb'); cc.log('test 5'); cc.log('aaaa'); cc.log('test 6'); cc.log('bbbb');
上面这个的输出:

感觉应该要么都collapse,要么都不collapse。现在似乎是每两个会collapse在一起。
这是出于性能考虑,collapse 只会搜寻最近5条消息