美文网首页
Egret 资源加载,Loading

Egret 资源加载,Loading

作者: 阿尔法_狗 | 来源:发表于2017-12-13 19:17 被阅读0次

Egert 项目初始加载loading

菜鸡一枚,只是简单梳理了一下加载流程

//////////////////////////////////////////////////////////////////////////////////////
// 1.加载资源配置文件    default.res.json
// 2.资源配置文件加载成功
// 3.资源配置文件加载失败
// 4.加载资源组
// 5.资源组加载成功
// 6.资源组加载失败
// 7.资源组中,单个资源加载失败
// 8.资源加载进入
//////////////////////////////////////////////////////////////////////////////////////
class Main extends egret.DisplayObjectContainer{
    public constructor(){
        super();
        this.addEventListener(egret.Event.ADDED_TO_STAGE,this.onAddToStage,this);
    };

    //Loading 视图
    private LoadingUI : LoadingUI;


    private onAddToStage (event:egret.Event){

        //加载资源配置文件
        RES.addEventListener(RES.ResourceEvent.CONFIG_COMPLETE,this.onConfigComplate,this);
        RES.loadConfig("resource/default.res.json",'resource/')

        //实例化loading,并添加到舞台上
        this.LoadingUI = new LoadingUI();
        this.stage.addChild(this.LoadingUI)
    }




    //资源的配置文件加载完成
    private onConfigComplate(event:RES.ResourceEvent){

        //当资源配置文件加载完成,需要移除监听,放置内存泄漏
        RES.removeEventListener(RES.ResourceEvent .CONFIG_COMPLETE,this.onConfigComplate,this);

        //监听组加载时间
        RES.addEventListener(RES.ResourceEvent.GROUP_COMPLETE, this.onResourceLoadComplete, this);
        RES.addEventListener(RES.ResourceEvent.GROUP_LOAD_ERROR, this.onResourceLoadError, this);
        RES.addEventListener(RES.ResourceEvent.GROUP_PROGRESS, this.onResourceProgress, this);
        RES.addEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR, this.onItemLoadError, this);

        //加载组
        RES.loadGroup('game')
    }




    //组资源加载完成
    private onResourceLoadComplete(event: RES.ResourceEvent){
        //所有资源加载完成,需要移除资源加载的所有监听事件
        RES.removeEventListener(RES.ResourceEvent.GROUP_COMPLETE,this.onResourceLoadComplete,this);
        RES.removeEventListener(RES.ResourceEvent.GROUP_LOAD_ERROR,this.onResourceLoadError,this);
        RES.removeEventListener(RES.ResourceEvent.GROUP_PROGRESS,this.onResourceProgress,this);
        RES.removeEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR,this.onItemLoadError,this);
    }




    //资源加载进度
    private onResourceProgress(event: RES.ResourceEvent){
        console.log(event.itemsLoaded, event.itemsTotal)
        this.LoadingUI.setProgress(event.itemsLoaded,event.itemsTotal)

    }




    //组资源加载失败
    private onResourceLoadError(event: RES.ResourceEvent){
        console.warn("Group:" + event.groupName + " has failed to load");
        //忽略加载失败的项目
        this.onResourceLoadComplete(event);
    }




    //单个组资源加载失败
    private onItemLoadError(event: RES.ResourceEvent): void {
        console.warn("Url:" + event.resItem.url + " has failed to load");
        //忽略单个资源加载失败,继续加载其他资源
        this.onResourceLoadComplete(event);
    }





}

C7C86801B337142DD49B994E181F93EC.jpg

相关文章

网友评论

      本文标题:Egret 资源加载,Loading

      本文链接:https://www.haomeiwen.com/subject/ekinixtx.html