CCMenuItemImage - setSelectedImage和setNormal Image

时间:2012-11-12 23:59:59

标签: objective-c ios cocos2d-iphone

使用CCMenuItemImage时可以解决这个问题。看来我必须将SelectedImage和NormalImage设置为不同的CCSprites,否则会导致我的应用程序崩溃。 (我计划稍后为这两个州使用独特的资产)CCMenuItemImage * ItemButton;已定义/初始化。

以下不起作用:

CCSprite *updatedSprite = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSprite];
[ItemButton setSelectedImage:updatedSprite];

以下工作正常:

CCSprite *updatedSpriteNormal = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setNormalImage:updatedSpriteNormal];

CCSprite *updatedSpriteSelected = [CCSprite spriteWithFile:@"1_button.png"];
[ItemButton setSelectedImage:updatedSpriteSelected];

很想知道为什么会这样,我已经做了一些挖掘,但找不到任何确定的东西。任何见解都会很棒。

1 个答案:

答案 0 :(得分:2)

当你setSelectedImage时,精灵被作为子项添加到ItemButton,因此它有一个父。您必须为setNormalImage创建第二个CCSprite实例,因为cocos2d的节点层次结构将始终阻止将已添加父项的对象添加为子项。