LuaEventMgr.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. local LuaEventMgr = class("LuaEventMgr")
  2. function LuaEventMgr:ctor()
  3. self.EventListener = require("EventListener"):New("multi")
  4. self.EventListenerNoGroup = require("EventListener"):New("multi_nogroup")
  5. end
  6. function LuaEventMgr:RegisterUIEvent(...)
  7. self.EventListener:Register(...)
  8. end
  9. function LuaEventMgr:Dispatch(eventName, ...)
  10. self.EventListener:Dispatch(eventName, ...)
  11. self.EventListenerNoGroup:Dispatch(eventName, ...)
  12. end
  13. function LuaEventMgr:Unregister(...)
  14. self.EventListener:Unregister(...)
  15. end
  16. --- 注册事件,和 UnregisterEvent 配对使用
  17. ---@param eventName string
  18. ---@param arg1 table|function
  19. ---@param arg2 function|nil
  20. function LuaEventMgr:RegisterEvent(eventName, arg1, arg2)
  21. self.EventListenerNoGroup:Register(eventName, arg1, arg2)
  22. end
  23. --[[
  24. --- 触发事件
  25. ---@param eventName string
  26. function LuaEventMgr:DispatchEvent(eventName, ...)
  27. self.EventListenerNoGroup:Dispatch(eventName, ...)
  28. end
  29. ]]
  30. --- 取消注册事件,和 RegisterEvent 配对使用
  31. --- 只判断了传入fuction指针地址相同,所以可不传入table
  32. ---@param eventName string
  33. ---@param arg1 table|function
  34. ---@param arg2 function|nil
  35. function LuaEventMgr:UnregisterEvent(eventName, arg1, arg2)
  36. self.EventListenerNoGroup:Unregister(eventName, arg1, arg2)
  37. end
  38. --- 取消所有eventName注册的事件
  39. ---@param eventName string
  40. function LuaEventMgr:UnregisterEventAll(eventName)
  41. self.EventListenerNoGroup:UnregisterAll(eventName)
  42. end
  43. function LuaEventMgr:Destroy(...)
  44. self.EventListener:Clear()
  45. self.EventListenerNoGroup:Clear()
  46. end
  47. return LuaEventMgr