ســفــن الــفــلاش


عنوان الدرس: مشهد ما قبل التحميل بتقنية متقدمة . اضيف بواسطة : الشهاب الحارق . بتاريخ: 20-11-1426هـ.




السلام عليكم

أولاً احببت ان اشارك اخي تميم في شرح مشهد ما قبل التحميل

تعددت الطرق في مسألة مشهد ما قبل التحميل ولي في ذلك طريقه تعلمتها من الكتب التي

عكفت عليها طيلة السنتين الماضيتين .

أولاً دائماً وأبداً لابد من تسمية متغيراتنا بنفس الاسم التي سيحتويه النص البرمجي

نسمي المشهد الرئيسي ب main ومشهد ما قبل التحميل ب perloader


وفي مشهد ما قبل التحميل نسمي الطبقة الأولى نصوص برمجية نضع key frame في الفريم الثاني

تذكر أن الفريم الأول يأتي مسبقاُ به key frame يعني لا داعي لوضع key frame فيه

طيب نضع طبقة ثانية ونسميها النصوص الديناميكية ونضع داخلها مستطيل نحوله إلى Movie Clip
ونسميه في أل instance name
نسمية bar

بعد ذلك نصنع نص ديناميكي Dynamic text ونسميه bLoaded

ثم كعملية نسخ و لصق بزر ال Alt مع السحب بالماوس اصنع ستة

الأول سيكون bLoaded الثاني bleft الثالث bTotal

الرابع kBLoaded الخامس kBLeft السادس kBTotal

وكذلك اصنع السابع ولكن بحجم أصغر وسمة percentLoaded

ألان في ال key frame 1 نضع هذا الكود



سنقسم الشرح في الفريم الأول إلى ثلاثة أقسام


percentLoaded = Math.round ((_root.getBytesLoaded()/_root.getBytesTotal())*100);
bar._xscale = percentloaded;

شرح القسم الأول :
1- ستتم إجراء عملية حسابية على المتغير percentLoaded باستخدام عنصر ال Math.round

كما لا يخفى عليكم أن ال Math.round يبحث عن اقرب عدد صحيح لإجراء العملية الحسابية علية

وكما تعلمون أن البايت الواحد يساوي 1024 بت

فسيقوم بقسمة البايتات المحملة على مجموع البايت في المشهد الرئيسي

وضرب الناتج في 100







//Calculate the Bytes

bTotal = _root.getBytesTotal();
bLoaded = _root.getBytesLoaded();
bLeft = _root.getBytesTotal() - _root.getBytesLoaded();

القسم الثاني سنجعل النصوص الديناميكية تأخذ قيمها من الوظائف هذه . فالكتاب من عنوانه

نص الديناميكي bTotal سيقوم بجلب مجموع البايتات عن طريق الوظيفة المسندة إليه
وكذلك بالنسبة للنص الديناميكي bLoaded

أما النص الديناميكي bLeft سيقوم بجلب ناتج نقصان مجموع البايتات من البايتات المحملة








//Calculate the KBytes

kBTotal = Math.round((bTotal/1024)*100)/100 + 'KB';
kBLoaded = Math.round((_root.getBytesLoaded()/1024)*100)/100 + 'KB';
kBLeft = Math.round((bTotal - bLoaded /1024)*100)/100 + 'KB';



القسم الثالث هذه الطريقة لعرض الناتج بالكيلو بايت

النص الديناميكي kBTotal سيأخذ قيمة ال bTotal المشروحة في الأعلى

وتقسيمها على 1024 ثم ضرب الناتج منها على 100 ثم قسمتها على مائة

تخيل إن القسمة والضرب لا يأتيان إلا بنفس النتيجة أي

اضرب 5 في 100 ثم اقسمها على 100 سيكون الناتج 5
وهكذا يكون العدد نفسه مع زيادة الكيلو بايت يزداد العداد



في الفريم الثاني ضع هذا الكود

if (_framesLoaded == _totalFrames) {
gotoAndPlay ('main', 1);
} else {
gotoAndPlay (2);
}


الشرح : إذا كانت الإطارات المحملة تساوي كل الإطارات

اذهب وشغل المشهد الرئيسي


ولكن إذا لم تكون الإطارات المحملة تساوي كل الإطارات

إذهاب إلى الفريم الأول وشغله وذلك لعملية اللوب علية وهي عملية التنشيط للنصوص البرمجية

وإذا كانت هنالك أي استفسارات أنا حاضر وفي الخدمة

أخيرا : هذا ما لدي والله تعالى اعلم



POWERED BY: SaphpLesson3.0