如何显示一个外部的图片

游戏里需要显示微信的头像,请问如何操作

cc.loader.load('url', function(err, texture){
    if(err){
        return;
    }
    var spf = new cc.SpreiteFrame(texture);
    sprite.spriteFrame = spf;
})

你试试看

如果是web的话,直接获取会存在跨域问题,webgl目前无法渲染跨域的图片。只能服务器端去拉取头像然后转换成base64发给客户端渲染

不太行,有其他方式吗?

应该是可以的,我在别的框架里直接显示过

cc.loader.load({ url: ‘http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0’, type:‘jpg’ }, function (err, texture) {
if (err) {
cc.log(err);
return;
}
var spf = new cc.SpriteFrame(texture);

        });

用这个可以,我试了把jpg改为png,也能正常下载显示,也许type只是用于下载,不用于加载。

我使用egret时,他们webgl是可以显示跨域图片的,应该是有办法处理的

类型是什么无所谓,但必须加

      cc.loader.load(cc.vv.userMgr.headimg + '.png', function (err, texture) {
        if (err) {
          cc.log(err);
          return;
        }
        self.headImg.spriteFrame = new cc.SpriteFrame(texture);
      });

你用的这个地址http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0,这是一个特例,因为这个图片服务器返回的response headers设置了Access-Control-Allow-Origin:*,如果没有这一点,从不是自己域名加载的图片都是无法被webgl显示的

那加载不是自己域名的图片 该如何操作!???

我这里只有模拟器可以显示远程图片,但是 web 浏览器无法显示,手机浏览器也无法显示,求助!!!

var url = ‘http://122.233.157.87:8090/appUpload/gjsg/reviews/1501014731_1505380252.jpg’;
cc.loader.load({url:url,type:“jpg”}, function(err, texture){
if (err) {
cc.log(err);
}
var sp = new cc.SpriteFrame(texture);
self.picLoader.spriteFrame = sp;
});

class TextureForWebGLByURLToImg {

	private static headBase64Cache: Object = {};


	public static getTextureForWebGLByURLToImg(url: string, img: eui.Image) {
		if(TextureForWebGLByURLToImg.headBase64Cache[url]){
			img.source = TextureForWebGLByURLToImg.headBase64Cache[url];
			return;
		}
		window["fetch"](url).then(response => response.blob()).then(blob => {
			const reader = new FileReader()
			reader.onloadend = async () => {
				egret.BitmapData.create('base64', reader.result.split(",")[1], (bmp_data) => {
					let tex = new egret.Texture();
					tex.bitmapData = bmp_data;
					if(img && img.visible) img.source = tex;
					TextureForWebGLByURLToImg.headBase64Cache[url] = tex;
				})
			};
			reader.readAsDataURL(blob)
		});
	}


}

参考egret的