From 2542f56bca2556b4393d382688be74c1612b2862 Mon Sep 17 00:00:00 2001 From: chai Date: Thu, 26 Jul 2018 20:34:10 +0800 Subject: +UI module --- EventMsgCenter/EventMsgCenter.lua | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'EventMsgCenter/EventMsgCenter.lua') 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 -- cgit v1.1-26-g67d0