cocos2d-x EventDispatcher流程图

dispatchEvent总结:

1.调用sortEventListeners对listener排序
2.调用dispatchTouchEventToListeners并传listenervVector和回调onTouchEvent给它

3.按照监听器优先级小于0,优先级==0,优先级>0的顺序执行回调函数

4.调用updateListeners(event);

另外有几个注意事项:

1.当TouchEvent Began来了之后,所有的listener会依次响应Touch Began,然后再依次响应Touch Move,而不是一个listener响应完  began move end之后 轮到下一个listener响应的顺序。

2.吞噬操作只有发生在began return true后才可以发生

3.FixedPriority listener添加完之后需要手动remove,而SceneGraphPriority listener是跟Node绑定的,在Node的析构函数中会被移除。
 

发布了43 篇原创文章 · 获赞 0 · 访问量 1747

猜你喜欢

转载自blog.csdn.net/andy1515/article/details/105049129