local ZEventDispatchCenter = {} ZEventDispatchCenter.EventType = { -- UPDATE EVENT UPDATE_RETRY = "UPDATE_RETRY", UPDATE_STATE_INFO = "UPDATE_STATE_INFO", UPDATE_PROGRESS_PERCENT = "UPDATE_PROGRESS_PERCENT", UPDATE_SHOW_TIPS = "UPDATE_SHOW_TIPS", -- NET EVENT NET_CONNECT_STATE = "NET_CONNECT_STATE", HEARTBEAT = "HEARTBEAT", JOIN_MEETING_REQ = "JOIN_MEETING_REQ", JOIN_MEETING_RESP = "JOIN_MEETING_RESP", MEETING_SCREEN_RESP = "MEETING_SCREEN_RESP", -- CONFERENCE EVENT CONFERENCE_START = "CONFERENCE_START", -- UI PLAYER_MOVE_TO_CHAIRS = "PLAYER_MOVE_TO_CHAIRS", CAMERA_ROTATE_AFTER_PLAYER = "CAMERA_ROTATE_AFTER_PLAYER", UPDATE_MEETING_SCREEN = "UPDATE_MEETING_SCREEN" } ZEventDispatchCenter.EventQuene = {} function ZEventDispatchCenter:RegisterEvent(eventType, callback) print("--------------------> ZEventDispatchCenter:RegisterEvent eventType", eventType, callback) if self.EventType[eventType] == nil or type(callback) ~= "function" then print("ZEventDispatchCenter:RegisterEvent param is error~ eventType:", eventType) return end if self.EventQuene[eventType] == nil then self.EventQuene[eventType] = {} end --local index = table.getn(self.EventQuene[eventType]) --self.EventQuene[eventType][index + 1] = callback table.insert(self.EventQuene[eventType], callback) end function ZEventDispatchCenter:UnregisterEvent(eventType, callback) print("--------------------> ZEventDispatchCenter:UnregisterEvent eventType", eventType, callback) if self.EventQuene[eventType] == nil or type(callback) ~= "function" then print("ZEventDispatchCenter:UnregisterEvent param is error~ eventType:", eventType) return end for k, v in pairs(self.EventQuene[eventType]) do if callback == v then table.remove(self.EventQuene[eventType], k) return end end end function ZEventDispatchCenter:DispatchEvent(eventType, ...) print("--------------------> ZEventDispatchCenter:Dispatch eventType", eventType) if self.EventType[eventType] == nil then print("ZEventDispatchCenter:DispatchEvent eventType is unknow : ", eventType) return end if self.EventQuene[eventType] == nil then print("ZEventDispatchCenter:DispatchEvent callback is nil eventType:", eventType) return end for k, v in pairs(self.EventQuene[eventType]) do v(...) end end return ZEventDispatchCenter