如图,将texture2d类型的资源以二进制的形式储存起来,
接着我要怎么用呢,怎么再将二进制文件转texture2d,我的目的是给节点替换spriteframe
推荐直接loadRemote,比你这处理简单的多。
当然,如果你硬要自己的方式处理,需要分2种情况
- 二进制是已解码的RGBA,也可以用
let tex = new cc.Texture2D();
// /包含 RGBA 四通道的 32 位整形像素格式:RGBA8888。 一字节8位
tex.reset({ width: width, height: height, format: cc.Texture2D.PixelFormat.RGBA8888, mipmapLevel: 0 });
tex.uploadData(buffer, 0, 0);
// 更新 0 级 Mipmap。
tex.updateImage();
- 二进制文件是jpg/png编码的图像数据
let img = new Image();
img.src = filepath;
const tex = new cc.Texture2D();
img.onload = function () {
const imageAsset = new cc.ImageAsset(img);
tex.image = imageAsset;
};
1赞
感谢大佬,直接用loadremote是可以,不过我想要的是先下载存储到本地,后面需要的用的时候就不用每次都下载。
loadremote可以加载本地文件
加载的本地文件可以直接用吗 不用转texture2d了吗 这里我不是很清楚