一个ParentLayer上add一个childLayer,childLayer上再add一个childlayer2
按返回键的话,是按什么规律来响应的呢?
我之前一直以为是Parent->child->child2,以前都是这么处理的,也没有问题。
但我刚在做的时候发现,我在一个ParentLayer上add一个childLayer,按返回键却是先child再parent,更奇怪的是,我又在childLayer上再add一个childlayer2,结果响应顺序变成了child->child2->parent
被搞晕了
这个到底是按什么顺序来的啊?
LIFO 后进先出 类似这样吧
cocos2dx对返回键的处理不太符合常理
试想如下场景:
layer1监听返回键,然后上面盖一层layer2,也监听返回键,实际使用中应该是仅layer2需要响应返回键,直到layer2被销毁后,才轮得上layer1响应返回键。
这个无所谓啊,只要有规律,我就可以自己处理,而且,事实上有时候确实是需要layer1处理监听
但是这种乱序就太蛋疼了啊
八成是你自己搞错了,这部分的源码几万年没变过了,不可能出现你描述的那种情况
看看bool CCKeypadDispatcher::dispatchKeypadMSG(ccKeypadMSGType nMsgType)这个的实现就完全清楚了,
它会从最先添加的到最近添加的依次遍历后调用回调