سوف اقوم فى هذا الدرس بشرح انشاء مشهد التحميل فى الفلاش باستخدام الاكشن سكريبتب 3 بحيث عندما يقوم المستخدم بتحميل الملف يظهر له شريط تحميل يستطيع من خلاله ملاحظة التقدم فى عملية التحميل حتى لايشعر بالملل من الانتظار .

1. قم بفتح ملف فلاش جديد واحفظه باسم preloader .

2. اجعل خلفية ساحة العمل stage سوداء واجعل سرعة الكادرات 30 .

3. قم باضافة 2 شفافية جديدة layer بحيث يكون فى ملف الفلاش 3 شفافيات سمى الشفافية الاولى الموجودة فى الاعلى باسم action  وفى هذه الشافية سوف نقوم بكتابة كود الاكشن سكريبت الخاص بالتحميل والشافية الثانية باسم text والشفافية الثالثة باسم bar كما فى الشكل .

4. قم بتحديد شفافية text Layer ثم قم باختيار اذاة النص textTool الموجودة فى شريط الادوات Tools ثم فى لوحة الخصائص اجعل حقل النص ديناميكى dynamic واختر اللون الذى تريده وكذلك حجم الخط واجعل النص فى منتصف ساحة العمل stage  وقم باعطائه اسم وليكن percent_txt .

5. قم بتحديد شفافية bar  واختار الادارة Rectangle Tool  وفى لوحة الخصائص اجعل stroke بــ None واجعل لون المستطيل احمر وقم برسم المستطيل تحت النص الموجود فى الخطوة السابقة بمسافة قليلة ويكون عرضه 300 وارتفاعه 15px بعد ذلك قم بتحويل المستطيل الى لقطة فيلمية عن طريق تحديده والضغط على f8 تظهر ناقذه اختار منها MovieClip وبعد ذلك قم بتسمية هذه اللقطة الفيلمية فى لوحة الخصائص bar_mc .

6. حدد شفافية الاكشن action وقم بكتابة الكود التالى

var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(ProgressEvent.Progress, progressHandler);
loader.contentLoaderInfo.addEventListener(Event.Complete, completeHandler);
loader.load(new URLRequest("content.swf"));
function progressHandler(event:ProgressEvent):void
{
 
         var ratio:Numbber = event.bytesLoaded/event.bytesTotal;
 
          percent_txt.text = Math.ceil(ratio*100).toString();
 
          bar_mc.scaleX = ratio;
 
}

7. شرح الكود لقد قمنا بالاعلان عنا عنصر loader  والذى من خلاله سوف يتم تحميل الملف الخارجى الموجود فى عنصر URLRequest والذى يحتوى هنا على ملف swf والذى يمثل الارتباط الخاص بالملف الذى سوف نقوم بتحميله .

8. سوف نقوم باضافة حدث (event)  لعنصر loader  وذلك لمعرفة التقدم فى عملية التحميل وسوف نستخدم هنا PROGRESS event وهو العنصر الخاص بمعرفة التقدم فى عملية التحميل وسوف نستخدم الدالة progressHandler مع هذا الحدث اى انها الدالة التى سوف تنفذ اثناء عملية التحميل وسوف يتم الاعلان بداخل هذه الدالة عن متغير اسمه ratio وهو يمثل الفرق بين البايت Bytes التى تم تحميلها بالفعل و total bytes التى تمثل الحجم الكلى للملف المراد تحميله بالبايت .

9. سوف نجعل حقل النص الديناميكى percent_txt يساوى ratio *100  وهو يمثل النسبة المئوية من عدد البايتات المحملة .

10. واخيراً سوف نجعل scaleX للقطة الفيلمية bar_mc تساوى ratio .

(هام : أن scaleX و scaleY تترواح نسبتها فى الاكشن سكريبت 3 ما بين صفر الى الواحد الصحيح ).

function completeHandler(e:Event):void {
 
     removeChild(percent_txt);
 
     removeChild(bar_mc);
 
     percent_txt = null;
 
     bar_mc = null;
 
     addChild(loader);
 
}

11. اخيراً نجد ان الداله completeHandler تقوم بمعالجة الحدث COMPLETE event اى ماذا تريد أن تفعل بعد انتهاء التحميل بالطبع انك لاتريد ان ترى شريط التحميل والنص الخاص بعملية التحميل على ساحة العمل stage  ولذلك سوف نستخدم الدالة removeChild()  لحذفهم من على ساحة العمل .

12. بعد ذلك نقوم باضافة ما قمنا بتحميله من خلال استخدام addChild()

تحميل المثال