有人能举个例子吗? 我尝试以下代码,它总是显示错误"没有可行的转换来自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));
答案 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);
实现事件方法。