IEventDispatcher.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { _decorator, Component, Node } from 'cc';
  2. const { ccclass, property } = _decorator;
  3. /**
  4. * 事件分发者
  5. */
  6. export interface IEventDispatcher{
  7. /**
  8. * 添加事件
  9. * @param key
  10. * @param caller
  11. * @param func
  12. * @param priority 优先级 数字越小优先级越高
  13. */
  14. AddEvent(key:string,caller:any,func:Function,priority:number):void;
  15. /**
  16. * 删除事件监听
  17. * @param key
  18. * @param caller
  19. * @param func
  20. */
  21. RemoveEvent(key:string,caller:any,func:Function):void;
  22. /**
  23. * 删除指定对象所有的事件处理
  24. * @param caller
  25. */
  26. RemoveEventByCaller(caller:any):void;
  27. /**
  28. * 删除所有事件监听
  29. */
  30. RemoveAllEvent():void;
  31. /**
  32. * 派发事件
  33. * @param key
  34. * @param data
  35. */
  36. DispatchEvent(key:string,data?:any):void;
  37. /**
  38. * 是否有事件监听
  39. * @param key
  40. */
  41. HasEvent(key:string):boolean;
  42. /**
  43. * 是否包含指定函数事件监听
  44. * @param key
  45. * @param caller
  46. * @param func
  47. */
  48. HasEventHandler(key:string,caller:any,func:Function):boolean;
  49. }