ZEventDispatchCenter.lua.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. UPDATE_SHOW_UPDATE_DETAIL = "UPDATE_SHOW_UPDATE_DETAIL",
  9. -- NET EVENT
  10. NET_CONNECT_STATE = "NET_CONNECT_STATE",
  11. HEARTBEAT = "HEARTBEAT",
  12. }
  13. ZEventDispatchCenter.EventQuene = {}
  14. function ZEventDispatchCenter:RegisterEvent(eventType, callback)
  15. print("--------------------> ZEventDispatchCenter:RegisterEvent eventType", eventType, callback)
  16. if self.EventType[eventType] == nil or type(callback) ~= "function" then
  17. print("ZEventDispatchCenter:RegisterEvent param is error~ eventType:", eventType)
  18. return
  19. end
  20. if self.EventQuene[eventType] == nil then
  21. self.EventQuene[eventType] = {}
  22. end
  23. --local index = table.getn(self.EventQuene[eventType])
  24. --self.EventQuene[eventType][index + 1] = callback
  25. table.insert(self.EventQuene[eventType], callback)
  26. end
  27. function ZEventDispatchCenter:UnregisterEvent(eventType, callback)
  28. print("--------------------> ZEventDispatchCenter:UnregisterEvent eventType", eventType, callback)
  29. if self.EventQuene[eventType] == nil or type(callback) ~= "function" then
  30. print("ZEventDispatchCenter:UnregisterEvent param is error~ eventType:", eventType)
  31. return
  32. end
  33. for k, v in pairs(self.EventQuene[eventType]) do
  34. if callback == v then
  35. table.remove(self.EventQuene[eventType], k)
  36. return
  37. end
  38. end
  39. end
  40. function ZEventDispatchCenter:DispatchEvent(eventType, ...)
  41. print("--------------------> ZEventDispatchCenter:Dispatch eventType", eventType)
  42. if self.EventType[eventType] == nil then
  43. print("ZEventDispatchCenter:DispatchEvent eventType is unknow : ", eventType)
  44. return
  45. end
  46. if self.EventQuene[eventType] == nil then
  47. print("ZEventDispatchCenter:DispatchEvent callback is nil eventType:", eventType)
  48. return
  49. end
  50. for k, v in pairs(self.EventQuene[eventType]) do
  51. v(...)
  52. end
  53. end
  54. return ZEventDispatchCenter