从父

时间:2017-01-05 10:07:47

标签: c++ cocos2d-x cocos2d-x-3.0

我想知道在从中移除任何Node时调用哪个子方法 父节点。

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

我使用此方法删除。

parent->removeChild(child);

这里父是MyLayer,子是MySprite指针。

1 个答案:

答案 0 :(得分:1)

如果孩子正在运行,则会调用这两个方法:

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

如果您删除了cleanup = true(这是默认值)的孩子,则系统也会调用child->cleanup();

因此,最好的解决方案是覆盖孩子的virtual void onExit();功能。在重写方法中,不要忘记调用Node::onExit();或任何超类。