如何在cocos2d-x 3.6中将addEventListener调用到ScrollView?

时间:2015-08-21 06:26:12

标签: c++ scrollview cocos2d-x

有人能举个例子吗? 我尝试以下代码,它总是显示错误"没有可行的转换来自xxxxx"在编译时在addEventListener行上。

// create a scrollview and add event listener
auto scrollView = cocos2d::ui::ScrollView::create();
scrollView->addEventListener(CC_CALLBACK_2(GameMenuLayer::didScrollItemInfoPanel, this));

...

// the callback function
void GameMenuLayer::didScrollItemInfoPanel(Ref* ref, cocos2d::ui::ScrollviewEventType eventType) {
    cclog("did scroll...");
}

我看到回调函数定义如下,那么我应该如何修改我的代码呢?

typedef std::function<void(Ref*, EventType)> ccScrollViewCallback;

我尝试了旧方法并且工作正常,但它显示了一条警告消息,即旧方法已被弃用。

scrollView->addEventListenerScrollView(this, SEL_ScrollViewEvent(&GameMenuLayer::didScrollItemInfoPanel));

1 个答案:

答案 0 :(得分:1)

6,3.7我使用以下内容时没有弃用警告。你很亲密,这是一个例子。一个演员和所有人都会工作。

在YOUR_CLASS.cpp中添加事件:

 scrollView->addEventListener((ui::ScrollView::ccScrollViewCallback)CC_CALLBACK_2(YOUR_CLASS::scrollEvent,this));

在YOUR_CLASS.h中添加事件方法声明:

void scrollEvent(Ref* ref, ui::ScrollView::EventType EventType);

实现事件方法。