问候,
在这段代码中,我们在处理数据url时可以避免设置d.crossOrigin吗?
THREE.ImageUtils = {crossOrigin: "",loadTexture: function(a, b, c) {
var d = new Image, e = new THREE.Texture(d, b);
d.onload = function() {
e.needsUpdate = !0;
c && c(this)
};
d.crossOrigin = this.crossOrigin;
d.src = a;
return e
您可以像这样添加支票:
if( a.substr(0,4) != "data" )
d.crossOrigin = this.crossOrigin;
这可以解决问题。 否则,Chrome 17会为数据URL抛出“跨域资源共享”策略拒绝的跨域图像加载。
T.
嗯...我认为您不应该在这种情况下使用ImageUtils.loadTexture。 只需执行以下操作:
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
完美的工作,谢谢!
@mrdoob ,感谢上面的示例!
最有用的评论
嗯...我认为您不应该在这种情况下使用ImageUtils.loadTexture。 只需执行以下操作: