加载网络图片并替换现有的默认头像.

代码如上, 问题如下:

  1. 看了一下示例的代码, texture.image = data // 这个会爆红, image 的数据格式为 ImageAsset, 但是 assetManager.loadRemote 返回的数据格式为 Asset.
  2. 现在没有正确的显示图片, 默认的头像也消失了. 也没有任何其他的报错.
  3. data 成功获取到了 Asset 格式. avatarImg 也是成功获取到了 node,

不知道如何成功加载图片.

看了一下, 浏览器的网络请求里, 也有返回的图片数据了.


      assetManager.loadRemote<ImageAsset>(res.avatar_url, (err, data) => {
        if (err) {
          console.log('loaderr', err);
        }
        console.log(data);
        const avatarImg = this.node.getChildByPath('upper/user/avatar/avatar_img');
        avatarImg.getComponent(Sprite).spriteFrame = SpriteFrame.createWithImage(data);

看到论坛里有人这样操作, 我试了一下, 有反应了, 不过不是网络的加载的图片, 是项目里的一些乱七八糟的一堆小图合集.

如何才能加载出网络的图片呢?

我的也是这种情况


loadRemote不加

图片加载不出来,我对比了加载本地图片资源SpriteFrame._texture._mipmaps下的ImageAsset,发现data,width,height,format都是有值的,远程图片没有值

我手动加上这些属性, 也是无法显示. 不知道是啥情况?
感觉还有不少地方需要完善的

我用了2.4版本,现在控制台没有任何报错,就是没有图片,加载远程图片ImageAsset里图片的宽高都是0

其实就是报错了,你仔细看看,是不是你远程加载失败了,然后没有处理错误并直接renturn,然后就会导致内部代码错误,然后就会显示成其他的图片或者是图集

好像没报错啊

先在这里加一个有错误就打印并return先

你回错人了,,,我不是他

一样的,你这边也是

淡定,淡定。我这是后遗症,之前做头像功能,测试了没问题,然后上线,后来发现没加错误返回,结果,几十个头像里,有一个头像存在跨域,结果用了该头像的用户,直接。。。。。。崩溃。

我用了2.4版本的可以了

3.5 就是有 bug 是吧?

2.4 就没问题了?

加上泛型类型

是的是的是的

第二个参数加上 {ext: ‘.png’} 可以了。