如何在cocos2d- x3.6中调用addEventListener到ScrollView

How to call addEventListener to ScrollView in cocos2d-x 3.6?

本文关键字:调用 addEventListener ScrollView cocos2d- x3      更新时间:2023-10-16

谁能举个例子?我尝试下面的代码,它总是显示错误"没有可行的转换从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));

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);

并实现事件方法