0

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

我试着做:

[self setParent:newParent];

...

接着:

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

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

4

2 回答 2

1

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

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

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

于 2012-10-31T12:42:01.493 回答
0

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

于 2012-10-30T22:48:20.897 回答