cocos2dx android 返回键 Menu键 事件

                           如果想要对android 返回键 或者 Menu键 进行事件处理,只需要重写两个函数

          

void keyBackClicked();
void keyMenuClicked();

这两个函数是在CCKeypadDelegate类里,下面是CCLayer类图

红圈。写一个类继承CCLayer,并实现那方法即可。前提是先将setIsKeypadEnabled设为true。


笔记:

1.如果我们需要自己去实现注册时间监听,则不需要调用父类CCLayer::onEnter()方法。

在将其设setIsTouchEnabled为true,在重新自己去注册 触摸函数,registerWithTouchDispatcher,最后就是重写ccTouchBegan等方法了。

这里我们不需要调用CCNode::onEnter()是因为CCLayer::onEnter()已经有调用了。

当然我们也可以不设setIsTouchEnabled为true,采用调用父类CCNode::onEnter()方法,在去注册触摸函数,貌似也行的通。。暂时没发现什么大问题,除了成员变量m_bIsTouchEnabled为false外。。

事件响应规则:

  1. 不同优先级先按优先级响应(即无视入栈顺序,先按优先级响应)
  2. 同一优先级响应的顺序是先进后出。 
  3. 同一对像不能多次入栈,必须先从栈中移除才能再次加入。(也可能是最高响应等级的不能多次入栈)
  4. 如果当前对像有优先响应顺序但没有响应事件,则会分发到后面的对像。
  来源 http://yangzhu6263736.blog.163.com/blog/static/32592760201189113055978/

2.cocos2dx 一个场景的生命周期

将会触发一系列的方法被调用,如下:
1. scene:                    
 SceneB
2. init:                      
SceneB
3. onEnter:                   SceneB
4. Transition 发生.
5. onExit:                    
SceneA
6. onEnterTransitionDidFinish:SceneB

7. dealloc:                   SceneB

 

当一个scene被搬上台面,它会收到onEnterSceneB会收到onExit,最后交替完成在台面上的SceneA收到onEnterTransitionDidFinish。从中我们可以看出,只有当登台的SceneA完全加载完成,下场的SceneB才会被释放。两个scene在某一帧是同时处在内存里的,内存自然会表示压力山大。


参考

http://blog.csdn.net/yanghuiliu/article/details/6908242

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值