这个button的监听方式和sprite不一样。判断监听类型的时候也被折磨了一下。
闲话少说,直接上代码。一目了然
auto btn_start = static_cast<ui::Button*>(rootPanel->getChildByName("btn_start"));
btn_start->addTouchEventListener(CC_CALLBACK_2(HelloWorld::startBack, this));
然后是回调方法
void HelloWorld::startBack(Ref* pSender, cocos2d::ui::Widget::TouchEventType type)
{
switch (type)
{
case cocos2d::ui::Widget::TouchEventType::BEGAN:
break;
case cocos2d::ui::Widget::TouchEventType::MOVED:
break;
case cocos2d::ui::Widget::TouchEventType::ENDED:
CCLOG("click start end button");
break;
case cocos2d::ui::Widget::TouchEventType::CANCELED:
break;
default:
break;
}
}
网上有的说是ui::TouchEventType。可是总是报错。后来找了一圈,才发现原来是
cocos2d::ui::Widget::TouchEventType