报了错误SEL_TouchEvent

大家看看哇 我GOOGLE百度了很久 感觉和别人写的都是一样的哇 为啥我报错呢 环境是VS2012

是不是回调函数参数没写对啊?应该有两个参数~~

遇到同样的问题,参数没错,求解答,谢谢~!

我也是遇到同样的问题 我就直接用的函数地址 传入的
uibutton->addTouchEventListener(this, (ui::SEL_TouchEvent)(&Begin::startButton));
我的处理函数:
void Begin::startButton(Object* object, ui::TouchEventType type)

我连这两个类型都找不到ui::SEL_TouchEvent
ui::TouchEventType,感觉是头文件没包含到的感觉
但是我好像有包含哦TextButton类找得到,Widget类找不到

同样的问题,只包含了头文件uiwidget。h,不知道是不是包含的文件少了

不懂是不是BUG,要使用toucheventselector必须引入cocos2d::ui名字空间,像这样:

USING_NS_CC;
using namespace cocos2d::ui;

原因:
UIWidget.h中的定义:

namespace ui{

CC_DEPRECATED_ATTRIBUTE typedef void (Ref::SEL_TouchEvent)(Ref,TouchEventType);
#define toucheventselector(_SELECTOR) (SEL_TouchEvent)(&_SELECTOR)

}

可以看出SEL_TouchEvent是ui名字空间下的,
而toucheventselector只是个宏,展开后就是
(SEL_TouchEvent)(&_SELECTOR)
如果没有引入ui名字空间,自然找不到SEL_TouchEvent。

3.1.1中SEL_TouchEvent貌似deprecated了,以后的写法难道是?

loginButton->addTouchEventListener(
    ui::Widget::ccWidgetTouchCallback(
    CC_CALLBACK_2(HelloWorld::btnTouch, this)
    ));

void HelloWorld::btnTouch(Ref* pSender, ui::Widget::TouchEventType type){…}

网上找不到这样的写法啊,只能自己修炼C++11了。。