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();
 | 
						|
    }
 | 
						|
 | 
						|
} |