From d557097244f512acfdc2174383820180af9df01e Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 2 Aug 2018 20:30:05 +0800 Subject: *update --- EventMsgCenter/EventMsgCenter.lua | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'EventMsgCenter/EventMsgCenter.lua') diff --git a/EventMsgCenter/EventMsgCenter.lua b/EventMsgCenter/EventMsgCenter.lua index 43e859b..7b944c2 100644 --- a/EventMsgCenter/EventMsgCenter.lua +++ b/EventMsgCenter/EventMsgCenter.lua @@ -1,13 +1,14 @@ +local EventMsgCenter = {} + -- local _broadcast = {} -local EventMsgCenter = {} EventMsgCenter.registerMsg = function(e, callback, first) if _broadcast[e] == nil then _broadcast[e] = {} end first = first or false - EventMsgCenter.unRegisterMsg(e, callback) + EventMsgCenter.unregisterMsg(e, callback) if not first then table.insert(_broadcast[e], callback) else @@ -15,21 +16,27 @@ EventMsgCenter.registerMsg = function(e, callback, first) end end -EventMsgCenter.unRegisterMsg = function(e, callback) - if _broadcast[e] == nil or callback == nil then - return +local removeElement = function(t, e) + for i, v in ipairs(t) do + if v == e then + table.remove(t, i) + break + end end - table.remove(_broadcast[e], callback) end -EventMsgCenter.unRegisterAllMsgByEvent = function(e) - if _broadcast[e] == nil then +EventMsgCenter.unregisterMsg = function(e, callback) + if _broadcast[e] == nil or callback == nil then return end + removeElement(_broadcast[e], callback) +end + +EventMsgCenter.unregisterAllMsgByEvent = function(e) _broadcast[e] = nil end -EventMsgCenter.unRegisterAllMsg = function() +EventMsgCenter.unregisterAllMsg = function() _broadcast = {} end -- cgit v1.1-26-g67d0