يتعامل ويتتبع البيانات المحملة والمعلقة. يتم إنشاء نسخة عالمية افتراضية
من هذه الفئة واستخدامها من قبل المحملات إذا لم يتم توفيرها
يدويًا - انظر [page:DefaultLoadingManager].
بشكل عام يجب أن يكون ذلك كافيًا، ولكن هناك أوقات يمكن أن تكون فيها
مفيدًا لديك محملات منفصلة - على سبيل المثال إذا كنت ترغب في عرض
شرائط تحميل منفصلة للأشياء والقوام.
يوضح هذا المثال كيفية استخدام LoadingManager لتتبع التقدم [page:OBJLoader].
const manager = new THREE.LoadingManager();
manager.onStart = function ( url, itemsLoaded, itemsTotal ) {
console.log( 'Started loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
};
manager.onLoad = function ( ) {
console.log( 'Loading complete!');
};
manager.onProgress = function ( url, itemsLoaded, itemsTotal ) {
console.log( 'Loading file: ' + url + '.\nLoaded ' + itemsLoaded + ' of ' + itemsTotal + ' files.' );
};
manager.onError = function ( url ) {
console.log( 'There was an error loading ' + url );
};
const loader = new OBJLoader( manager );
loader.load( 'file.obj', function ( object ) {
//
} );
بالإضافة إلى مراقبة التقدم، يمكن استخدام LoadingManager ل تجاوز عناوين URL للموارد أثناء التحميل. قد يكون ذلك مفيدًا للأصول القادمة من أحداث السحب والإفلات، WebSockets، WebRTC، أو غيرها من واجهات برمجة التطبيقات. A مثال يظهر كيفية تحميل نموذج في الذاكرة باستخدام عناوين URL لـ Blob أدناه.
// Blob or File objects created when dragging files into the webpage.
const blobs = {'fish.gltf': blob1, 'diffuse.png': blob2, 'normal.png': blob3};
const manager = new THREE.LoadingManager();
// Initialize loading manager with URL callback.
const objectURLs = [];
manager.setURLModifier( ( url ) => {
url = URL.createObjectURL( blobs[ url ] );
objectURLs.push( url );
return url;
} );
// Load as usual, then revoke the blob URLs.
const loader = new GLTFLoader( manager );
loader.load( 'fish.gltf', (gltf) => {
scene.add( gltf.scene );
objectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );
});
[example:webgl_loader_obj WebGL / loader / obj]
[example:webgl_postprocessing_outline WebGL / postprocesing / outline]
[page:Function onLoad] — (اختياري) سيتم استدعاء هذه الدالة عندما يتم
جميع المحملات.
[page:Function onProgress] — (اختياري) سيتم استدعاء هذه الدالة عند
اكتمال عنصر.
[page:Function onError] — (اختياري) سيتم استدعاء هذه الدالة عندما يواجه المحمل
أخطاء.
ينشئ جديدًا [name].
سيتم استدعاء هذه الدالة عند بدء التحميل. المعاملات هي:
[page:String url] — عنوان url للعنصر المحمل للتو.
[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.
[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.
بشكل افتراضي هذا غير محدد.
سيتم استدعاء هذه الدالة عند اكتمال جميع التحميلات. بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
سيتم استدعاء هذه الدالة عند اكتمال عنصر. المعاملات
هي:
[page:String url] — عنوان url للعنصر المحمل للتو.
[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.
[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.
بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
سيتم استدعاء هذه الدالة عند حدوث خطأ في أي عنصر، مع الحجة:
[page:String url] — عنوان url للعنصر الذي حدث فيه خطأ.
بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
[page:Object regex] — تعبير منتظم.
[page:Loader loader] — المحمل.
يسجل محملًا مع التعبير المنتظم المعطى. يمكن استخدامه ل تحديد أي محمل يجب استخدامه لتحميل ملفات معينة. A حالة استخدام نموذجية هي الكتابة فوق المحمل الافتراضي للقوام.
// add handler for TGA textures
manager.addHandler( /\.tga$/i, new TGALoader() );
[page:String file] — مسار الملف.
يمكن استخدامه لاسترجاع المحمل المسجل لمسار الملف المعطى.
[page:Object regex] — تعبير منتظم.
يزيل المحمل للتعبير المنتظم المعطى.
[page:String url] — عنوان url للتحميل
بالنظر إلى عنوان URL، يستخدم رد الاتصال بتعديل URL (إن وجد) ويعيد
عنوان URL المحلول. إذا لم يتم تعيين تعديل URL، فسيتم إرجاع العنوان الأصلي.
[page:Function callback] — رد اتصال تعديل URL. يتم استدعاؤه مع [page:String url] الحجة،
ويجب أن يعود [page:String resolvedURL].
إذا تم توفيره، سيتم تمرير رد الاتصال لكل عنوان URL للمورد قبل
يتم إرسال طلب. قد يعود الرد الاتصال بالعنوان الأصلي، أو عنوان URL جديد ل
تجاوز سلوك التحميل. يمكن استخدام هذا السلوك لتحميل الأصول من
ملفات .ZIP، واجهات برمجة التطبيقات السحب والإفلات، وعناوين URI البيانات.
ملاحظة: تم تصميم الطرق التالية ليتم استدعاؤها داخليًا من قبل المحملات. يجب ألا تستدعيها مباشرة.
[page:String url] — عنوان url للتحميل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عندما يبدأ المحمل
تحميل عنوان url.
[page:String url] — عنوان url المحمَّل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند انتهاء المحمل
تحميل عنوان url.
[page:String url] — عنوان url المحمَّل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند حدوث خطأ في المحمل
تحميل عنوان url.
[link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]