You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
2.8 KiB
124 lines
2.8 KiB
/*
|
|
* @Descripttion: 基础view base
|
|
* @version: 1.0.0
|
|
* @Author: YeeChan
|
|
* @Date: 2020-07-21 11:49:25
|
|
*/
|
|
|
|
import { FMListener, callFM_custom } from "../Interface/FMInterface";
|
|
|
|
export default abstract class FMViewBase extends cc.Component {
|
|
|
|
//是否初始化
|
|
protected _isInit_custom: number = 0;
|
|
|
|
protected _listenerCallView_custom: FMListener;
|
|
|
|
//各个节点自定义事件
|
|
public abstract EventEnumView_custom : {};
|
|
|
|
|
|
//------------------------------------------
|
|
|
|
protected onLoad() {
|
|
this._initView_custom();
|
|
}
|
|
|
|
//初始view的数据 一般如果需要在onLoad前调用该对象中的方法,则手动调用 此方法来实现数据初始化
|
|
public _initView_custom(): boolean {
|
|
if (this._isInit_custom != 0) {
|
|
return;
|
|
}
|
|
this._isInit_custom = 1;
|
|
this.initView_custom();
|
|
this.addEvent_custom();
|
|
this._isInit_custom = 2;
|
|
return true;
|
|
}
|
|
|
|
|
|
//初始view 的相关数据 子类中不需要实现 onLoad
|
|
protected abstract initView_custom(): void;
|
|
|
|
//添加事件 会在initView方法后执行
|
|
protected abstract addEvent_custom(): void;
|
|
|
|
//移除事件 会在 removeView 或 销毁的时候执行
|
|
protected abstract removeEvent_custom(): void;
|
|
|
|
//设置监听
|
|
public onListenerEventView_custom(listener: FMListener) {
|
|
this._listenerCallView_custom = listener;
|
|
}
|
|
|
|
//发送事件
|
|
protected emitListenerEvent_custom(event: string) {
|
|
console.log("发送 " + event)
|
|
if (this._listenerCallView_custom) {
|
|
callFM_custom(this._listenerCallView_custom, event, this);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 移除节点
|
|
*/
|
|
public removeView_custom(): void {
|
|
this.onDestroy();
|
|
this.node.destroy();
|
|
}
|
|
|
|
/**
|
|
* 隐藏view
|
|
*/
|
|
public hideView_custom(): void {
|
|
this.node.active = false;
|
|
}
|
|
|
|
/**
|
|
* 显示view
|
|
*/
|
|
public showView_custom(): void {
|
|
this.node.active = true;
|
|
}
|
|
|
|
/**
|
|
* 判断view 是否激活
|
|
*/
|
|
public isActiveView_custom(): boolean {
|
|
if (cc.isValid(this, true) && this.node.activeInHierarchy) { //没有被销毁 && 在场景中是激活的
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 显示banner
|
|
*/
|
|
public showBanner_custom() {
|
|
|
|
}
|
|
|
|
/**
|
|
* 隐藏banner
|
|
*/
|
|
public hideBanner_custom() {
|
|
|
|
}
|
|
|
|
//当该组件被启用,并且它的节点也激活时
|
|
protected onEnable(): void {
|
|
|
|
}
|
|
|
|
//当该组件被禁用或节点变为无效时调用
|
|
protected onDisable(): void {
|
|
this.hideBanner_custom();
|
|
}
|
|
|
|
//当该组件被销毁时调用
|
|
protected onDestroy(): void {
|
|
this.removeEvent_custom();
|
|
this.hideBanner_custom();
|
|
}
|
|
|
|
} |