cocos3.x的事件模式总结

cocos3.x的事件模式总结,第1张

概述http://cn.cocos2d-x.org/tutorial/show?id=835 http://cn.cocos2d-x.org/tutorial/show?id=2343 Event,EventLisrener,EventDispatcher,Touch 1.Event:Type,isStoped,curTarget enum class Type     {         TOUCH

http://cn.cocos2d-x.org/tutorial/show?id=835

http://cn.cocos2d-x.org/tutorial/show?id=2343

Event,Eventlisrener,Eventdispatcher,touch



1.Event:Type,isstoped,curTarget
enum class Type
{
touch,
KEYBOARD,
acceleration,
MOUSE,
CUSTOM
};
事件的各类分别为 ,触摸事件, 键盘事件, 加速事件,鼠标事件, 用户自定义事件。


EventCustom:自定义事件(eventname,userData)


2.Eventlisrener(抽象类):Type,onEvent|..ListenerID,isRegisterd,paused,isEnabled..
enum class Type
{
UNKNowN,
touch_ONE_BY_ONE,
touch_ALL_AT_ONCE,
CUSTOM
};
这个类型与Event的类型有一小点不同,就是将触摸事件类型分成了 One by One (一个接一个) 与
All At Once (同时一起)两种


实例:EventListenerCustom,通过create生成实例,关联基类onEvent的方式,
在init中生成一个函数回调关联到基类的onEvent,在回调中执行onEventCustom


3.Eventdispatcher(各种map,vector的侦听器列表,add,remove,dispatchEvent)
场景节点优先级一般都是0,侦听器的存放顺序就是小于0,等于0,大于0的顺序,触发时间在渲染前,渲染中,渲染后


ListenerMap<ListenerID,EventlisrenerVector> ->保存所有事件侦听器的列表
priortyDirtyFlagMap<ListenerID,DirtyFlag> ->有脏标记的侦听器的列表
nodeListenersMap<node,vector<Eventlisrener>> ->node类型节点的事件侦听器列表
nodePriorityMap<node,int> ->node节点与事件级别的列表
globalZOrderNodeMap<float,vector<Node>> ->节点的Zorder与节点的指针列表
toAddedListeners ->事件分发后加入的侦听器列表
dirtyNodes ->与场景优先级侦听器相关联的node节点
isdispatch ->描述事件分发起是hi否在分发事件
internalCustomListenerIDs ->内部自定义的侦听器索引


add函数:
addEventListenerWithSceneGraPHPriority(Listener,node)
设置优先级为0,从注释上我们已经得到这个信息了,这个方法加入的侦听器都是显示对象的,所以优先级都为0
addEventListene(Listener):判断当前是否在分发信息
不在分发,强制加入 forceAddEventListener(Listener)
正在分发消息那么新加入的侦听器就放到了临时数组_toAddedListeners里面


_ListenerMap 用以侦听器类型(就是侦听器的ID)索引,值是一个数组,用来储存侦听同一侦听器ID的所有侦听器对象。
_priorityDirtyFlagMap 用来标记一类ID的侦听器列表是对象是否有变化,侦是侦听器ID,值为侦听级别。
_nodeListenersMap 用来记录结点类型数据的侦听器列表,通俗点说就是以结点为索引所有侦听的事件都存在这个map里面。

_dirtyNodes 现在可以理解什么是脏结点了,就是侦听器有变化的结点。


未完。。。。。

总结

以上是内存溢出为你收集整理的cocos3.x的事件模式总结全部内容,希望文章能够帮你解决cocos3.x的事件模式总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1037528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存