1

我有这个

    CCMenuItem *play =
    [CCMenuItemSprite itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"play.png"]
                            selectedSprite:[CCSprite spriteWithSpriteFrameName:@"stop.png"]];

    CCMenuItem *stop =
    [CCMenuItemSprite itemWithNormalSprite:[CCSprite spriteWithSpriteFrameName:@"stop.png"]
                            selectedSprite:[CCSprite spriteWithSpriteFrameName:@"play.png"]];


    CCMenuItemToggle *stopPlayButton = 
    [CCMenuItemToggle itemWithTarget:self 
                            selector:@selector(togglePlayStop:)
                               items:Play, botaoStop, nil];


    CCMenu *togglePlayStop = [CCMenu menuWithItems:stopPlayButton, nil];

这是一个播放/停止按钮。它通常显示播放图像。用户点击按钮,电影播放,按钮切换以显示停止图像,因此用户可以停止播放电影。电影走到了尽头。该应用程序停止播放电影。现在我必须切换按钮上的图像,以再次显示播放图像。

如何以编程方式“点击”按钮?

谢谢。

4

2 回答 2

8

CCMenuItemToggle实例具有属性selectedIndex。你既可以读也可以写。在您的情况下,索引 0 处的项目将是您的播放按钮,索引 1 处的项目将是您的停止按钮。因此,在界面中声明您的切换就足够了,然后只需更改selectedIndex属性。两个都

[m_stopPlayToggle setSelectedIndex:0];

m_stopPlayToggle.selectedIndex = 0;

会将您的播放按钮设置为活动状态。

于 2012-07-11T17:27:17.280 回答
0

从 Cocos2d-x 3.0 开始,API 改为MenuItemToggle,用法如下:

//in SomeLayer init()
auto onItem = MenuItemImage::create(...);
auto offItem = MenuItemImage::create(...);
auto aToggle= MenuItemToggle::createWithCallback(CC_CALLBACK_1(SomeLayer::onAToggle, this), 
                                                                    onItem, //0th
                                                                    offItem, //1st
                                                                    NULL);
aToggle->setSelectedIndex(getSomeBoolValueForThisToggle()?0:1); //true to show 0th, false 1st
于 2014-11-20T04:18:46.323 回答