/** * 通知中心 * ***/ import { _decorator,EventTarget } from "cc"; import { PREVIEW } from "cc/env"; const {ccclass, property} = _decorator; @ccclass export class Model{ private RedNotice : EventTarget = null; constructor() { this.RedNotice = new EventTarget(); if (PREVIEW) { window['RedNotice'] = RedNotice; } } //开始监听通知 on(type: string, listener:(...any: any[]) => void, target?: any, useCapture?: boolean){ this.RedNotice.on(type,listener,target,useCapture) } /**只执行一次 */ once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any){ this.RedNotice.once(type,callback,target) } //开始出发消息 emit(key: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any){ this.RedNotice.emit(key,arg1,arg2,arg3,arg4,arg5) } //移除当前节点节点的所有事件 targetOff(node){ this.RedNotice.targetOff(node) } /**关闭单个 */ off(type: string, listener:(...any: any[]) => void, target?: any){ this.RedNotice.off(type,listener,target) } /** 判断有无事件 */ hasEventListener(type: string){ return this.RedNotice.hasEventListener(type) } } export let RedNotice = new Model();