最近因为项目需求需要实现一个功能,当按下Android手机中的返回键时弹出一个对话框,可是当我在程序中添加下面的代码后,编译成功后移植到了android中,当在手机上按下返回键后却没反应,本来是要实现按下返回键退出程序的,却没反应
#include “HelloWorldScene.h”
#include “cocostudio/CocoStudio.h”
#include “ui/CocosGUI.h”
#include “MyScene.h”
using namespace cocostudio::timeline;
Scene* HelloWorld::createScene()
{
auto scene = Scene::create();
auto layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}
bool HelloWorld::init()
{
if(!Layer::init())
{
return false;
}
auto rootNode = CSLoader::createNode("MainScene.csb");
addChild(rootNode);
//注册捕捉监听
auto listenerkeyPad = EventListenerKeyboard::create();
listenerkeyPad->onKeyReleased = CC_CALLBACK_2(HelloWorld::onKeyReleased, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listenerkeyPad, this);
return true;
}
//按键响应函数
void HelloWorld::onKeyReleased(EventKeyboard::KeyCode keycode, Event* event)
{
switch (keycode)
{
//返回键
case EventKeyboard::KeyCode::KEY_BACKSPACE:
{
//结束场景
Director::getInstance()->end();
}
break;
//菜单键
case EventKeyboard::KeyCode::KEY_MENU:
{
//跳转到MyScene场景
Director::getInstance()->replaceScene(MyScene::createScene());
}
break;
//home键
case::EventKeyboard::KeyCode::KEY_HOME:
{
//结束场景
Director::getInstance()->end();
}
break;
default:
break;
}
}