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
网友评论