0

我正在使用以下代码:

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 添加到场景中,因为它会给我“孩子已添加错误”。所以我觉得我应该写自己的“开关”按钮,但我想知道那里是否已经有东西了..

有什么帮助吗??谢谢!

4

2 回答 2

3

您可以将所需的菜单项声明为类成员。通过这种方式,您将能够随时访问它

于 2012-09-03T11:26:47.040 回答
0

已经有 CCMenuItemToogle 用于在单击事件时切换任何菜单项的标题或图像。您可以使用 CCMenuItemToggle 代替 CCMenuItem。

这是一个示例代码 CCmenuItemToggle *cam=[CCMenuItemToggle itemWithTarget:self selector:@selector(openCameraController) items:cameraOn,cameraOff, nil]; 其中 cameraOn 和 cameraOff 是两个简单的 CCMenuItemImage ,它被添加到 CCMenuItemToggle 中,并且这个 CCmenuItemToggle 被添加到菜单中。

现在,每次单击 CCMenuItemToggle 时,同一个菜单项都会有一个 cameraOn 和 cameraOff 状态。

希望这会有所帮助...

于 2012-09-04T07:59:53.113 回答