开发者社区> 问答> 正文

cocos2d-x 3.1 android 平台 响应返回键 疑问? :报错

下边的代码是正确的:

auto listener = EventListenerKeyboard::create();
listener->onKeyReleased = CC_CALLBACK_2(WelcomeScene::onKeyReleased, this);

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);


但是下边的确是无效的:

EventListenerKeyboard* listener = EventListenerKeyboard::create();
listener->onKeyReleased = CC_CALLBACK_2(WelcomeScene::onKeyReleased, this);


_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);

请问下  这是为什么啊?

展开
收起
kun坤 2020-06-06 22:09:49 483 0
1 条回答
写回答
取消 提交回答
  • addEventListenerWithSceneGraphPriority(),不知道是不是我见过有史以来最长的C++方法名,2dx感觉更像是Java编码风格套上C++语言(再带上Object C的一点气质)的怪胎.当然仅仅是个人喜好.不喜勿喷.


    ######可是3.0版本开始就有这个了,网上好多源码包括官方test工程都是用这个。。######// 初始化并绑定
    //auto kblsnr = EventListenerKeyboard::create();
    EventListenerKeyboard* kblsnr = EventListenerKeyboard::create();
    kblsnr->onKeyReleased = CC_CALLBACK_2(LayerGame::onKeyReleased, this);
    Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(kblsnr, this);


    我试了一下,没有问题。无论是不是auto都ok

    ######你的也是3.1吗?
    2020-06-06 22:10:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载