- 常用于互不交互两个模块消息通讯,好处是不用引用查找;
- 官方api:
// 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。可多次添加,需手动移除;
on<T extends Function>(type: string, callback: T, target?: any, useCapture?: boolean): T;
// 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。可多次添加;
once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void;
// 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。
off(type: string, callback?: Function, target?: any): void;
// 抛出消息
emit(key: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void;
- 使用方法基本和vue中一样
cc.director.xxx
注册事件后需注意移除,否则会导致多次调用;