[LayaAir3]Laya.loader.fetch从内存加载二进制图片失败(3.1.0可以,3.1.6,3.2.0不行)

使用Laya.loader.fetch从内存加载二进制图片失败,经测试3.1.0可以,3.1.6和3.2不行,升级到3.2时发现的,回头测试3.1.6也不行
花点时间弄个了简单的测试项目,就一个main.ts
const { regClass, property } = Laya;


export async function PNG2Tex(PngData: ArrayBuffer): Promise<Laya.Texture2D> {
let option: Laya.ILoadOptions = {};
option.type = Laya.Loader.IMAGE;
option.blob = PngData;
let res = await Laya.loader.fetch("", "image", null, option);
if (res) {
let tex = new Laya.Texture2D(res.width, res.height, Laya.TextureFormat.R8G8B8A8, false, false, true);
tex.setImageData(res, true, false);
console.info(tex);
return tex;
}
console.error("Load Error");
return null;
}

@regClass()
export class Main extends Laya.Script {

onStart() {
console.log("Game start");
Laya.loader.fetch("resources/layaAir.png", "arraybuffer").then((res) => {
console.log(res);
PNG2Tex(res);
});
}
}
以二进制形式加载resources/layaAir.png为arraybuffer,在从arraybuffer加载图片
切换版本要卸载并清除AppData\Roaming\LayaAirIDE目录,不然无法获得正确结果
已邀请:

layaAir小孟

赞同来自:

您好,要改一下fetch的第一个参数,在3.2中fetch内部对url为空字符串行为做了健壮,这里给一个空格字符串的就可以了。

1.png


2.png

 

要回复问题请先

商务合作
商务合作