我想知道在从中移除任何Node时调用哪个子方法 父节点。
我通过扩展Layer类创建 MyLayer ,然后添加我自己的sprite MySprite ,它扩展了cocos2d-x框架的Sprite类。当孩子被移除时我需要减少一个计数器,所以我需要一个我在MySprite类中重写的方法。
我使用此方法删除。
parent->removeChild(child);
这里父是MyLayer,子是MySprite指针。
答案 0 :(得分:1)
如果孩子正在运行,则会调用这两个方法:
child->onExitTransitionDidStart();
child->onExit();
如果您删除了cleanup = true
(这是默认值)的孩子,则系统也会调用child->cleanup();
。
因此,最好的解决方案是覆盖孩子的virtual void onExit();
功能。在重写方法中,不要忘记调用Node::onExit();
或任何超类。