|
@@ -0,0 +1,236 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="ar">
|
|
|
+ <head>
|
|
|
+ <meta charset="utf-8" />
|
|
|
+ <base href="../../../../" />
|
|
|
+ <script src="page.js"></script>
|
|
|
+ <link type="text/css" rel="stylesheet" href="page.css" />
|
|
|
+ </head>
|
|
|
+ <body class="rtl">
|
|
|
+ <h1>[name]</h1>
|
|
|
+
|
|
|
+ <p class="desc">
|
|
|
+ يتعامل ويتتبع البيانات المحملة والمعلقة. يتم إنشاء نسخة عالمية افتراضية
|
|
|
+ من هذه الفئة واستخدامها من قبل المحملات إذا لم يتم توفيرها
|
|
|
+ يدويًا - انظر [page:DefaultLoadingManager].<br /><br />
|
|
|
+
|
|
|
+ بشكل عام يجب أن يكون ذلك كافيًا، ولكن هناك أوقات يمكن أن تكون فيها
|
|
|
+ مفيدًا لديك محملات منفصلة - على سبيل المثال إذا كنت ترغب في عرض
|
|
|
+ شرائط تحميل منفصلة للأشياء والقوام.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h2>مثال للكود</h2>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ يوضح هذا المثال كيفية استخدام LoadingManager لتتبع التقدم
|
|
|
+ [page:OBJLoader].
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <code>
|
|
|
+ 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 THREE.OBJLoader( manager );
|
|
|
+ loader.load( 'file.obj', function ( object ) {
|
|
|
+ //
|
|
|
+ } );
|
|
|
+ </code>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ بالإضافة إلى مراقبة التقدم، يمكن استخدام LoadingManager ل
|
|
|
+ تجاوز عناوين URL للموارد أثناء التحميل. قد يكون ذلك مفيدًا للأصول
|
|
|
+ القادمة من أحداث السحب والإفلات، WebSockets، WebRTC، أو غيرها من واجهات برمجة التطبيقات. A
|
|
|
+ مثال يظهر كيفية تحميل نموذج في الذاكرة باستخدام عناوين URL لـ Blob أدناه.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <code>
|
|
|
+ // 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 THREE.GLTFLoader( manager );
|
|
|
+ loader.load( 'fish.gltf', (gltf) => {
|
|
|
+
|
|
|
+ scene.add( gltf.scene );
|
|
|
+ objectURLs.forEach( ( url ) => URL.revokeObjectURL( url ) );
|
|
|
+
|
|
|
+ });
|
|
|
+ </code>
|
|
|
+
|
|
|
+ <h2>أمثلة (Examples)</h2>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ [example:webgl_loader_obj WebGL / loader / obj]<br />
|
|
|
+ [example:webgl_postprocessing_outline WebGL / postprocesing / outline]
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h2>المنشئ (Constructor)</h2>
|
|
|
+ <h3>
|
|
|
+ [name]( [param:Function onLoad], [param:Function onProgress],
|
|
|
+ [param:Function onError] )
|
|
|
+ </h3>
|
|
|
+ <p>
|
|
|
+ [page:Function onLoad] — (اختياري) سيتم استدعاء هذه الدالة عندما يتم
|
|
|
+ جميع المحملات.<br />
|
|
|
+ [page:Function onProgress] — (اختياري) سيتم استدعاء هذه الدالة عند
|
|
|
+ اكتمال عنصر.<br />
|
|
|
+ [page:Function onError] — (اختياري) سيتم استدعاء هذه الدالة عندما يواجه المحمل
|
|
|
+ أخطاء. <br />
|
|
|
+
|
|
|
+ ينشئ جديدًا [name].
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h2>الخصائص (Properties)</h2>
|
|
|
+
|
|
|
+ <h3>[property:Function onStart]</h3>
|
|
|
+ <p>
|
|
|
+ سيتم استدعاء هذه الدالة عند بدء التحميل. المعاملات هي:<br />
|
|
|
+ [page:String url] — عنوان url للعنصر المحمل للتو.<br />
|
|
|
+ [page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
|
|
|
+ [page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
|
|
|
+
|
|
|
+ بشكل افتراضي هذا غير محدد.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[property:Function onLoad]</h3>
|
|
|
+ <p>
|
|
|
+ سيتم استدعاء هذه الدالة عند اكتمال جميع التحميلات. بشكل افتراضي
|
|
|
+ هذا غير محدد، ما لم يتم تمريره في المنشئ.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[property:Function onProgress]</h3>
|
|
|
+ <p>
|
|
|
+ سيتم استدعاء هذه الدالة عند اكتمال عنصر. المعاملات
|
|
|
+ هي:<br />
|
|
|
+ [page:String url] — عنوان url للعنصر المحمل للتو.<br />
|
|
|
+ [page:Integer itemsLoaded] — عدد العناصر المحملة حتى الآن.<br />
|
|
|
+ [page:Integer itemsTotal] — إجمالي عدد العناصر التي يجب تحميلها.<br /><br />
|
|
|
+
|
|
|
+ بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[property:Function onError]</h3>
|
|
|
+ <p>
|
|
|
+ سيتم استدعاء هذه الدالة عند حدوث خطأ في أي عنصر، مع الحجة:<br />
|
|
|
+ [page:String url] — عنوان url للعنصر الذي حدث فيه خطأ.<br /><br />
|
|
|
+
|
|
|
+ بشكل افتراضي هذا غير محدد، ما لم يتم تمريره في المنشئ.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h2>الطرق (Methods)</h2>
|
|
|
+
|
|
|
+ <h3>
|
|
|
+ [method:this addHandler]( [param:Object regex], [param:Loader loader] )
|
|
|
+ </h3>
|
|
|
+ <p>
|
|
|
+ [page:Object regex] — تعبير منتظم.<br />
|
|
|
+ [page:Loader loader] — المحمل.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ يسجل محملًا مع التعبير المنتظم المعطى. يمكن استخدامه ل
|
|
|
+ تحديد أي محمل يجب استخدامه لتحميل ملفات معينة. A
|
|
|
+ حالة استخدام نموذجية هي الكتابة فوق المحمل الافتراضي للقوام.
|
|
|
+ </p>
|
|
|
+ <code>
|
|
|
+// add handler for TGA textures
|
|
|
+manager.addHandler( /\.tga$/i, new TGALoader() );
|
|
|
+ </code>
|
|
|
+
|
|
|
+ <h3>[method:Loader getHandler]( [param:String file] )</h3>
|
|
|
+ <p>[page:String file] — مسار الملف.</p>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ يمكن استخدامه لاسترجاع المحمل المسجل لمسار الملف المعطى.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[method:this removeHandler]( [param:Object regex] )</h3>
|
|
|
+ <p>[page:Object regex] — تعبير منتظم.</p>
|
|
|
+
|
|
|
+ <p>يزيل المحمل للتعبير المنتظم المعطى.</p>
|
|
|
+
|
|
|
+ <h3>[method:String resolveURL]( [param:String url] )</h3>
|
|
|
+ <p>
|
|
|
+ [page:String url] — عنوان url للتحميل<br /><br />
|
|
|
+
|
|
|
+ بالنظر إلى عنوان URL، يستخدم رد الاتصال بتعديل URL (إن وجد) ويعيد
|
|
|
+ عنوان URL المحلول. إذا لم يتم تعيين تعديل URL، فسيتم إرجاع العنوان الأصلي.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[method:this setURLModifier]( [param:Function callback] )</h3>
|
|
|
+ <p>
|
|
|
+ [page:Function callback] — رد اتصال تعديل URL. يتم استدعاؤه مع [page:String url] الحجة،
|
|
|
+ ويجب أن يعود [page:String resolvedURL].<br /><br />
|
|
|
+
|
|
|
+ إذا تم توفيره، سيتم تمرير رد الاتصال لكل عنوان URL للمورد قبل
|
|
|
+ يتم إرسال طلب. قد يعود الرد الاتصال بالعنوان الأصلي، أو عنوان URL جديد ل
|
|
|
+ تجاوز سلوك التحميل. يمكن استخدام هذا السلوك لتحميل الأصول من
|
|
|
+ ملفات .ZIP، واجهات برمجة التطبيقات السحب والإفلات، وعناوين URI البيانات.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <br />
|
|
|
+
|
|
|
+ <p>
|
|
|
+ <em>
|
|
|
+ ملاحظة: تم تصميم الطرق التالية ليتم استدعاؤها داخليًا من قبل
|
|
|
+ المحملات. يجب ألا تستدعيها مباشرة.
|
|
|
+ </em>
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[method:undefined itemStart]( [param:String url] )</h3>
|
|
|
+ <p>
|
|
|
+ [page:String url] — عنوان url للتحميل<br /><br />
|
|
|
+
|
|
|
+ يجب استدعاء هذا من قبل أي محمل يستخدم المدير عندما يبدأ المحمل
|
|
|
+ تحميل عنوان url.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[method:undefined itemEnd]( [param:String url] )</h3>
|
|
|
+ <p>
|
|
|
+ [page:String url] — عنوان url المحمَّل<br /><br />
|
|
|
+
|
|
|
+ يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند انتهاء المحمل
|
|
|
+ تحميل عنوان url.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h3>[method:undefined itemError]( [param:String url] )</h3>
|
|
|
+ <p>
|
|
|
+ [page:String url] — عنوان url المحمَّل<br /><br />
|
|
|
+
|
|
|
+ يجب استدعاء هذا من قبل أي محمل يستخدم المدير عند حدوث خطأ في المحمل
|
|
|
+ تحميل عنوان url.
|
|
|
+ </p>
|
|
|
+
|
|
|
+ <h2>المصدر (Source)</h2>
|
|
|
+
|
|
|
+ <p>
|
|
|
+ [link:https://github.com/mrdoob/three.js/blob/master/src/loaders/LoadingManager.js src/loaders/LoadingManager.js]
|
|
|
+ </p>
|
|
|
+ </body>
|
|
|
+</html>
|