ZEventDispatchCenter.lua.txt 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. local ZEventDispatchCenter = {}
  2. ZEventDispatchCenter.EventType = {
  3. -- UPDATE EVENT
  4. UPDATE_RETRY = "UPDATE_RETRY",
  5. UPDATE_STATE_INFO = "UPDATE_STATE_INFO",
  6. UPDATE_PROGRESS_PERCENT = "UPDATE_PROGRESS_PERCENT",
  7. UPDATE_SHOW_TIPS = "UPDATE_SHOW_TIPS",
  8. -- NET EVENT
  9. NET_CONNECT_STATE = "NET_CONNECT_STATE",
  10. HEARTBEAT = "HEARTBEAT",
  11. JOIN_MEETING_REQ = "JOIN_MEETING_REQ",
  12. JOIN_MEETING_RESP = "JOIN_MEETING_RESP",
  13. MEETING_SCREEN_RESP = "MEETING_SCREEN_RESP",
  14. -- CONFERENCE EVENT
  15. CONFERENCE_START = "CONFERENCE_START",
  16. -- UI
  17. PLAYER_MOVE_TO_CHAIRS = "PLAYER_MOVE_TO_CHAIRS",
  18. CAMERA_ROTATE_AFTER_PLAYER = "CAMERA_ROTATE_AFTER_PLAYER",
  19. UPDATE_MEETING_SCREEN = "UPDATE_MEETING_SCREEN"
  20. }
  21. ZEventDispatchCenter.EventQuene = {}
  22. function ZEventDispatchCenter:RegisterEvent(eventType, callback)
  23. print("--------------------> ZEventDispatchCenter:RegisterEvent eventType", eventType, callback)
  24. if self.EventType[eventType] == nil or type(callback) ~= "function" then
  25. print("ZEventDispatchCenter:RegisterEvent param is error~ eventType:", eventType)
  26. return
  27. end
  28. if self.EventQuene[eventType] == nil then
  29. self.EventQuene[eventType] = {}
  30. end
  31. --local index = table.getn(self.EventQuene[eventType])
  32. --self.EventQuene[eventType][index + 1] = callback
  33. table.insert(self.EventQuene[eventType], callback)
  34. end
  35. function ZEventDispatchCenter:UnregisterEvent(eventType, callback)
  36. print("--------------------> ZEventDispatchCenter:UnregisterEvent eventType", eventType, callback)
  37. if self.EventQuene[eventType] == nil or type(callback) ~= "function" then
  38. print("ZEventDispatchCenter:UnregisterEvent param is error~ eventType:", eventType)
  39. return
  40. end
  41. for k, v in pairs(self.EventQuene[eventType]) do
  42. if callback == v then
  43. table.remove(self.EventQuene[eventType], k)
  44. return
  45. end
  46. end
  47. end
  48. function ZEventDispatchCenter:DispatchEvent(eventType, ...)
  49. print("--------------------> ZEventDispatchCenter:Dispatch eventType", eventType)
  50. if self.EventType[eventType] == nil then
  51. print("ZEventDispatchCenter:DispatchEvent eventType is unknow : ", eventType)
  52. return
  53. end
  54. if self.EventQuene[eventType] == nil then
  55. print("ZEventDispatchCenter:DispatchEvent callback is nil eventType:", eventType)
  56. return
  57. end
  58. for k, v in pairs(self.EventQuene[eventType]) do
  59. v(...)
  60. end
  61. end
  62. return ZEventDispatchCenter