如果想要对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外。。
事件响应规则:
- 不同优先级先按优先级响应(即无视入栈顺序,先按优先级响应)
- 同一优先级响应的顺序是先进后出。
- 同一对像不能多次入栈,必须先从栈中移除才能再次加入。(也可能是最高响应等级的不能多次入栈)
- 如果当前对像有优先响应顺序但没有响应事件,则会分发到后面的对像。
2.cocos2dx 一个场景的生命周期
将会触发一系列的方法被调用,如下:
1. scene:
2. init:
3. onEnter:
4. Transition 发生.
5. onExit:
6. onEnterTransitionDidFini
7. dealloc:
当一个scene被搬上“台面”,它会收到onEnter,SceneB会收到onExit,最后交替完成在台面上的SceneA收到onEnterTransitionDidFini
参考