Cocos Creator 2.4.x亲测有效。
有点hack的方式,在oppo上无后缀名的话,默认会用.jpg还是啥的方式,去下载,这个时候使用的解析器,下载器是有问题的。图片下载不下来。
那么我们可以模拟Cocos的方式,给无后缀URL(图片)指定特殊的解析器,下载器。我们把特殊无后缀名的图片后缀设置为 .noextpic,然后给他指定对应的解析器,下载器。
代码如下:
第一点:给URL添加后缀名,.noextpic。
// 没有后缀名,oppo单独处理, .noextpic是我们自己注册的一个资源下载处理
let type = cc.path.extname(url);
if (!cc.macro.SUPPORT_TEXTURE_FORMATS.includes(type)) {
if (hf.platformMgr.isOppoGame) {
type = ".noextpic";
}
else {
type = ".jpg";
}
}
第二点:给.noextpic注册解析器。
* 无后缀图片下载、解析注册器
*/
public registNoExtDownloaderAndParser(): void {
cc.assetManager.parser.register(".noextpic", cc.assetManager.parser['parseImage']);
cc.assetManager.downloader.register(".noextpic", cc.assetManager.downloader['downloadDomImage']);
cc.assetManager['factory']['register'](".noextpic", this.createTexture);
}