UNPKG

laya-coreui-es

Version:

laya核心库、ui库es版本,剔除了媒体、TTF等功能。基于 LayaAir-release_2.12.0 修改

189 lines (188 loc) 9.69 kB
import { EventDispatcher } from "../events/EventDispatcher"; import { Handler } from "../utils/Handler"; /** * 所有资源加载完成时调度。 * @eventType Event.COMPLETE * */ /** * 任何资源加载出错时调度。 * @eventType Event.ERROR * */ /** * <p> <code>LoaderManager</code> 类用于用于批量加载资源。此类是单例,不要手动实例化此类,请通过Laya.loader访问。</p> * <p>全部队列加载完成,会派发 Event.COMPLETE 事件;如果队列中任意一个加载失败,会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p> * <p> <code>LoaderManager</code> 类提供了以下几种功能:<br/> * 多线程:默认5个加载线程,可以通过maxLoader属性修改线程数量;<br/> * 多优先级:有0-4共5个优先级,优先级高的优先加载。0最高,4最低;<br/> * 重复过滤:自动过滤重复加载(不会有多个相同地址的资源同时加载)以及复用缓存资源,防止重复加载;<br/> * 错误重试:资源加载失败后,会重试加载(以最低优先级插入加载队列),retryNum设定加载失败后重试次数,retryDelay设定加载重试的时间间隔。</p> * @see laya.net.Loader */ export declare class LoaderManager extends EventDispatcher { /**@private */ private static _resMap; /**@private */ static createMap: any; /** 加载出错后的重试次数,默认重试一次*/ retryNum: number; /** 延迟时间多久再进行错误重试,默认立即重试*/ retryDelay: number; /** 最大下载线程,默认为5个*/ maxLoader: number; /**@private */ private _loaders; /**@private */ private _loaderCount; /**@private */ private _resInfos; /**@private */ private _infoPool; /**@private */ private _maxPriority; /**@private */ private _failRes; /**@private */ private _statInfo; /**@private */ getProgress(): number; /**@private */ resetProgress(): void; /** * <p>创建一个新的 <code>LoaderManager</code> 实例。</p> * <p><b>注意:</b>请使用Laya.loader加载资源,这是一个单例,不要手动实例化此类,否则会导致不可预料的问题。</p> */ constructor(); /** * <p>根据clas类型创建一个未初始化资源的对象,随后进行异步加载,资源加载完成后,初始化对象的资源,并通过此对象派发 Event.LOADED 事件,事件回调参数值为此对象本身。套嵌资源的子资源会保留资源路径"?"后的部分。</p> * <p>如果url为数组,返回true;否则返回指定的资源类对象,可以通过侦听此对象的 Event.LOADED 事件来判断资源是否已经加载完毕。</p> * <p><b>注意:</b>cache参数只能对文件后缀为atlas的资源进行缓存控制,其他资源会忽略缓存,强制重新加载。</p> * @param url 资源地址或者数组。如果url和clas同时指定了资源类型,优先使用url指定的资源类型。参数形如:[{url:xx,clas:xx,priority:xx,params:xx},{url:xx,clas:xx,priority:xx,params:xx}]。 * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。 * @param progress 资源加载进度回调,回调参数值为当前资源加载的进度信息(0-1)。 * @param type 资源类型。 * @param constructParams 资源构造函数参数。 * @param propertyParams 资源属性参数。 * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。 * @param cache 是否缓存加载的资源。 * @return 如果url为数组,返回true;否则返回指定的资源类对象。 */ create(url: string | (string | createItem)[], complete?: Handler | null, progress?: Handler | null, type?: string | null, constructParams?: any[] | null, propertyParams?: any, priority?: number, cache?: boolean): void; /** * @private */ private _createOne; /** * <p>加载资源。资源加载错误时,本对象会派发 Event.ERROR 事件,事件回调参数值为加载出错的资源地址。</p> * <p>因为返回值为 LoaderManager 对象本身,所以可以使用如下语法:loaderManager.load(...).load(...);</p> * @param url 要加载的单个资源地址或资源信息数组。比如:简单数组:["a.png","b.png"];复杂数组[{url:"a.png",type:Loader.IMAGE,size:100,priority:1},{url:"b.json",type:Loader.JSON,size:50,priority:1}]。 * @param complete 加载结束回调。根据url类型不同分为2种情况:1. url为String类型,也就是单个资源地址,如果加载成功,则回调参数值为加载完成的资源,否则为null;2. url为数组类型,指定了一组要加载的资源,如果全部加载成功,则回调参数值为true,否则为false。 * @param progress 加载进度回调。回调参数值为当前资源的加载进度信息(0-1)。 * @param type 资源类型。比如:Loader.IMAGE。 * @param priority (default = 1)加载的优先级,优先级高的优先加载。有0-4共5个优先级,0最高,4最低。 * @param cache 是否缓存加载结果。 * @param group 分组,方便对资源进行管理。 * @param ignoreCache 是否忽略缓存,强制重新加载。 * @param useWorkerLoader(default = false)是否使用worker加载(只针对IMAGE类型和ATLAS类型,并且浏览器支持的情况下生效) * @return 此 LoaderManager 对象本身。 */ load(url: string | (string | loadItem)[], complete?: Handler | null, progress?: Handler | null, type?: string | null, priority?: number, cache?: boolean, group?: string | null, ignoreCache?: boolean, useWorkerLoader?: boolean): LoaderManager; private _resInfoLoaded; private _next; private _doLoad; private _endLoad; private _addReTry; /** * 清理指定资源地址缓存。 * @param url 资源地址。 */ clearRes(url: string): void; /** * 销毁Texture使用的图片资源,保留texture壳,如果下次渲染的时候,发现texture使用的图片资源不存在,则会自动恢复 * 相比clearRes,clearTextureRes只是清理texture里面使用的图片资源,并不销毁texture,再次使用到的时候会自动恢复图片资源 * 而clearRes会彻底销毁texture,导致不能再使用;clearTextureRes能确保立即销毁图片资源,并且不用担心销毁错误,clearRes则采用引用计数方式销毁 * 【注意】如果图片本身在自动合集里面(默认图片小于512*512),内存是不能被销毁的,此图片被大图合集管理器管理 * @param url 图集地址或者texture地址,比如 Loader.clearTextureRes("res/atlas/comp.atlas"); Loader.clearTextureRes("hall/bg.jpg"); */ clearTextureRes(url: string): void; /** * 获取指定资源地址的资源。 * @param url 资源地址。 * @return 返回资源。 */ getRes(url: string): any; /** * 缓存资源。 * @param url 资源地址。 * @param data 要缓存的内容。 */ cacheRes(url: string, data: any): void; /** * 设置资源分组。 * @param url 资源地址。 * @param group 分组名 */ setGroup(url: string, group: string): void; /** * 根据分组清理资源。 * @param group 分组名 */ clearResByGroup(group: string): void; /** * @private * 缓存资源。 * @param url 资源地址。 * @param data 要缓存的内容。 */ static cacheRes(url: string, data: any): void; /** 清理当前未完成的加载,所有未加载的内容全部停止加载。*/ clearUnLoaded(): void; /** * 根据地址集合清理掉未加载的内容 * @param urls 资源地址集合 */ cancelLoadByUrls(urls: any[]): void; /** * 根据地址清理掉未加载的内容 * @param url 资源地址 */ cancelLoadByUrl(url: string): void; /** * @private * 加载数组里面的资源。 * @param arr 简单:["a.png","b.png"],复杂[{url:"a.png",type:Loader.IMAGE,size:100,priority:1,useWorkerLoader:true},{url:"b.json",type:Loader.JSON,size:50,priority:1}]*/ private _loadAssets; /** * 解码Texture或者图集 * @param urls texture地址或者图集地址集合 */ decodeBitmaps(urls: any[]): void; private _decodeTexture; } export interface loadItem { /**@internal */ url: string; /**@internal */ type?: string; /**@internal */ size?: number; /**@internal */ priority?: number; /**@internal */ useWorkerLoader?: boolean; /**@internal */ progress?: number; /**@internal */ group?: string; } export interface createItem { url: string; /** 资源类型 */ type?: string; priority?: number; group?: string; /** 资源属性参数。 */ propertyParams?: any[]; /** 资源构造函数参数。 */ constructParams?: any[]; progress?: number; }