Как вызвать addEventListener для ScrollView в cocos2d-x 3.6?

Кто-нибудь может привести пример?
Я пытаюсь следующий код, он всегда показывает ошибку «Нет жизнеспособного преобразования из 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

Решение

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

И реализовать метод события.

1

Другие решения


По вопросам рекламы [email protected]