我使用以下代码:
CCMenuItemFont *controllerItem = [CCMenuItemFont itemFromString:@"Analog" target:self selector:@selector(controllerToggle)];
CCMenu *controllerTypeMenu = [CCMenu menuWithItems:controllerItem, nil];
[controllerTypeMenu alignItemsVerticallyWithPadding:30.0f];
controllerTypeMenu.position = CGPointMake(160.0f, 240.0f);
[self addChild:controllerTypeMenu z:0 tag:ControllerMenu];
}
-(void) controllerToggle
{
CCMenuItemFont *controllerItem = [self getChildByTag:888];
NSString * text = [NSString stringWithFormat: @"switching.. %f", CCRANDOM_0_1()];
[controllerItem setString:text];
}
在controllerToggle中我想访问controllerItem并将String更改为另一个值。这可能吗?我检查了CCMenu并根据数组顺序添加了CCMenuItems作为子项。但这不是一个优雅的解决方案。出于同样的原因,我无法将CCMenuItem添加到场景中,因为它会给我“孩子已添加错误”。所以我觉得我应该写自己的“开关”按钮,但我想知道是否已经有了一些东西..
任何帮助?谢谢!
答案 0 :(得分:3)
您可以将所需的菜单项声明为类成员。通过这种方式,您可以随时访问它
答案 1 :(得分:0)
已经有CCMenuItemToogle用于在点击事件中切换任何菜单项的标题或图像。而不是采用CCMenuItem,你可以使用CCMenuItemToggle ..
以下是示例代码 CCmenuItemToggle * cam = [CCMenuItemToggle itemWithTarget:self selector:@selector(openCameraController)items:cameraOn,cameraOff,nil]; 其中cameraOn和cameraOff是两个简单的CCMenuItemImage,它在CCMenuItemToggle中添加,并且此菜单中还添加了CCmenuItemToggle。
现在每次点击CCMenuItemToggle都会有相同菜单项的cameraOn和cameraOff状态。
希望这会有所帮助......