cuixueying 这应该是你要的结果 我贴伪代码给你
loadBytes(res.bin, () => {
res.texture = Texture.create(res.source, 0, 0, res.texWidth, res.texHeight);
// res.source.dispose();//提交显卡是异步过程 dispose 会导致texture无效
// setTimeout(() => {
// res.source.dispose();
// }, 1000);
// res.source = null;//texture 也存有引用 并不会释放
res.bin = null;
// createFrames?
let len = imgInfoList.length;
for (let i = 0; i < len; i++) {
let image: ImageInfo = imgInfoList[i];
image.texture = Texture.create(res.texture, image.u, image.v, image.w, image.h, image.x, image.y);
}
res.state = Res.STATE_OK;
});
}
var blobType = { type: "application/octet-binary" };
var blobFragment = [];
function loadBytes(fragment: ArrayBuffer, onload: any = null): Laya.HTMLImage {
var blob;
try {
blobFragment[0] = fragment;
blob = new Blob(blobFragment, blobType);
} catch (e) {
var win: any = window;
win.BlobBuilder = win.BlobBuilder ||
win.WebKitBlobBuilder ||
win.MozBlobBuilder ||
win.MSBlobBuilder;
if (e.name == 'TypeError' && win.BlobBuilder) {
var bb = new win.BlobBuilder();
bb.append(fragment);
blob = bb.getBlob("image/png");
}
}
var url: string = URL.createObjectURL(blob)
var htmlImg: Laya.HTMLImage = Laya.HTMLImage.create(url);//这里创建HTMLImage 这里要用HTMLImage.create;
if (onload != null) {
htmlImg.onload = onload;
}
return htmlImg;
}