码迷,mamicode.com
首页 > 其他好文 > 详细

Egret的config加载类,支持多个文件加载

时间:2016-11-19 03:11:37      阅读:424      评论:0      收藏:0      [点我收藏+]

标签:png   构造函数   nbsp   src   new   执行函数   .json   test   targe   

ResUtils.ts

/**
 * Created by yangsong on 15-2-11.
 * 资源加载工具类,
 * 支持多个resource.json文件加载
 */
class ResUtils  {
    private static instance:ResUtils;
    private _configs: Array<any>;
    private _onConfigComplete: Function;
    private _onConfigCompleteTarget: any;

    public static getInstance():ResUtils{
        if(this.instance == null){
            this.instance = new ResUtils();
        }
        return this.instance;
    }
    
    /**
     * 构造函数
     */
    public constructor() {
        this._configs = new Array<any>();
    }

    /**
     * 添加一个配置文件
     * @param jsonPath resource.json路径
     * @param filePath 访问资源路径
     */
    public addConfig(jsonPath: string,filePath: string): void {
        this._configs.push([jsonPath,filePath]);
    }

    /**
     * 开始加载配置文件
     * @param $onConfigComplete 加载完成执行函数
     * @param $onConfigCompleteTarget 加载完成执行函数所属对象
     */
    public loadConfig($onConfigComplete: Function,$onConfigCompleteTarget: any): void {
        this._onConfigComplete = $onConfigComplete;
        this._onConfigCompleteTarget = $onConfigCompleteTarget;
        this.loadNextConfig();
    }

    /**
     * 加载
     */
    private loadNextConfig(): void {
        //加载完成
        if(this._configs.length == 0) {
            this._onConfigComplete.call(this._onConfigCompleteTarget);
            this._onConfigComplete = null;
            this._onConfigCompleteTarget = null;
            return;
        }

        var arr: any = this._configs.shift();
        RES.addEventListener(RES.ResourceEvent.CONFIG_COMPLETE,this.onConfigCompleteHandle,this);
        RES.loadConfig(arr[0],arr[1]);
    }

    /**
     * 加载完成
     * @param event
     */
    private onConfigCompleteHandle(event: RES.ResourceEvent): void {
        RES.removeEventListener(RES.ResourceEvent.CONFIG_COMPLETE,this.onConfigCompleteHandle,this);
        this.loadNextConfig();
    }
}

 

//加载多个资源文件
ResUtils.getInstance().addConfig("resource/test.json","resource/"); ResUtils.getInstance().addConfig("resource/test2.json","resource/"); ResUtils.getInstance().loadConfig(this.onConfigComplete, this);

 

但是在egret wing2.5中,default.des.json改名后,就会使用不正常了。

找不到路径下的资源。

技术分享

 

Egret的config加载类,支持多个文件加载

标签:png   构造函数   nbsp   src   new   执行函数   .json   test   targe   

原文地址:http://www.cnblogs.com/gamedaybyday/p/6079694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!