在cocostudio中做UI界面的时候,注意给控件设置tag
.h中声明方法
void addBtn(const std::string &name);
void touchBtn(cocos2d::Ref * pSender , cocos2d::ui::TouchEventType type);
.cpp中实现
void GameScene ::addBtn(const std::string & name)
{
//增加按钮事件
Button * btn = (Button *)seedNodeByName(rootNode , name);
btn->addTouchEventListence(this,touchevenselector(GameScene::touchBtn));
}
//拿.csb文件中的Button
addBtn("btn_close");
//seekNodeByName(rootNode,"btn_close") 拿到该按钮设为可见
seekNodeByName(rootNode,"btn_close")->setVisible(true);
//按钮的点击回调
void GameScene :: touchBtn(cocos2d::Ref * pSender , cocos2d::ui::TouchEventType type)
{
Button * btn =(Button *)pSender;
switch(type){
case TouEventType :: TOUCH_EVENT_BEGAN:
btn->setScale(0.9f);
break;
case TouchEventType :: TOUCH_EVENT_ENDED:
btn->stScale(1.0f);
//通过tag拿到对应的按钮
switch(btn->getTag()){
//例如tag为1001的按钮是暂停按钮
case 1001:
//这里就做暂停操作
break;
//......其他的按钮的case和对应的操作
default:
break;
}
break;
default:
break;
}
}