有没有办法将CCSprite子项转移到另一个父项?

时间:2012-10-30 22:28:06

标签: cocos2d-iphone

如果我有一个先前已添加到父CCNode或CCLayer的CCSprite,有没有办法更改其父对象?

我尝试过:

[self setParent:newParent];

...

然后:

[parent removeChild:self cleanup:YES];
[newParent addChild:self];

两者都不起作用......后者实际上导致了崩溃。

2 个答案:

答案 0 :(得分:1)

我假设在第二种情况下,您将自动释放的对象添加到父级。在这种情况下,从父级删除后将删除精灵,因此您将无法将其添加到另一个父级。试试这个

[self retain];
[self removeFromParentWithCleanup:YES];
[newParent addChild: self];
[self release];

如果出现崩溃错误,请在将来发布崩溃消息。它可以帮助找出问题。

答案 1 :(得分:0)

我认为如果你先删除(NO清理),然后添加到新的父,它应该工作。