Three.js: تجنب تعيين crossOrigin عند التعامل مع عناوين url للبيانات

تم إنشاؤها على ١٠ فبراير ٢٠١٢  ·  3تعليقات  ·  مصدر: mrdoob/three.js

تحيات،

في هذا الجزء من الكود ، هل يمكننا تجنب تعيين 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 للبيانات.

ت.

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 التقييمات