12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { AudioConst } from "../../data/const/TypeConst";
- import GameDataCenter from "../../data/GameDataCenter";
- import EventMng from "../../manager/EventMng";
- import { uiCommon } from "../../utils/UICommon";
- import { BtnEvent } from "../fgui/mvc/FguiViewCtrl";
- import { Constructor } from "./Fundation";
- declare global {
- type UEClass<T> = Constructor<T> & {
- readonly BundleKey: string;
- readonly PrefabUrl: string;
- readonly CLS: string;
- // OnCollectResStatic?: (resCollector: IResCollector) => void;
- }
- }
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default abstract class UEBase extends cc.Component {
- /**通知事件列表 */
- private _notifyEventList: Map<string, Function> = new Map<string, Function>();
- registerCount: number = 0
- /**onLoad 会在组件被首次加载的时候被回调。且优先于任何start */
- onLoad() {
- }
- onDestroy() {
- try {
- let self = this;
- this._notifyEventList.forEach((f, key) => {
- // console.log("_notifyEventList key = "+key)
- EventMng.off(key, f, self);
- }, this);
- this._notifyEventList.clear();
- } catch (error) {
- console.error("onDisable->" + error)
- }
- if (this.registerCount > 0) {
- console.error(this.name + " 按钮注册后没off掉啊喂 \n(╯-_-)╯╧╧ ")
- }
- }
- /**注册notice事件,disable的时候会自动移除 */
- initEvent(eventName: string, cb: Function) {
- EventMng.on(eventName, cb, this);
- this._notifyEventList.set(eventName, cb);
- }
- RegisterClick(node: cc.Node, callback, target = null, params: any = [], audio: AudioConst = AudioConst.effect_click) {
- uiCommon.onRegisterEvent(node, callback, target, params, audio)
- }
- RemoveAllClick() {
- uiCommon.unRegisterEvent(this.node)
- }
- }
|