2017-01-05 10 views
1

親ノード からノードを削除するときに、どの子メソッドが呼び出されるかを知りたい。親からノードを削除するときに呼び出されるメソッド

私は、拡張レイヤクラスによってMyLayerを作成し、cocos2d-xのフレームワークのSpriteクラスを拡張MySpriteをは、私自身のスプライトを追加します。子が削除されたときにカウンターを減らす必要があるので、MySpriteクラスでオーバーライドするメソッドが必要です。

このメソッドを使用して削除します。

parent->removeChild(child); 

ここで、parentはMyLayer、childはMySpriteポインタです。

答えて

1

子供はこれらの2つの方法を実行している場合が呼び出されます:あなたは(デフォルト値)cleanup = trueと子を削除した場合

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

child->cleanup();も呼ばれます。

子供のために、virtual void onExit();の機能をオーバーライドするのが最適です。オーバーライドされたメソッドでは、Node::onExit();またはスーパークラスが何であるかを忘れずに呼び出してください。

+0

同じデストラクタを使用できますか? – Aryan

+2

はい、デストラクタはオブジェクトの削除時にのみ呼び出され、オブジェクトがステージから削除されるとonExitが呼び出されます。 – Boby

+0

onExit()は、親からスプライトを削除したときにデストラクタがすぐに呼び出されないため、デストラクタより優れたオプションです。 – Aryan

関連する問題