在表达式里面的确改变了,输出也是改变的,但是作为另一个触摸事件回调函数的参数时却依然是初始化的0,并没有实际改变

int num = 0;
auto statelistener = EventListenerCustom::create("MusicIsONed/OFFed", (EventCustom* event)
{
this->setUserData((void*)(event->getUserData()));
bool state = this->getUserData();
if (state)
{
log("收到状态信息:音乐播放中");
num = 2;
log("按下按钮事件改为:%d", num);
}
else
{
log("收到状态信息:音乐停止中");
num = 3;
log("按下按钮事件改为:%d", num);
}
});
Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(statelistener, 1);
button->addTouchEventListener(CC_CALLBACK_2(MusicButton::MusicONOFF, this, num));
return true;
}
void MusicButton::MusicONOFF(Ref* pSender, ui::Widget::TouchEventType type, int num)
{
log("%d", num);
}
void MusicButton::MusicONOFF(Ref* pSender, ui::Widget::TouchEventType type, int num)
{
log("%d", num);
}
此处输出为0,事件肯定监听到了,两个函数都有输出