diff options
author | chai <chaifix@163.com> | 2018-07-26 20:34:10 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-07-26 20:34:10 +0800 |
commit | 2542f56bca2556b4393d382688be74c1612b2862 (patch) | |
tree | a34a497e0b68c52d711fde6ed013e6d9a42bded5 /EventMsgCenter/EventMsgCenter.lua | |
parent | 5815fa72ac78149d3efac6ab482056de0b7dbd03 (diff) |
+UI module
Diffstat (limited to 'EventMsgCenter/EventMsgCenter.lua')
-rw-r--r-- | EventMsgCenter/EventMsgCenter.lua | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/EventMsgCenter/EventMsgCenter.lua b/EventMsgCenter/EventMsgCenter.lua index ffb784d..8ca7a5b 100644 --- a/EventMsgCenter/EventMsgCenter.lua +++ b/EventMsgCenter/EventMsgCenter.lua @@ -2,11 +2,16 @@ local _broadcast = {} local EventMsgCenter = {} -EventMsgCenter.registerMsg = function(e, callback) +EventMsgCenter.registerMsg = function(e, callback, first) if _broadcast[e] == nil then _broadcast[e] = {} + end + first = first or false + if not first then + table.insert(_broadcast[e], callback) + else + table.insert(_broadcast[e], 1, callback) end - table.insert(_broadcast[e], callback) end EventMsgCenter.unRegisterMsg = function(e, callback) @@ -20,15 +25,23 @@ EventMsgCenter.unRegisterAllMsgByEvent = function(e) if _broadcast[e] == nil then return end - + _broadcast[e] = nil end EventMsgCenter.unRegisterAllMsg = function() - + _broadcast = {} end EventMsgCenter.sendMsg = function(e, ...) - + local callbacks = _broadcast[e] + if callbacks == nil then + return + end + for _, f in ipairs(callbacks) do + if f ~= nil then + f(...) + end + end end return EventMsgCenter |