请问下边这段代码,随便我点击三个按钮中的任何一个,为什么返回的this对象都是最后一个btnShop呢?我想要的是当我点击btnRole时,回调函数(m_pListener->*m_clickFunc)(this);中返回的应该是btnRole;点击btnZB时,回调函数返回的this应该是btnZB,请问各位应该怎么写呢?
BaseButton是继承于public CCSprite, public CCTouchDelegate的,
BaseButton *btnRole = BaseButton::create(“btn_k.png”);
BaseButton *btnZB = BaseButton::create(“btn_zt.png”, “btn_k.png”);
BaseButton *btnShop = BaseButton::create(“btn_shop.png”, “btn_k.png”);
btnRole->setClickListener(this, callfuncO_selector(StartMenu::menuClick));
btnZB->setClickListener(this, callfuncO_selector(StartMenu::menuClick));
btnShop->setClickListener(this, callfuncO_selector(StartMenu::menuClick));
void BaseButton::setClickListener(CCObject* object, SEL_CallFuncO clickFunc)
{
m_pListener = object;
m_clickFunc = clickFunc;
}
void BaseButton::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent){
if(m_pListener&&m_clickFunc)
(m_pListener->*m_clickFunc)(this);
}