Three.js: Hindari menyetel crossOrigin saat menangani url data

Dibuat pada 10 Feb 2012  ·  3Komentar  ·  Sumber: mrdoob/three.js

Salam pembuka,

di bagian kode ini, dapatkah kita menghindari pengaturan d.crossOrigin ketika kita berurusan dengan url data?

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

Anda dapat menambahkan tanda centang seperti ini:

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

ini berhasil. Jika tidak, Chrome 17 akan menampilkan pemuatan gambar Lintas-asal yang ditolak oleh kebijakan Berbagi Sumber Daya Lintas-Asal untuk url data.

T.

Question

Komentar yang paling membantu

Hmm ... Saya pikir Anda sebaiknya tidak menggunakan ImageUtils.loadTexture dalam kasus itu. Lakukan saja ini:

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

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

Semua 3 komentar

Hmm ... Saya pikir Anda sebaiknya tidak menggunakan ImageUtils.loadTexture dalam kasus itu. Lakukan saja ini:

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

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

Bekerja dengan sempurna, terima kasih!

@mrdoob , terima kasih untuk contoh di atas!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat