同一个网络图片,第二次加载,模拟器不显示。浏览器正常

同一个网络图片,第二次加载,模拟器不显示。浏览器正常

cc.loader.load(head, (err, texture)=> {
                if (err == null) {
                    Log.log("load user head success");
                    this.node.getComponent(cc.Sprite).spriteFrame.setTexture(texture);
                }
            });

web下面用的是canvas加载的图片!其他这样加载不了网络图片

那为什么我第一次在模拟器第一个界面在的可以加载呢?第二个界面不行,而且我单步跟踪了texture对象貌似也是对的啊

有没有报错信息?如果没有可否给个 demo 测试看看?

没有报错也,demo。我搞一个给你NewProject3.zip (459.0 KB)

url你们最好改一个,我这边是内网的一个图片

我发觉好像是缩放问题,web上正常,模拟器开始第一次正常,第二次加载,没有按照控件比例压缩,貌似是这个问题

有没有可能是跨域问题呢?

我这边测试了一下是正常的!!

不管几次都是一样的

问题是你的图片小了,图片大,控件小才会出这个问题

你把控件搞小一点,图搞大

@Knox

我的demo是,先进去加载一个图片,然后按enter切换scene,继续进去还是加载这个图片,效果如截图,麻烦看一下

好的,我去试看看

if (err == null) {
var spriteFrame = new cc.SpriteFrame(texture);

            this.node.getComponent(cc.Sprite).spriteFrame=spriteFrame;
        }这样好像是正常的~!~~~:cold_sweat:

谢谢,我试试啊,好诡异的问题

我还在找为什么通过 spriteFrame.setTexture() 会出现问题,你先用你楼上的那个方式创建

这个是由于你使用了 this.node.getComponent(cc.Sprite).spriteFrame.setTexture(texture); 导致的,因为你只修改了它的 texture 而 SpriteFrame 的属性并没有进行修改,所以才会出现无法显示的问题。

最好的办法还是直接 new 一个新的 SpriteFrame 或者是 load SpriteFrame

好的,已经按照上面的方法修改了