cocos2d-x 开关按钮 三态按钮 的实现 CCMenuItemToggle
二.实现过程:
1.创建CCMenuItemToggle对象:
CCMenuItemImage *btnOn =CCMenuItemImage::create("soundon.png" ,"soundoff.png");
CCMenuItemImage *btnOff=CCMenuItemImage::create("soundoff.png","soundon.png");
CCMenuItemToggle *btnSnd =CCMenuItemToggle::createWithTarget(this,menu_selector(GameLayer::onMusicEnable),btnOn, btnOff,NULL);
2.添加到CCMenu中:
CCMenu* pMenu = CCMenu::create(btnSnd, NULL);
pMenu->setPosition(CCPointZero);
this->addChild(pMenu);
3.响应代码:
void GameLayer::onMusicEnable( cocos2d::CCObject* pObj )
{
CCMenuItemToggle *toggleItem = (CCMenuItemToggle *)pObj;
CCLog("%d",toggleItem->getSelectedIndex());
}
三.其他
1.调用CCMenuItemToggle::createWithTarget (…)状态:
获得:
int nID=toggleItem->getSelectedIndex();
swith(nID)
{
case 0:
//...
break;
case 1:
//...
break;
}
设置:
toggleItem->setSelectedIndex(1);
toggleItem->setSelectedIndex(2);
2.三态按钮也可以采用类似的方法实现,CCMenuItemToggle::createWithTarget()一次传入3种状态,点击后会自动1-2-3-1这样切换 ,只是不能采用上面的方法实现获得和设置状态.