假如说目前项目文件结构如下:
resources
|-images
|-level-00000.jpg
|-level-00001.jpg
加载单个资源:
cc.resources.load("images/level-00000", cc.SpriteFrame, function (err, spriteFrame) {
console.log('single resources: ', spriteFrame)
})
加载多个资源
cc.resources.load([
"images/level-00000",
"images/level-00001"],
cc.SpriteFrame,
function(finished, total, item) {
console.log('arr progress', finished / total)
},
function (err, spriteFrames) {
console.log('arr resources: ', err, spriteFrames)
})
加载文件夹下资源:
cc.resources.loadDir('images', cc.SpriteFrame, function(finished, total, item) {
console.log('progress', finished / total)
}, function(err, spriteFrames) {
console.log('resources', spriteFrames)
})
定义
export type CompleteCallbackWithData<T = any> = (err: Error | null, data: T) => void;
export type ProgressCallback = (finished: number, total: number, item: RequestItem) => void;
// load
public load<T extends Asset> (
paths: string,
type: AssetType<T> | null,
onProgress: ProgressCallback | null,
onComplete: CompleteCallbackWithData<T> | null): void;
public load<T extends Asset> (
paths: string[], type: AssetType<T> | null,
onProgress: ProgressCallback | null,
onComplete: CompleteCallbackWithData<T[]> | null): void;
public load<T extends Asset> (paths: string, onProgress: ProgressCallback | null, onComplete: CompleteCallbackWithData<T> | null): void;
public load<T extends Asset> (paths: string[], onProgress: ProgressCallback | null, onComplete: CompleteCallbackWithData<T[]> | null): void;
public load<T extends Asset> (paths: string, onComplete?: CompleteCallbackWithData<T> | null): void;
public load<T extends Asset> (paths: string[], onComplete?: CompleteCallbackWithData<T[]> | null): void;
public load<T extends Asset> (paths: string, type: AssetType<T> | null, onComplete?: CompleteCallbackWithData<T> | null): void;
public load<T extends Asset> (paths: string[], type: AssetType<T> | null, onComplete?: CompleteCallbackWithData<T[]> | null): void;
public load<T extends Asset> (
paths: string|string[],
type?: AssetType<T> | ProgressCallback | CompleteCallbackWithData<T|T[]> | null,
onProgress?: ProgressCallback | CompleteCallbackWithData<T|T[]> | null,
onComplete?: CompleteCallbackWithData<T|T[]> | null,
) {
const { type: _type, onProgress: onProg, onComplete: onComp } = parseLoadResArgs(type, onProgress, onComplete);
const options = { __requestType__: RequestType.PATH, type: _type, bundle: this.name, __outputAsArray__: Array.isArray(paths) };
legacyCC.assetManager.loadAny(paths, options, onProg, onComp);
}}
// loadDir
public loadDir<T extends Asset> (dir: string, type: AssetType<T> | null, onProgress: ProgressCallback | null, onComplete: CompleteCallbackWithData<T[]> | null): void;
public loadDir<T extends Asset> (dir: string, onProgress: ProgressCallback | null, onComplete: CompleteCallbackWithData<T[]> | null): void;
public loadDir<T extends Asset> (dir: string, onComplete?: CompleteCallbackWithData<T[]> | null): void;
public loadDir<T extends Asset> (dir: string, type: AssetType<T> | null, onComplete?: CompleteCallbackWithData<T[]> | null): void;
public loadDir<T extends Asset> (
dir: string,
type?: AssetType<T> | ProgressCallback | CompleteCallbackWithData<T[]> | null,
onProgress?: ProgressCallback | CompleteCallbackWithData<T[]> | null,
onComplete?: CompleteCallbackWithData<T[]> | null,
) {
const { type: _type, onProgress: onProg, onComplete: onComp } = parseLoadResArgs(type, onProgress, onComplete);
legacyCC.assetManager.loadAny(dir, { __requestType__: RequestType.DIR, type: _type, bundle: this.name, __outputAsArray__: true }, onProg, onComp);
}