Egret开发笔记[二]

异步加载核心
	//定义静态变量
	public static currentFrame: number = 0;								//权
	private static framesCallBackList: CallBackVo[] = [];				//回调方法
	/*
	*把回调添加到 framesCallBackList 中
	*/
	static addFramesCallBack(p_callBack: Function, p_thisObj: any, p_delayFrame: number = 1): void {
		var callBack: CallBackVo = CallBackVo.create(p_callBack, p_thisObj, true);
		callBack.extraData = { frame: this.currentFrame, delay: p_delayFrame };
		this.framesCallBackList.push(callBack);
	}
	//监听祯事件,每祯执行 onRender() 方法
	this._app.addEventListener(egret.Event.ENTER_FRAME, this.onRender, this);
	/*
	*执行回调
	*/
	private static onRender(e: egret.Event): void {
		for (var i: number = 0; i < this.renderList.length; i++) {
			this.renderList[i].apply();
		}
		this.currentFrame++;
		for (var i: number = this.framesCallBackList.length - 1; i >= 0; i--) {
			var callBack: CallBackVo = this.framesCallBackList[i];
			if (this.currentFrame - callBack.extraData["frame"] >= callBack.extraData["delay"]) {
				callBack.apply();
				this.framesCallBackList.splice(i,1);
			}
		}
	}

此处的参数p_delayFrame可以决定延长多少针来执行这个回调,默认是隔一帧.
注意此处是后进队列的先判断,通过的就执行.

用于创建带加载的分页
	/**
     * 异步创建子分页(带加载)
     */
	public static createSubPageAsyn(pkgName:string,resName:string,callback:(com:fairygui.GComponent)=>void,caller:any):void {
        var page:fairygui.GComponent;
        FW.addFramesCallBack(()=>{
            loadUI.LoadingBar.inst.showLoader(LoadUIType.NORMAL);//显示加载页
            FW.addFramesCallBack(()=>{
                page = fairygui.UIPackage.createObject(pkgName,resName).asCom;//显示需要的分页
                loadUI.LoadingBar.inst.hideLoader(LoadUIType.NORMAL);//隐藏加载页
                if(callback != null) {
                    callback.call(caller,page);
                }
            },this);
        },this);
    }

此处在添加分页创建时候,将创建分页的方法放到创建加载页面的回调中,加载页显示出来后就把创建分页的的方法放到队列中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值