Schöne Grüße,
Können wir in diesem Code vermeiden, d.crossOrigin festzulegen, wenn es sich um eine Daten-URL handelt?
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
Sie können einen Scheck wie folgt hinzufügen:
if( a.substr(0,4) != "data" )
d.crossOrigin = this.crossOrigin;
das macht den Trick. Andernfalls löst Chrome 17 eine originübergreifende Bildladung aus, die von der Cross-Origin Resource Sharing-Richtlinie für eine Daten-URL abgelehnt wurde.
T. T.
Hmm ... Ich denke, Sie sollten in diesem Fall ImageUtils.loadTexture nicht verwenden. Mach das einfach:
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
Funktioniert perfekt, danke!
@mrdoob , danke für das obige Beispiel!
Hilfreichster Kommentar
Hmm ... Ich denke, Sie sollten in diesem Fall ImageUtils.loadTexture nicht verwenden. Mach das einfach: