| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /**
- * 加载资源工具类
- * @description
- * @author 冯聪
- */
- export default class LoadResUtil {
- /**
- * 日志标签
- * @description
- */
- private static _logTag = "[LoadResUtil]";
- /**
- * 预加载本地资源
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param paths 加载路径
- * @param type 资源类型(cc.Asset)
- * @returns Promise
- */
- public preload(paths: string | any, type: typeof cc.Asset): Promise<any> {
- return new Promise<cc.AssetManager.RequestItem[]>((resolve: (data: cc.AssetManager.RequestItem[]) => void, reject) => {
- cc.resources.preload(paths, type,
- //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- },
- //onComplete
- (err: Error = null, data: cc.AssetManager.RequestItem[]): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 加载本地资源
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param paths 加载路径
- * @param type 资源类型(cc.Asset)
- * @returns Promise
- */
- public load<T extends cc.Asset>(paths: string | any, type: typeof cc.Asset, callBack = null): Promise<any> {
- return new Promise<T>((resolve: (data: T) => void, reject) => {
- cc.resources.load(paths, type,
- //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- if (callBack) {
- let per = finish / total;
- callBack(per * 100);
- }
- },
- //onComplete
- (err: Error = null, data: T): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 预加载文件夹资源
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param dir 文件夹路径
- * @param type 资源类型(cc.Asset)
- * @returns Promise
- */
- public preloadDir(dir: string, type: typeof cc.Asset): Promise<any> {
- return new Promise<cc.AssetManager.RequestItem[]>((resolve: (data: cc.AssetManager.RequestItem[]) => void, reject) => {
- cc.resources.preloadDir(dir, type, //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- },
- (err: Error = null, data: cc.AssetManager.RequestItem[]): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 加载文件夹资源
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param dir 文件夹路径
- * @param type 资源类型(cc.Asset)
- * @returns Promise
- */
- public loadDir<T extends cc.Asset>(dir: string, type: typeof cc.Asset): Promise<any> {
- return new Promise<T>((resolve: (data: T) => void, reject) => {
- cc.resources.loadDir(dir, type,
- //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- },
- //onComplete
- (err: Error = null, data: T | any): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 加载远程资源
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param url 加载路径
- * @param options
- * @returns Promise
- */
- public loadRemote<T extends cc.Asset>(url: string, options: Record<string, any>): Promise<any> {
- return new Promise<T>((resolve: (data: T) => void, reject) => {
- cc.assetManager.loadRemote(url, options,
- //onComplete
- (err: Error = null, data: T): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 预加载场景
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param url 加载路径
- * @param options
- * @returns Promise
- */
- public preloadScene(sceneName: string, options: Record<string, any>) {
- return new Promise<void>((resolve: () => void, reject) => {
- cc.resources.preloadScene(sceneName, options,
- //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- },
- //onComplete
- (err: Error = null): void => {
- if (!err) {
- resolve();
- }
- else {
- reject(err);
- }
- });
- });
- }
- /**
- * 加载场景
- * @description https://docs.cocos.com/creator/manual/zh/release-notes/subpackage-upgrade-guide.html
- * @param url 加载路径
- * @param options
- * @returns Promise
- */
- public loadScene(sceneName: string, options: Record<string, any>): Promise<any> {
- return new Promise<any>((resolve: (data: any) => void, reject) => {
- cc.resources.loadScene(sceneName, options,
- //onProgress
- (finish: number, total: number, item: cc.AssetManager.RequestItem) => {
- },
- //onComplete
- (err: Error = null, data: cc.SceneAsset): void => {
- if (!err) {
- resolve(data);
- }
- else {
- reject(err);
- }
- });
- });
- }
- }
|