تحيات،
في هذا الجزء من الكود ، هل يمكننا تجنب تعيين 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 للبيانات.
ت.
حسنًا ... أعتقد أنه لا يجب استخدام ImageUtils.loadTexture في هذه الحالة. فقط افعل هذا:
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
يعمل بشكل مثالي ، شكرا!
@ mrdoob ، شكرا على العينة أعلاه!
التعليق الأكثر فائدة
حسنًا ... أعتقد أنه لا يجب استخدام ImageUtils.loadTexture في هذه الحالة. فقط افعل هذا: