Three.js: Evite establecer crossOrigin al tratar con URL de datos

Creado en 10 feb. 2012  ·  3Comentarios  ·  Fuente: mrdoob/three.js

Saludos,

en este fragmento de código, ¿podemos evitar configurar d.crossOrigin cuando estamos tratando con una URL de datos?

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

Puede agregar un cheque como este:

if( a.substr(0,4) != "data" )
  d.crossOrigin = this.crossOrigin;

esto hace el truco. De lo contrario, Chrome 17 arroja una carga de imagen de origen cruzado denegada por la política de uso compartido de recursos de origen cruzado para una URL de datos.

T.

Question

Comentario más útil

Hmm ... Creo que no deberías usar ImageUtils.loadTexture en ese caso. Solo haz esto:

var image = document.createElement( 'img' );
image.src = dataurl;

var texture = new THREE.Texture( image );
texture.needsUpdate = true;

Todos 3 comentarios

Hmm ... Creo que no deberías usar ImageUtils.loadTexture en ese caso. Solo haz esto:

var image = document.createElement( 'img' );
image.src = dataurl;

var texture = new THREE.Texture( image );
texture.needsUpdate = true;

Funciona perfectamente, gracias!

@mrdoob , ¡gracias por la muestra de arriba!

¿Fue útil esta página
0 / 5 - 0 calificaciones