asset-manager的可选参数记录

初次看到官方文档里的可选参数一脸懵,趁端午把可选参数结合3.8.2的源码了解了一遍,整理出来以便以后查阅

uuid , url , path , dir , scene 它属于 request 在shared.ts–>IRequest中有定义

assetManager.loadAny([{ uuid: ‘0cbZa5Y71CTZAccaIFluuZ’}, {url: ‘http://example.com/a.png’}], (err, assets) => log(assets));

type: Constructor<Asset> Asset的子类

assetManager.preloadAny(dir, { __requestType__: RequestType.DIR, type: _type, bundle: this.name }, onProg, onComp);

priority 处理优先级。数字越大优先级越高,默认是0 预加载是-1 参看preset

preset 预设参数 shared.ts–>presets 中定义

    default: {
      priority: 0,
     },
    preload: {
        maxConcurrency: 6,
        maxRequestsPerFrame: 2,
        priority: -1,
    },

    scene: {
        maxConcurrency: 20,
        maxRequestsPerFrame: 20,
        priority: 1,
    },

    bundle: {
        maxConcurrency: 20,
        maxRequestsPerFrame: 20,
        priority: 2,
    },

    remote: {
        maxRetryCount: 4,
    },

audioLoadMode 声音处理模式,audio/type.ts中

 AudioType {
        DOM_AUDIO,
        WEB_AUDIO,
        MINIGAME_AUDIO,
        NATIVE_AUDIO,
        UNKNOWN_AUDIO,
    }

ext: 用后缀名对应资源下载/加载方式

assetManager.loadRemote('http://www.cloud.com/test3', { ext: '.png' }, (err, texture) => console.log(err));

没有zip文件处理,想要下载zip文件须自行扩展’.zip’

// JS
‘.js’: downloadScript,
‘.jsc’: downloadScript,
// Images
‘.png’: downloadAsset,
‘.jpg’: downloadAsset,
‘.bmp’: downloadAsset,
‘.jpeg’: downloadAsset,
‘.gif’: downloadAsset,
‘.ico’: downloadAsset,
‘.tiff’: downloadAsset,
‘.webp’: downloadAsset,
‘.image’: downloadAsset,
‘.pvr’: downloadAsset,
‘.pkm’: downloadAsset,
‘.astc’: downloadAsset,
// Audio
‘.mp3’: downloadAsset,
‘.ogg’: downloadAsset,
‘.wav’: downloadAsset,
‘.m4a’: downloadAsset,
// Video
‘.mp4’: downloadAsset,
‘.avi’: downloadAsset,
‘.mov’: downloadAsset,
‘.mpg’: downloadAsset,
‘.mpeg’: downloadAsset,
‘.rm’: downloadAsset,
‘.rmvb’: downloadAsset,
// Text
‘.txt’: downloadAsset,
‘.xml’: downloadAsset,
‘.vsh’: downloadAsset,
‘.fsh’: downloadAsset,
‘.atlas’: downloadAsset,
‘.tmx’: downloadAsset,
‘.tsx’: downloadAsset,
‘.fnt’: downloadAsset,
‘.plist’: downloadAsset,
‘.json’: downloadJson,
‘.ExportJson’: downloadAsset,
‘.binary’: downloadAsset,
‘.bin’: downloadAsset,
‘.dbbin’: downloadAsset,
‘.skel’: downloadAsset,
// Font
‘.font’: downloadAsset,
‘.eot’: downloadAsset,
‘.ttf’: downloadAsset,
‘.woff’: downloadAsset,
‘.svg’: downloadAsset,
‘.ttc’: downloadAsset,
bundle: downloadBundle,
default: downloadText

bundle: 对应的bundle名字 string类型

assetManager.preloadAny(dir, { __requestType__: RequestType.DIR, type: _type, bundle: this.name }, onProg, onComp);

onFileProgress
只有两个参数

download('http://example.com/test.tga', '.tga', { onFileProgress: (loaded, total) => console.log(loaded/total) },onComplete: (err) => console.log(err));

注意区别onProgress: ((finished: number, total: number, item: RequestItem) => void) | null

public preloadAny (requests: string | string[] | IRequest | Array<IRequest>, onProgress: ((finished: number, total: number, item: RequestItem) => void) | null, onComplete: ((err: Error | null, data: RequestItem[]) => void) | null): void;

maxConcurrency, maxRequestsPerFrame, maxRetryCount 并发控制和性能优化相关的配置项,这三项可参考 preset预设参数 。
maxConcurrency:number 最大并发请求
maxRequestsPerFrame:number 单帧最大请求数量
maxRetryCount:number 重连次数

version:string 版本号,发布的时候勾选md5 在setting.assets.bundleVers 可获取,也可在发布后的data/src/setting.xxxx.json文件内setting.assets.bundleVers找到

assetManager.loadBundle('01_graphics', {version: 'fbc07'}, function (err, bundl)=>{})

xhrResponseType, xhrWithCredentials, xhrMimeType, xhrTimeout, xhrHeader 与XMLHttpRequest(XHR)相关的配置项,用于定制HTTP请求的行为
onFileProgress中遇到total数据返回一个异常数据 (uint(-1) 4294967295)某些时候可通过可选参数修改请求头来处理,不用改源码,非常方便。

reloadAsset:boolean 是否重新加载资源

cacheAsset:boolean Asset是否加入缓存 场景和默认Asset不能加入缓存

    if (!isScene(asset) && cacheAsset && !asset.isDefault) {
        assets.add(id, asset);
    }

cacheEnabled:boolean file是否缓存

priority 不是这样的吧,数字越大优先级越高,而且js里面的number没有uint这个说法,都是double。
preload -1 比较小,bundle 2是最高,最先下载的。

感谢指正,确实数字越大优先级越高。
uint是c++的写法。原生平台下载文件获取不到最大长度时,ts中打印total显示4294967295,底层断点调试就是-1,其实是一个值。我把priority与此处-1搞混了