我有这个
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];
这是一个播放/停止按钮。它通常显示播放图像。用户点击按钮,电影播放和按钮切换以显示停止图像,因此用户可以停止播放电影。电影到了终点。该应用程序停止播放电影。现在我必须切换按钮上的图像,再次显示播放图像。
如何以编程方式“点按”按钮?
感谢。
答案 0 :(得分:8)
CCMenuItemToggle
实例具有属性selectedIndex
。你可以读写它。在您的情况下,索引0处的项目将是您的播放按钮,索引1处的项目将是您的停止按钮。因此,在界面中声明切换是完全的,然后只需更改selectedIndex
属性即可。两个
[m_stopPlayToggle setSelectedIndex:0];
和
m_stopPlayToggle.selectedIndex = 0;
将播放按钮设置为有效。
答案 1 :(得分: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