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将不同界面分开管理,同个事件名+同个界面也可以有多个函数在
文章来源: blog.csdn.net,作者:呦呦鹿鸣.,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/zhang1461376499/article/details/109843025
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)