1.有两种触摸分发,标准型和目标型,分别为:CCStandardTouchDelegate和CCTargetedTouchDelegate的分发;
2.CCTargetedTouchDelegate可以吞噬触摸,就只会响应一个触摸,减少了分发的时间,处理触摸效率好点;但是是否吞噬成功有两个条件:
2.1 触摸代理触摸时,需要设置为bSwallowsTouches = true;
2.2 在ccTouchBegan返回true;
实现了CCTargetedTouchDelegate的类,只要在ccTouchBegan返回了true,不管是设置吞噬为true,起都可以响应后面的ccTouchMove等触摸事件;
如果在ccTouchBegan返回了false,表明此类后续不处理次触摸,除了ccTouchBegan;
3.CCStandardTouchDelegate不能吞噬触摸。并且会在CCTargetedTouchDelegate后面接收触摸事件。
4.CCTouchDispatcher分发触摸事件,不分层(z)的高低,只分权限(nPriority)的高低。并且相同权限的触摸代理,接受触摸的先后顺序不一定,但能保证都能接收到触摸。
总结:
1.对于单个类的触摸处理,优先使用CCTargetedTouchDelegate。如果发现是触摸到本类范围内,则返回true,吞噬触摸;