在使用cocos2d-x的触摸事件监听器的时候,会需要设置setSwallowTouches(bool),这里就分析下该方法的具体分析:
如果在一个scene中我添加了两个layer分别为Layer1和Layer2,并且两者是叠在一起的
假设Layer1的ZOrder大于Layer2的ZOder(即Layer1在Layer2的上一层),则
Layer1和Layer2的触摸事件回调函数调用情况如下
Layer1 setSwallow: false false true true
Layer1 touchBegan result: false true false true
--------------------------------------------------------------
Layer1 touchMoved no yes no yes
Layer2 touchBegan yes yes yes no
总结:
只有Layer1的touchBegan返回true时才会执行Layer1的touchMove事件
只有当Layer1的swallow为true并且Layer1的toucheBegan返回true时Layer2的touchBegan才不会执行。