getDataFromFile获取到的二进制文件怎么转为texture2d

image 如图,将texture2d类型的资源以二进制的形式储存起来,image 接着我要怎么用呢,怎么再将二进制文件转texture2d,我的目的是给节点替换spriteframe

推荐直接loadRemote,比你这处理简单的多。

当然,如果你硬要自己的方式处理,需要分2种情况

  1. 二进制是已解码的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();

  1. 二进制文件是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了吗 这里我不是很清楚

加载资源 | Cocos Creator

多看看官方文档