1

我创建了一个菜单项

menuItemImage=[CCMenuItemImage itemFromNormalImage:@"image_old.png" selectedImage:@"image_old.png" target:self selector:@selector(play)];

我正在使用下面的代码来更改 CCMenuItemImage 但它不起作用。它说不兼容的指针类型将“CCTextured2D”发送到 normalimage 的参数。

 [menuItemImage setNormalImage:[[CCTextureCache sharedTextureCache]addImage:@"image_new.png"]];

如何更改 menuItemImage 运行时?

4

2 回答 2

4

您可以使用以下代码更改 normalImage。我知道这不是一个好习惯,但暂时可以正常工作。

[menuItemImage setNormalImage:[CCSprite spriteWithFile:@"image_new.png"]];

我希望它对你有用。

于 2012-07-03T10:37:06.077 回答
0

此问题的解决方案是制作一个具有几乎相同名称的额外菜单项 通过将可见属性从 false 交换为 true 来更改 menuItems 的状态,反之亦然

例子:

CCMenuItem *menuItemOn;
CCMenuItem *menuItemOff;

-(void)ChangeMenuItem{
menuItemOff = [CCMenuItemImage itemWithNormalImage:@"buttonOff.png" selectedImage: @"buttonOff.png"  target:self selector:@selector(Method_off)];
 itemJoinOff = [CCMenuItemImage itemWithNormalImage:@"buttonOn.png.png" selectedImage: @"buttonOn.png" target:self selector:@selector(Method_On)];
menuItemOff.visible = false;
menuITemOn.visible = true;
menuItemOff position ..... etc
} 

每当菜单 On/Off 状态必须更改时,使 MenuItemOn 可见而 menuItemOff 不可见。

于 2014-05-26T18:03:21.230 回答