# [name]

يتعامل ويتتبع البيانات المحملة والمعلقة. يتم إنشاء نسخة عالمية افتراضية من هذه الفئة واستخدامها من قبل المحملات إذا لم يتم توفيرها يدويًا - انظر [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 ) ); });`

## أمثلة (Examples)

[example:webgl_loader_obj WebGL / loader / obj]
[example:webgl_postprocessing_outline WebGL / postprocesing / outline]

## المنشئ (Constructor)

### [name]( [param:Function onLoad], [param:Function onProgress], [param:Function onError] )

[page:Function onLoad] — (اختياري) سيتم استدعاء هذه الدالة عندما يتم جميع المحملات.
[page:Function onProgress] — (اختياري) سيتم استدعاء هذه الدالة عند اكتمال عنصر.
[page:Function onError] — (اختياري) سيتم استدعاء هذه الدالة عندما يواجه المحمل أخطاء.
ينشئ جديدًا [name].

## الخصائص (Properties)

### [property:Function onStart]

سيتم استدعاء هذه الدالة عند بدء التحميل. المعاملات هي:
[page:String url] — عنوان url للعنصر المحمل للتو.
[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.
[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.
بشكل افتراضي هذا غير محدد.

### [property:Function onLoad]

سيتم استدعاء هذه الدالة عند اكتمال جميع التحميلات. بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.

### [property:Function onProgress]

سيتم استدعاء هذه الدالة عند اكتمال عنصر. المعاملات هي:
[page:String url] — عنوان url للعنصر المحمل للتو.
[page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.
[page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.
بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.

### [property:Function onError]

سيتم استدعاء هذه الدالة عند حدوث خطأ في أي عنصر، مع الحجة:
[page:String url] — عنوان url للعنصر الذي حدث فيه خطأ.
بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.

## الطرق (Methods)

### [method:this addHandler]( [param:Object regex], [param:Loader loader] )

[page:Object regex] — تعبير منتظم.
[page:Loader loader] — المحمل.

يسجل محملًا مع التعبير المنتظم المعطى. يمكن استخدامه ل تحديد أي محمل يجب استخدامه لتحميل ملفات معينة. A حالة استخدام نموذجية هي الكتابة فوق المحمل الافتراضي للقوام.

`// add handler for TGA textures manager.addHandler( /\.tga$/i, new TGALoader() );`

### [method:Loader getHandler]( [param:String file] )

[page:String file] — مسار الملف.

يمكن استخدامه لاسترجاع المحمل المسجل لمسار الملف المعطى.

### [method:this removeHandler]( [param:Object regex] )

[page:Object regex] — تعبير منتظم.

يزيل المحمل للتعبير المنتظم المعطى.

### [method:String resolveURL]( [param:String url] )

[page:String url] — عنوان url للتحميل
بالنظر إلى عنوان URL، يستخدم رد الاتصال بتعديل URL (إن وجد) ويعيد عنوان URL المحلول. إذا لم يتم تعيين تعديل URL، فسيتم إرجاع العنوان الأصلي.

### [method:this setURLModifier]( [param:Function callback] )

[page:Function callback] — رد اتصال تعديل URL. يتم استدعاؤه مع [page:String url] الحجة، ويجب أن يعود [page:String resolvedURL].
إذا تم توفيره، سيتم تمرير رد الاتصال لكل عنوان URL للمورد قبل يتم إرسال طلب. قد يعود الرد الاتصال بالعنوان الأصلي، أو عنوان URL جديد ل تجاوز سلوك التحميل. يمكن استخدام هذا السلوك لتحميل الأصول من ملفات .ZIP، واجهات برمجة التطبيقات السحب والإفلات، وعناوين URI البيانات.

ملاحظة: تم تصميم الطرق التالية ليتم استدعاؤها داخليًا من قبل المحملات. يجب ألا تستدعيها مباشرة.

### [method:undefined itemStart]( [param:String url] )

[page:String url] — عنوان url للتحميل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عندما يبدأ المحمل تحميل عنوان url.

### [method:undefined itemEnd]( [param:String url] )

[page:String url] — عنوان url المحمَّل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند انتهاء المحمل تحميل عنوان url.

### [method:undefined itemError]( [param:String url] )

[page:String url] — عنوان url المحمَّل
يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند حدوث خطأ في المحمل تحميل عنوان url.

## المصدر (Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]