Three.js: データURLを処理するときにcrossOriginを設定しないでください

作成日 2012年02月10日  ·  3コメント  ·  ソース: mrdoob/three.js

ご挨拶、

このコードでは、データ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。

Question

最も参考になるコメント

うーん...その場合はImageUtils.loadTextureを使用すべきではないと思います。 これを行うだけです:

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

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

全てのコメント3件

うーん...その場合はImageUtils.loadTextureを使用すべきではないと思います。 これを行うだけです:

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

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

完璧に動作します、ありがとう!

@mrdoob 、上記のサンプルをありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価