/* * @Author: YeeChan * @Date: 2020-12-23 11:46:50 * @Description: */ /**************************************************** * cc.Component 的扩展 主要增加初始方法 initView_custom __onInit_custom 和 事件 *****************************************************/ export default abstract class FMComponentExtend extends cc.Component { //标记 protected __isInit_custom: boolean = false; //回调 protected _listenerCallView_custom: FMListener; //各个节点自定义事件 //@ts-ignore protected abstract EventEnumView_custom: { [key: string]: string; } = {} //初始方法 protected abstract initView_custom(): void; protected onLoad() { this.__onInit_custom(); } /** * 外部如果需要里面获取onload中执行的属性,需要在方法执行前调用 */ protected __onInit_custom() { if (!this.__isInit_custom) { this.__isInit_custom = true; this.initView_custom(); } } /** * 设置监听 * @param listener */ public onListenerEventView_custom(listener: FMListener) { this._listenerCallView_custom = listener; } /** * 发送事件 (接收结构为(Event,Node,Data) ) * @param event 事件名 @EventEnumView_custom * @param data 数据结构 */ protected emitListenerEvent_custom(event: string, data?: any, data2?: any) { //console.log("发送 " + event) if (this._listenerCallView_custom) { callFM_custom(this._listenerCallView_custom, event, this, data, data2); } } /** * 判断view 是否激活 */ public isActiveView_custom(): boolean { if (cc.isValid(this, true) && this.node.activeInHierarchy) { //没有被销毁 && 在场景中是激活的 return true; } return false; } //当该组件被销毁时调用 protected onDestroy(): void { } }