消息分发其实就是根据key值,去找key所对应的函数,然后调用这个函数。
funcs={}
}
function MessageCenter.register(msgId,func)
local msgFuncs = MessageCenter.funcs[msgId]
if msgFuncs == nil then
MessageCenter.funcs[msgId] = {}
msgFuncs = MessageCenter.funcs[msgId]
end
for key, var in ipairs(msgFuncs) do
if var == func then
return
end
end
table.insert(msgFuncs,func)
end
function MessageCenter.unregister(msgId,func)
local msgFuncs = MessageCenter.funcs[msgId]
if msgFuncs ~= nil then
for key, var in ipairs(msgFuncs) do
if var == func then
table.remove(msgFuncs,key)
return
end
end
end
end
function MessageCenter.sendMessage(msgId,data)
local msgFuncs = MessageCenter.funcs[msgId]
--cclogd("sendMessage "..msgId)
if msgFuncs ~= nil then
for key, var in ipairs(msgFuncs) do
var(msgId,data)
end
end
end
function MessageCenter.clear()
MessageCenter.funcs = {}
end