我使用
创建了一个menuitemmenuItemImage=[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运行时?
答案 0 :(得分:4)
您可以使用以下代码更改normalImage。 我知道这不是一个好习惯,但暂时还可以。
[menuItemImage setNormalImage:[CCSprite spriteWithFile:@"image_new.png"]];
我希望它适合你。
答案 1 :(得分:0)
此问题的解决方案是创建一个名称几乎相同的额外菜单项 通过将visible属性从false更改为true来更改menuItem的状态,反之亦然
示例:
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不可见。