当我从 parent 中删除节点时调用哪个方法

Which method get called when i remove a node from parent

我想知道 child 的哪个方法在我们从它的节点中删除任何节点时被调用 parent.

我通过扩展 Layer class 创建了 MyLayer 然后添加了我自己的精灵 MySprite 它扩展了 Sprite class 的 cocos2d-x 框架。当 child 被移除时,我需要减少一个计数器,所以我需要一个在我的 MySprite class 中重写的方法。

我是用这个方法去除的

parent->removeChild(child);

这里parent是MyLayer,child是MySprite指针

如果child是运行这两个方法将被调用:

child->onExitTransitionDidStart();
child->onExit();

如果用cleanup = true(默认值)删除child,child->cleanup();也会被调用。

因此,对您来说最好的解决方案是覆盖 child 的 virtual void onExit(); 函数。在覆盖的方法中不要忘记调用 Node::onExit(); 或任何你的超类。