消息分發其實就是根據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