Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 88737

Cocos2d-x 3.4 安卓返回键会一直向上传递问题

$
0
0

@super_ye 写道:

.h
// 方法声明
virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
void doBackOperation();

.cpp
// init()中注册真机监听
auto listener = EventListenerKeyboard::create();
listener->onKeyReleased = CC_CALLBACK_2(HelpLayer::onKeyReleased, this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);

// 返回键回调
void onKeyReleased(EventKeyboard::KeyCode keycode, cocos2d::Event *event){
switch (keycode){
case cocos2d::EventKeyboard::KeyCode::KEY_BACKSPACE:
case cocos2d::EventKeyboard::KeyCode::KEY_BACK:
// 返回操作
break;
default:
break;
}
}

这样写是可以收到安卓按下返回键的回调。但是每个界面都注册了监听,只要一按下返回键直接就回到最开始的界面(安卓回调会一直向上传递),不能达到预想方式:按一下安卓返回键,就只传递一次。
例如:大厅 -> 房间选择 -> 帮助弹框。房间选择界面和帮助弹框界面都注册了安卓返回,在帮助弹框界面按一下返回键就直接退回到大厅。手动点击帮助界面上的“返回”按钮不会出现此问题。
请问各位大神,这个问题怎么解决?

帖子: 2

参与者: 1

阅读整个主题


Viewing all articles
Browse latest Browse all 88737

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>