zoukankan      html  css  js  c++  java
  • cocos2d-x在android中响应返回键

    1.在layer中调用:

    1 setKeypadEnabled(true);

    layer中重写以下两个方法:

     1 virtual void keyBackClicked();
     2 virtual void keyMenuClicked();
     3 
     4 void CBaseLayer::keyBackClicked() 
     5 {
     6 int iManSceneTag = CCDirector::sharedDirector()->getRunningScene()->getTag();//如果是主场景,则退出
     7 if (MAIN_SCENE_TAG == iManSceneTag)
     8 {
     9 CCDirector::sharedDirector()->end();
    10 #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
    11 exit(0);
    12 #endif
    13 }
    14 }
    15 void CBaseLayer::keyMenuClicked() 
    16 {
    17 
    18 
    19 }

    以上CBaseLayer是需要响应返回键事件的所有层的基类,避免了所有层都需要写同样的代码。

    2.或者自己派生CCKeypadDelegate的子类,然后注册为键盘事件的委托调用

    1 class MyKeypadDelegate:public CCKeypadDelegate
    2 {
    3 public:
    4 virtual void keyBackClicked();
    5 virtual void keyMenuClicked();
    6 };
    7 
    8 m_pKeypadDlegate = new MyKeypadDelegate();
    9 pDirector->getKeypadDispatcher()->addDelegate(m_pKeypadDlegate);

    这样就可以全局响应键盘事件

    CCLayer也是继承自CCKeypadDelegate。

  • 相关阅读:
    深入Python(一)
    深入Python(二)
    初识Python(五)
    初识Python(一)
    深入Python(三)
    一、MongoDB的下载、安装与部署
    浏览器上的javascript
    javascript中的事件
    扩展方法
    团队项目开题报告
  • 原文地址:https://www.cnblogs.com/atong/p/3424863.html
Copyright © 2011-2022 走看看