RES.globalFunction
公共方法
方法 |
---|
addEventListener(type:string,listener:(event:egret.Event)=>void,thisObject:any,useCapture:boolean,priority:number):void 添加事件侦听器,参考 ResourceEvent 定义的常量 |
createGroup(name:string,keys:Array<string>,override:boolean):boolean 创建自定义的加载资源组,注意:此方法仅在资源配置文件加载完成后执行才有效 |
destroyRes(name:string,force:boolean):boolean 销毁单个资源文件或一组资源的缓存数据,返回是否删除成功 |
getGroupByName(name:string):Array<RES.ResourceItem> 根据组名获取组加载项列表 |
getRes(key:string):any 同步方式获取缓存的已经加载成功的资源 |
getResAsync(key:string,compFunc:GetResAsyncCallback,thisObject:any):Promise<any> 异步方式获取配置里的资源 |
getResByUrl(url:string,compFunc:Function,thisObject:any,type:string):Promise<any> 通过完整URL方式获取外部资源 |
getResourceInfo(path:string):RES.File |
getVersionController():RES.VersionController 获得版本控制器. |
getVirtualUrl(url) 转换加载资源的地址(经过版本控制器的转换) |
hasRes(key:string):boolean 检查配置文件里是否含有指定的资源 |
isGroupLoaded(name:string):boolean 检查某个资源组是否已经加载完成 |
loadConfig(url:string,resourceRoot:string):Promise<void> 加载配置文件并解析 |
loadGroup(name:string,priority:number,reporter:RES.PromiseTaskReporter):Promise<void> 根据组名加载一组资源 |
nameSelector(url):string 将资源的文件名称转换为项目中所使用的Key值 |
profile() 打印图片所占内存 |
registerAnalyzer(type:string,analyzerClass:any) 以类定义为值进行映射注入,已废弃 |
registerVersionController(vcs:RES.VersionController):void 注册版本控制器,通过RES模块加载资源时会从版本控制器获取真实url |
removeEventListener(type:string,listener:(event:egret.Event)=>void,thisObject:any,useCapture:boolean):void 移除事件侦听器,参考ResourceEvent定义的常量 |
setIsCompatible(value:boolean) 设置是否为兼容模式 当值为true时,assetsManager会以Res的设计输出,当为false时候,所有的加载资源都会以promise的方式返回默认是false,以严格assetsManager方式运行 |
setMaxLoadingThread(thread:number):void 设置最大并发加载线程数量,默认值是 4 |
setMaxRetryTimes(retry:number):void 设置资源加载失败时的重试次数,默认值是 3 |
typeSelector(path:string):string 获取文件的读取类型在使用getResByUrl没有指定读取文件的类型,会根据这个方法寻找对应的类型没有查找到的文件类型以二进制格式默认加载 |
方法详细信息
addEventListener()
public addEventListener(type:string,listener:(event:egret.Event)=>void,thisObject:any,useCapture:boolean,priority:number):void
添加事件侦听器,参考 ResourceEvent 定义的常量。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- type:string - 事件的类型。
- listener:(event:egret.Event)=>void - 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示: function(evt:Event):void 函数可以有任何名称。
- thisObject:any - 侦听函数绑定的 this 对象。
- useCapture:boolean - 确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false。
- priority:number - 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
createGroup()
public createGroup(name:string,keys:Array<string>,override:boolean):boolean
创建自定义的加载资源组,注意:此方法仅在资源配置文件加载完成后执行才有效。
可以监听 ResourceEvent.CONFIG_COMPLETE 事件来确认配置加载完成。
支持版本:Egret 5.2
运行平台:Web,Native
参数
返回:是否创建成功。
destroyRes()
public destroyRes(name:string,force:boolean):boolean
销毁单个资源文件或一组资源的缓存数据,返回是否删除成功。
支持版本:Egret 5.2
运行平台:Web,Native
参数
返回:是否销毁成功。
getGroupByName()
public getGroupByName(name:string):Array<RES.ResourceItem>
根据组名获取组加载项列表。
支持版本:Egret 5.2
运行平台:Web,Native
参数
- name:string - 组名。
返回:加载项列表。
getRes()
同步方式获取缓存的已经加载成功的资源。
资源类型和对应的返回值类型关系如下:
RES.ResourceItem.TYPE_BIN : ArrayBuffer JavaScript 原生对象
RES.ResourceItem.TYPE_IMAGE : img Html 对象,或者 egret.BitmapData 接口。
RES.ResourceItem.TYPE_JSON : Object
RES.ResourceItem.TYPE_SHEET : Object
1. 如果传入的参数是整个 SpriteSheet 的名称返回的是 {"image1":Texture,"image2":Texture} 这样的格式。
2. 如果传入的是 "sheet.image1",返回的是单个资源。
3. 如果传入的是 "image1" 单个资源的名称,返回的是单个资源。但是如果有两张 SpriteSheet 中有单个图片资源名称相同,返回的是后加载的那个图片资源。
RES.ResourceItem.TYPE_SOUND : HtmlSound Html 对象
RES.ResourceItem.TYPE_TEXT : string
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- key:string - 对应配置文件里的 name 属性或 subKeys 属性的一项。
getResAsync()
public getResAsync(key:string,compFunc:GetResAsyncCallback,thisObject:any):Promise<any>
异步方式获取配置里的资源。只要是配置文件里存在的资源,都可以通过异步方式获取。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
//Example:
以下代码演示了如何通过getResAsync加载资源
RES.getResAsync("resource/example.json"); //只传入key值获取资源
RES.getResAsync("resource/example.json", (data) => {
console.log(data);
}, this); //传入key值,compFunc和thisObject获取资源,后两个必须同时出现
getResByUrl()
public getResByUrl(url:string,compFunc:Function,thisObject:any,type:string):Promise<any>
通过完整URL方式获取外部资源。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
getResourceInfo()
public getResourceInfo(path:string):RES.File|null
通过文件路径获取资源信息
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- path:string - 文件路径
getVersionController()
public getVersionController():RES.VersionController
获得版本控制器.
- 支持版本:Egret 5.2
- 运行平台:Web,Native
getVirtualUrl()
public getVirtualUrl(url)
转换加载资源的地址(经过版本控制器的转换)
支持版本:Egret 5.2
运行平台:Web,Native
参数
- url - 原始资源的路径
返回:转换后的地址
hasRes()
public hasRes(key:string):boolean
检查配置文件里是否含有指定的资源。
支持版本:Egret 5.2
运行平台:Web,Native
参数
- key:string - 对应配置文件里的 name 属性或 sbuKeys 属性的一项。
返回:是否拥有指定资源
isGroupLoaded()
public isGroupLoaded(name:string):boolean
检查某个资源组是否已经加载完成。
支持版本:Egret 5.2
运行平台:Web,Native
参数
- name:string - 组名。
返回:是否正在加载。
loadConfig()
public loadConfig(url:string,resourceRoot:string):Promise<void>
加载配置文件并解析。
loadGroup()
public loadGroup(name:string,priority:number,reporter:RES.PromiseTaskReporter):Promise<void>
根据组名加载一组资源。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- name:string - 要加载资源组的组名。
- priority:number - 加载优先级,可以为负数,默认值为 0。低优先级的组必须等待高优先级组完全加载结束才能开始,同一优先级的组会同时加载。
- reporter:RES.PromiseTaskReporter - 资源组的加载进度提示
nameSelector()
public nameSelector(url):string
将资源的文件名称转换为项目中所使用的Key值。在加载合并图集的时候使用,例如图集加载A_json,需要加载对应A_png,这里就是转换的机制一般项目中无需更改,只有没有使用默认的key和文件对应的需要修改
支持版本:Egret 5.2
运行平台:Web,Native
参数
- url - 资源名称。
返回:项目中所用的key值
profile()
public profile()
打印图片所占内存
- 支持版本:Egret 5.2
- 运行平台:Web,Native
registerAnalyzer()
public registerAnalyzer(type:string,analyzerClass:any)
以类定义为值进行映射注入,已废弃。
registerVersionController()
public registerVersionController(vcs:RES.VersionController):void
注册版本控制器,通过RES模块加载资源时会从版本控制器获取真实url
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- vcs:RES.VersionController - 注入的版本控制器。
removeEventListener()
public removeEventListener(type:string,listener:(event:egret.Event)=>void,thisObject:any,useCapture:boolean):void
移除事件侦听器,参考ResourceEvent定义的常量。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- type:string - 事件名。
- listener:(event:egret.Event)=>void - 侦听函数。
- thisObject:any - 侦听函数绑定的this对象。
- useCapture:boolean - 是否使用捕获,这个属性只在显示列表中生效。
setIsCompatible()
public setIsCompatible(value:boolean)
设置是否为兼容模式 当值为true时,assetsManager会以Res的设计输出,当为false时候,所有的加载资源都会以promise的方式返回默认是false,以严格assetsManager方式运行
- 支持版本:Egret 5.2.9
- 运行平台:Web,Native
- 参数
- value:boolean
setMaxLoadingThread()
public setMaxLoadingThread(thread:number):void
设置最大并发加载线程数量,默认值是 4。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- thread:number - 要设置的并发加载数。
setMaxRetryTimes()
public setMaxRetryTimes(retry:number):void
设置资源加载失败时的重试次数,默认值是 3。
- 支持版本:Egret 5.2
- 运行平台:Web,Native
- 参数
- retry:number - 要设置的重试次数。
//Example:
/*
* 下面的示例使用 ResourceExample 类展示使用RES模块加载资源过程。
*/
class ResourceExample extends egret.DisplayObjectContainer {
public constructor() {
super();
this.initStateText();
//添加资源配置加载完成事件
RES.addEventListener(RES.ResourceEvent.CONFIG_COMPLETE, this.onConfigComplete, this);
//加载配置
this.trace("开始加载配置文件");
RES.loadConfig("resource/resource.json", "resource/assets/");
}
/*
* 配置文件加载完成,开始预加载preload资源组。
*/
private onConfigComplete(event: RES.ResourceEvent): void {
this.trace("配置文件加载成功");
RES.removeEventListener(RES.ResourceEvent.CONFIG_COMPLETE, this.onConfigComplete, this);
//添加资源组加载完成事件
RES.addEventListener(RES.ResourceEvent.GROUP_COMPLETE, this.onResourceLoadComplete, this);
//添加资源组加载失败事件
RES.addEventListener(RES.ResourceEvent.GROUP_LOAD_ERROR, this.onResourceLoadError, this);
//添加资源加载失败事件
RES.addEventListener(RES.ResourceEvent.ITEM_LOAD_ERROR, this.onResourceItemLoadError, this);
//添加资源组加载进度事件
RES.addEventListener(RES.ResourceEvent.GROUP_PROGRESS, this.onResourceProgress, this);
//开始加载 preload 资源组
this.trace("开始加载preload组");
RES.loadGroup("preload");
}
/*
* preload资源组加载完成
*/
private onResourceLoadComplete(event: RES.ResourceEvent): void {
if (event.groupName == "preload") {
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);
this.trace("preload组加载完成");
this.trace("开始加载一个不存在的资源");
RES.getResAsync("nothing", function () { }, this);
}
}
/*
* preload资源组加载进度
* Loading process of preload resource group
*/
private onResourceProgress(event: RES.ResourceEvent): void {
if (event.groupName == "preload") {
this.trace("preload资源加载进度 : " + event.itemsLoaded + " / " + event.itemsTotal);
}
}
/*
* 资源组加载出错
*/
private onResourceLoadError(event: RES.ResourceEvent): void {
this.trace("preload组加载失败");
//忽略加载失败的项目
this.onResourceLoadComplete(event);
}
/*
* 资源加载出错
*/
private onResourceItemLoadError(event: RES.ResourceEvent): void {
this.trace("项目加载失败,url : " + event.resItem.url);
}
private stateText: egret.TextField;
private text: string = "TestResource";
private initStateText(): void {
this.stateText = new egret.TextField();
this.stateText.size = 22;
this.stateText.text = this.text;
this.stateText.width = 480;
this.addChild(this.stateText);
}
private trace(msg: any): void {
this.text = this.text + "\n" + msg;
this.stateText.text = this.text;
egret.log(msg);
}
}
typeSelector()
public typeSelector(path:string):string
获取文件的读取类型在使用getResByUrl没有指定读取文件的类型,会根据这个方法寻找对应的类型没有查找到的文件类型以二进制格式默认加载
支持版本:Egret 5.2
运行平台:Web,Native
参数
- path:string - 文件路径
返回:读取文件所用的Processor类型