初学cocos2dx时总弄不明白setVisible和setEnabled到底哪不一样,于是做一个下方的小例子:
首先在一个新场景中创建一个menu
CCMenuItemImage *pCloseItem = CCMenuItemImage::create("back.png","back.png",this,menu_selector(GameMain::menuBackCallback) );<span> </span>//此回调处打log“111111” pCloseItem->setPosition( ccp(size.width/2,size.height/2 - 50) ); pCloseItem->setScale(0.5); CCMenu* pMenu = CCMenu::create(pCloseItem,NULL);pMenu->setVisible(false);
pMenu->setEnabled(false);
1.pMenu->setVisible(false); pMenu->setEnabled(false);
结果
没有显示,点击屏幕没有Log出现
2.pMenu->setVisible(true); pMenu->setEnabled(false);
有按钮显示,没有log出现
3.pMenu->setVisible(false); pMenu->setEnabled(true);
没有显示,点击屏幕没有Log出现
4.pMenu->setVisible(true); pMenu->setEnabled(true);
有显示,点击屏幕有Log出现
总结:setVisible 控制按钮是否显示
setEnabled 控制按钮是否可用
开发时最好setVisible 与setEnabled 成对使用