cocos2dx-lua 高效的 事件分发器(EventDispatcher)
【摘要】
--code:zpengcheng
--Date:2020/11/20
local Warn = function(content)
print("Warn: "..content)
end
---...
--code:zpengcheng
--Date:2020/11/20
local Warn = function(content)
print("Warn: "..content)
end
----------------------------------Event:事件对象--------------------------------------
local Event = {}
function Event:init()
self.eventName = nil
self.callBack = nil
self.target = nil
self.isOnce = false
end
function Event:create(eventName, callBack, target, isOnce)
self:init()
self.eventName = eventName
self.callBack = callBack
self.target = target
self.isOnce = isOnce
end
function Event:execute(...)
self.callBack(...)
end
----------------------------------EventMgr:事件管理器--------------------------------------
local EventMgr = {}
function EventMgr:init()
self.isDispatching = false
self.eventsMap = {} --正式列表
self.eventsReadyAdd = {} --即将要添加到正式列表的临时列表
self.eventsReadyRemove = {} --即将要从正式列表删除的临时列表
end
--[[
*外部调用方法*
注册事件:同一个事件名可以有多个界面监听,所以这里用target将不同界面分开管理,同个事件名+同个界面也可以有多个函数在
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
文章来源: blog.csdn.net,作者:呦呦鹿鸣.,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/zhang1461376499/article/details/109843025
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)