Привет,
Можем ли мы избежать установки d.crossOrigin в этом фрагменте кода, когда имеем дело с URL-адресом данных?
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-адреса данных.
Т.
Хм ... Думаю, вам не стоит использовать ImageUtils.loadTexture в этом случае. Просто сделай это:
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
Отлично работает, спасибо!
@mrdoob , спасибо за образец выше!
Самый полезный комментарий
Хм ... Думаю, вам не стоит использовать ImageUtils.loadTexture в этом случае. Просто сделай это: