- في السطر البرمجي الأول قعنا بالنداء على الرمز الذي سيستقبل الحدث باسمه وهو 10 5010336 ولما حضر وضعنا نقطة الإحتواء
إدارج دالة إنتظار حدث في قائمة الإنتظار الخاصة بهذا الرمز
- هذه الدالة تقبل معاملين, المعامل الأول هو اسم الحدث الذي سيستقبله هذا الرمز, والمعامل الأخر هو اسم الدالة التى نريد إدراجها فى قائمة إنتظار وقوع هذا
الحدث على هذا الرمز ليتم تنفينها : :0
على الفأرة فالثابت الخلص بهذا الحدث هو 61161 ولذلك نستخدم التعبير 101565/60161161/! وعند التنفيذ يقوم الأكشن إسكريت بإستبدال التعبير
)06116 2/6 11/101158 بقيمته وهي اسم الحدث >اعزاع
اسم الثابت (الخاصية) الذي يمثل اسم الحدث الذي نريده وهو 1166© أى عند النقر مرة واحدة على الزر الأيسر للفأرة ثم وضعنا فاصلة لنكتب المعامل الثاني
- بالطبع يمكن بدلاً من كتابة 046116 1/101585:/8] أن تكتب "»ا6116" مباشرةً وسيكون لونها أخضر لآنها بين علامتي تنصيص وهذا يعني أنها مجرد قيمة
(اسم) نصية ولكن الصيفة الأولى أدق وأفضل حتى يتمكن الأكشن إسكربت من مساعدتك في حالة كتابة اسم الحدث خطأ لأن الصيغة الثانية سوف يقبلها كما
إذا المعنى المقصود من السطر البرمجي الأول هو أننا نقول للبرنامج قم بإدراج الدالة 006 في قائمة إنتظار وقوع حدث الثقر على الرمز 17116 _©501121
- في السطر البرمجي الثاني قمنا بإنشاء الدالة التي تُسمى »©00011 في بداية الأمر لكي تُعرف دالة جديدة كتبنا كلمة 11121101 ثم قمئا بتحديد اسمها وهو
- كما ذكرت فإنه بمجرد وقوع الحدث يتم عمل كائن حدث الذي يُمرر إلى الدالة ولذلك لابد من إعطاءه اسماً لكي يتم التعامل معه وكما تعلمت في السابق فإن
كلمة اسم تساوي متغير إناً انشاءنا متغير بين اقواس الملحقات سميته أنا 8/ا© ولك الحرية في اختياررما تشاء ثم وضعنا نقطتين, في لغات البرمجة عموماً
خالية من نتيجة نهائية فهى فقط ستقوم بتنفيذ تتابع معين من أوامر وليست هناك قيمة نهائية ترجعها الدالة فقد يكون مثلاً لديك دالة تحسب تاريغ معين
ثم ترجع لك هذا التاريغ كقيمة نهائية لحسابات معينة وتستطيع ان تستخدم هذا التاريخ فيما بعد وفي هذه الحالة تستبدل كلمة 1/010 بنوع القيمة التي
فتحنا أأتوهس التغليف
إذا المعنى المقصود من السطر البرمجي الثاني هو أننا نقول للبرنامج ثم بإنشاء دالة اسمها 006112٠) وسيكون لها معامل عبارة عن اسم للكائن من الفئة
- في السطر البرمجي الثالث استعملنا دالة )©1386 وجعلنا المعامل هو 6/148 وهو التعبير الذي يُمثل إنوع) الحدث فكما ترى فقد استعملنا اسم كائن
الحدث ثم وضعنا نقطة الإحتواء وكتبنا 1/06 وهو ثابت ضمن كائن الحدث يمثل نوع الحدث
إذاً المعنى المقصود من السطر البرمجي الثالث هو أتنا نقول للبرنامج أعرض في لوحة التتبع قيمة الثابت 1/06 الخاص بهذا الحدث
- ثم قفلنا أقواس التغليف
وعند إختبار الفيلم والنقر على المربع ستلاحظ ظهور لوحة التتبع 03:0 01110116 وفيها كلمة )1121© وهي قيمة الثابت عم/اا الخلص بهنا الحدش
كما قلت مهناك أنواع كثير للأحداث داخل فئة 5/604 11/101156 ذكرنا منها 611612 اما بالنسبة لباقي الأحداث فالثوابت الخاص بهم هى:
2 الأحداث الخاصة بلوحة المفاتيخ:
قم برسم مربع وضعه في منتصف المسرح ثم حوله إلى موفي كليب وأعطي النسخة اسم 5010376006
حدد الإطار رقم 1 في الخط الزمني, ال ©11116110, وأفتح لوحة محرر الأكشن إسكربت وأكتب الكود التالي:
- الفكرة تماماً مثل أحداث الفأرة إلا أننا جعلنا مستقبل الحدث بدل من المربع 36_10716 50118 جعلناه المسرح ال 5:3856, لأنه لكي يستجيب المربع لحدث الضغط
على مفتاح من لوحة المفاتيح لابد من النقر على المربع أولاً لتحديده وهذا امر بالطبع غير منطقي ولذلك جعلنا مستقبل الحدث هو المسرح
- وبالنسبة للحدث فهو ضمن فئة 01 6/002:085/8)) والثابت الذي يمثل اسم حدث الضغط على لوحة المفاتيح هو [7_001//18ع)اء
- المختلف فقط عن الكود السابق هو اننا جعلنا دالة 00611616 تقوم بجعل الأحدائي الأفقي للمربع يساوي ١0
وعند إختبار الفيلم والضغط على المسطرة مثلاً من لوحة المفاتيح ستلاحظ إنتقال المريع إلى اليسار
الجدير بالذكر هنا أنه يمكنك معرفة أى مفتاح قام المستخدم بالضغط عليه فكما قلت أن فائدة كائن الحدث الذي يُمرر إلى دالة الإنتظار هو توفير معلومات للدالة عن
الحدث الذي تم من خلال عدة خصائص ولذلك فهناك خاصيتين, الأولى وهى 11336006 وهى تمثل المفتاح الذي قام المستخدم بالضغط عليه فمثلاً عند الضغط
على مفتاح الحرف 8 فإن قيمة هذه الخاصية تصبعح 'ج” والخاصية الثانية هى 6 6/000)! وهى تعطي رقم المفتاح الفعلي على لوحة المفاتيع فمثلاً عند الضغط على
مفتاح الحرف 8 فإن قيمة هذه الخاصية تصبع 65
3الحركة بإستخدام الحدث ع الااققاع 56 5/017:
قد تحدثنا عن الأحداث المرتبطة بالمستخدم مثل أحداث الفأرة وأحداث لوحة المفاتيح وكيفية عملها أما النوع الثالث من الأحداث فهو أحداث داخل الفيلم, والتي تعتمد
على الخط الزمني الفكرة بعنتهى البساطة قائمة على جعل البرنامج ينتظر حدوث شىء جديد ولكي تستوعب هذه الفكرة لابد وأن تفهم كيفية عمل برنامج الفلاش في
عرض الإطارات
قد ذكرت أن الشق التصميمي قائم على عمل عدة لقطات (إطارات) مختلفة ومتتابعة وكل إطار يحتوي على عناصر معينة مكوّنة له ويقوم رأس التشغيل بتحرك لعرض
ستكون 5 ثواني ولكن كيف يقوم برنامج الفلاش بعمل ذلك فالحقيقة يقوم بشىء شبيه بالتالي عند تشغيل هذا الفيلم:
1 في الثانية الأولى يعرض محتويات الإطار الأول
2 وعند الثانية الثانية يفحص العناصر في الإطار الثاني فإن وجد تغيير في أحد عناصر الإطار الثاني فيقوم بتحديث الشاشة وعرض التغيير وإن كان الإطار الثاني مشابه
تماماً للإطار الأول فيبقى الحال كما هو عليه ولا يعرض الإطار الثاني بل ينتظر للثانية الثالثة لفحص محتويات الإطار الثالث
3 وعند الثانية الثالثة يبدأ الفحص فإن وجد تغيبر في أحد عناصر الإطار الثألث يقوم بتحديث الشاشة ويعرض العناصر التي تغيرت فقط في الإطار الثالث وإلا فإنه
201721868 الذي تحدثنا عنه, بحيث قبل أن يقوم الفلاش بعملية الفحص عن تغير في الإطار ليقوم بعرضه نقوم نحن بإستجابة لحدث 5 01725_]1881/1]
ومن ثم نجعل الأكشن إسكربت ينفذ دالة انتظار تحدث التغيبر الذي نريده ليتم عرضه
ولتوضيح الفكرة أكثر يمكنك أن تعتبر الحدث 181/1 _518 117 كأنه حلقة تكرار تقوم بتحديث الشاشة بتغيبرات معينة عدة مرات في الثانية وعدد هذه المرات
تخيل مثلاً لو أردنا أن نجعل موفي كليب يتحرك من اليسار إلى اليمين خطوة خطوة إذاً فخيارنا الأكيد هو دالة إنتظار حدث ع681/1] 5017518
قم برسم مريع وضعه على يسار المسرح ثم حوله إلى موفي كليب وأعطي النسخة اسم 50103761006
حدد الإطار رقم 1 في الخط الزمني, ال ©11116110, وأفتح لوحة محرر الأكشن إسكربت وأكتب الكود التالي:
- الفكرة تماماً مثل الفكرة العامة للأحداث التي تكلمنا عنها وجعلنا مستقبل الحدث هو المسرح ال 54886
- وبالنسبة للحدث فهو ضمن فئة 04 1/6] التي تحوي على الأحداث العامة والثابت الذي يمثل اسم حدث الإنتقال إلى إطار جديد هو ع1_]1/1/1 ]5/17 ودالة
- قمنا بإنشاء الدالة و خصئنا أسم ]/ا6 لكائن الحدث من فئة 5/801
- ولكي نجعل الأكشن إسكربت يزيد قيمة الإحداثي الرأسي للموفي كليب بمقدار واحد كل مرة استمعلنا رمز الإضافة وهو -+ ثم وضعنا الرقم 1
وعند إختبار الفيلم ستلاحظ تحرك المربع من اليسار إلى اليمن خطوة بخطوة يمكنك أن تجعله يتحرك أسرع عن طريق زيادة سرعة عرض الإطارت مثلاً من 12 إلى 24
إطار في الثانية وهكذا !
ولكنك ستلاحظ ايضاً بعد فترة إختفاء الموفي كليب لأنه استمر في التحرك وتخطى طول المحور الأفقي للمسرح ففي الغالب الأعم يكون حجم الإفتراضي للمسرح هو
ويمكننا عمل ذلك عن طريق جمل الشرط ؟1 وهي تستخدم لوضع شرط يتم التحقق منه قبل تنفيذ أمر ما
4 مل ناي إنانهاك0ه 020100
- تلاحظ بالتأكيد أن الإختلاف موجود في أوامردالة الإنتظار بالتحديد أننا قمنا بإضافة جملة شرط
- قمنا بعد إنشاء دالة الإنتظار بعمل جملة الشرط عن طريق كتابة الصيغة العامة وهى كلمة ١) وتلاحظ تحولها إلى اللون الأزرق ثم في أقواس الملحقات وضعئا
التغليف وهو زيادة الإحداثي الأفقي يواحد
- ثم كتبنا كلمة 6158 وتعني إذا لم يتحقق الشرط ووضعنا ما سوف يفعله الأكشن إسكربت إنا لم يتحقق هذا الشرط بين أقواس التغليف
- تلاحظ كيف جلعنا الأكشن إسكربت يتوقف عن تحريك الموفي كليب وهو عن طريق أننا استعملنا دالة ؟80101/85/604115802: للإزالة دالة الإنتظار
+4 من قائمة إنتظار الحدث 714/81/18 _ 51178 بحيث لا يتم تنفيذها إذا لم يتحقق الشرط الذي وضعئاه
- وطريقة كتابة دالة +011150608 610/6576 تماماً مثل دالة +50808 3008/6011 وهي كتابة اسم مستقبل الحدث ثم الدالة
61101/66041156 التي سوف تزيل دالة الإنتظار من قائمة إنتظار الحدث والتي تم تحديدهما بين أقواس منحقات الدالة
ِ ثم أغلقنا أقواس التغليف الخاصة بدالة الإنتظار ِ
إذاً المعنى المقصود هو إذا تحقق الشرط وهو كوّن الإحداثي الأفقي للموفي كليب أقل من 500 إذاً قم زيادة الإحداثي الأفقي وإلا فقم بالتوقف عن الإستجابة لهذا
وعند إختبار الفيلم ستلاحظ تحرك المربع من اليسار إلى اليمن خطوة بخطوة إلى أن يصل إلى نهاية المسرح فيتوقف
أها! إلى الآن فقد قطعت شوطاً كبيراً في تعلم اساسيات الأكشن إسكربت 30 ولكن يتبقى بعد المتفرقات التي يجب أن تكون مُلم بها
1إنشاء كائن جديد من فئة:
هناك فئة خاصة بالتاريخ والوقت تُسمى 0346 وللإنشاء كائن جديد يحتوي على كافة المعلومات عن التاريخ والوثت الحالي نقوم بإستعمال كلمة /0611 ثم إسم الفئة
ّ ّ )2 ماع
بالطبع أنت الآن تنظر إلى ال 0348 على أنها دالة لآنها تأثذ نفس شكل الدالة ولكن 0348 هي اسم لفئة التاريخ والونثت فقد تعلمت في السابق أن الدالة لا يبدأ
اسمها بحرف كبير إناً لماذا وضعنا أقواس الملحقات ؟!
في الواقع هذا يرجع لطبيعة إنشاء بنية الفئة من الأساس ولكي تستوعب ما أقول تابع الكود التالي الذي يمثل الهيكل الأساسي لأي فئة:
أي فئة هي جزء من حزمة 03612388 ولذلك فكل حزمة تشتمل على عدة فئات ويمكن أن يكون للحزمة اسماً فيُكتب الحرف الأول من كل مقطع صغيراً وإذا كان الاسم
عبارة عن عدة مقاطع تفصل بنقطة ,مجرد عُرف في التسمية, ومثال على ذلك هنك حزمة في الأكشن إسكربت اسمها /إ11351015123 وهي تشتمل على عدة فئات من
ضمنها فئة ال م(اع1/101/16], في المثال السابق هناك حزمة اسمها 6ع 70/0261:3+*
الدالة من أوامر يتم تنفيذه تلقائياً بدون استدعاء بعجرد إنشاء كائن جديد من هذه الفئة وقد تحتاج دالة التكوين إلى معاملات ولذلك لابد من نعطي لهذه المعاملات
قيمة عند تكوين كائن جديد ويتم ذلك عن طريق كتابة قيمة هذه المعاملات بين اقواس ملحقات بعد اسم الفئة أثناء إنشاء كائن جديد
فمثلاً لو أن لدينا فئة خاصة بالمدرس وأريد عندما يُكون كائن جديد من هذه الفئة أن يُحدد المرتب الذي سيأخذه ولذلك كل من يقوم بإنشاء كائن جديد من هذه
الفئة عليه ان يكتب قيمة للمرتب بين أقواس الملحقات ١
في المثال السابق دالة التكوين كان اسمها تماماً مثل الفئة 1/1/01355] حتي في عرف التسعية وهناك آلية أدالة]ً اسمها 11100 1/11/1/16]
هذه جزيئة متقدمة يمكنك تجاهلها الآن ولكن قصدت أن تعرف لماذا نضع أقواس ملحقات فأقواس الملحقات تحتوي على قيم معاملات تحتاجها دالة التكوين
ونعود للكود الرئيسي الذي نتعامل معه وهو:
وبما أن دالة التكوين لفئة ال ©0384 لا تحتاج معاملات إذاً يمكن كتابتها كالآتي:
ولكن جرت العادة على أنه حتى إذا لما تكن دالة التكوين تحتاج معاملات مفُنقوم وضع أقواس الملحقات فارغة
تعلمت في لغة الأكشن إسكربت فإن كلمة اسم تساوي متغير إذاً علينا إنشاء متغير
قد رأيت في السابق كيف قمنا بإنشاء متغير داخل أقواس ملحقات الدالة عن طريق كتابة اسمه وتحديد الفئة التي ينتمي إليها الكائن صاحب هذا الاسم أما للإنشاء
متغير خارج نطاق الدالة نقوم بكتابة كلمة 1/33 ثم كتابة الاسم الذي نريده ثم نحدده الفئة التي ينتمي إليها الكائن صاحب هذا الاسم ثم نعطيه لما نشاء ليصبع
هذه الفئة يمثل الوئقنت والتاريغ الحالي
المصفوفة هي نوع خاص من المتغيرات مع إختلاف أن المصفوفات عملية تسمية لمجموعة قيم وليس قيمة واحدة ولتوضيح الأمر تخيل المثال التالي:
لو تتذكر أيام الدراسة في المدرسة كانت هناك عدة فصول ولكل فصل قائمة تضم إتصف, ترتب] اسماء عدد من الطلاب المتواجدين في هذا الفصل بالترتيب ولكل
اسم طالب في القائمة يمثل عنصر من عناصر المصفوفة
ولنطبق هذا المثال من منظور الأكشن إسكربت !
المصفوفات 1355© لإ2 ع2
لكي يتضح لك الأمر تابع معي المثال التالي الذي ننشىء فيه مصفوفة تضم اسماء أيام الأسبوع:
ز"الثلاثاء " < [3:1//681]2
("الأربعاء " ح [311/0/868614]3
هذا الاسم وهي /(1:73/ واعطيئا هذا الاسم لكائن جديد من فئة المصفوفات
- باقي الكود قمنا فيه بعلىء المصفوفة بالعناصر, وهي عبارة عن قيم نصية, عن طريق تحديد رقم مكان لكل قيمة وذلك بإستعمال الأقواس المستقيمة []
هذه الأقواس المستقيمة تسمى عامةً في لغات البرمجة أثواس التفصيل فكما لت أن المصفوفة هي اسم لمجموعة قيم ولكل قيم رقم معين داخل هنه
المصفوفة إذاً بإستعمال أقواس التفصيل نقوم بتحديد رقم المكان مثل [0] 2110/66 ثم نسنده لقيمة معيئة
- عندما نحتاج إلى الإشارة مثلاً ليوم الجمعة في الكود فإننا نكتب [5])! 210/88 ويقوم الأكشن إسكربت بإستبدال هذا التعبير بالقيمة الحقيقة وهي الجمعة
ربعا تحتاج إلى إضافة تعليقات إلى الكود الذي تكتبه لمزيد من التفصيل لك أو أثناء شرحك الكود للأحد ويمكنك كتابته باللغة العربية إن أردت وهناك طريقتين لكتابة
الأولى: في حالة إذا كان التعليق عبارة عن سطر واحد بإضافة شرتطين مائلتين ١١ مثال:
هنا مثال على تعلبق عبارة عن سطر وا حد ||
الثاتية: في حالة إذا كان التعليق عبارة عن عدة اسطر بإضافة */ في بداية التعليق و *١ في نهاية التعليق مثال:
هذا مثال على تغليق كبير */
]*عغبارة عن عدة اسطر
والجدير بالذكر أن التعليق يأخذ اللون الرمادي داخل الكود
بسم الله الرحمن الرحيم
لايوجد أدنى شك في أن الفلاش عالم كبير وأفكار كل يوم بتتولد وبتتجدد ولذلك كل شخص قرر يدخل هذا المجال فهو يعرف تماماً أنه لايوجد
نهاية في طريق تعلم هذا البرنامج, وأكبر دليل على هذا أن هذا الكتاب لم يكن سوى مجرد أوراق مبعثرة كنت أدون فيها خلاصة ما أتعلمه ولكني أحببت أن
الأكشن إسكربت 30 جعل الشق البرمجي سهل جداً وأكثر تفاعلية وقوة وهذا كلام شركة أدوبي وصراحة بدايتي مع الفلاش بداءت مع الأكشن
إسكربت 30 ولا أدري طبيعة الأكشن إسكربت 20 ولذلك لن أتكلم عنه في هذا الكتاب هذه اللغة تحتاج فقط إلى التركيز والتأمل والتدريب ربما تكون
كلمة برمجة تحمل الكثير من الرهبة ولكن الأمر أسهل وأبسط بكثير مما تتخيل فالبرمجة ما هي إلا عملية تنظيم أو بالأحرى وضع نظام لشىء وهذا المخطط
يبدأ بناءه خطوة خطوة وبالتدريع فهى مجرد قواعد ,أساسيات وأدوات تُوظفها كما تشاء, ولعلها من ألذ وأمتع لغات البرمجة بالإضافة إلى أن هناك أفكار
أحب أن أنوه فقط على أن كل ما هو مكتوب هو مجرد خلاصة ما فهمته وطبقته وليس بالضرورة الأسلوب الأمثل أو الأصع في توصيل الفكرة فأنا
مازلت مبتدىء في تعلم هذه اللغة ولكني أسأل اللّه أن يستفيد منه كل من يطلع عليه وأحب ايضاً أن أؤكد على أن كل الأمثلة المطروحة مراجعة بشكل دقيق
إسلام عبد الرحيم
نشاة لغة الأكشن إسكربت
ديسمبر عام 1996 وقد مثل هذا البرنامج بداية التطور المذهل في مجال تصميم مواقع الويب حيث أتاح لمصممي المواقع إضافة الحيوية والحركة والتفاعلية إليها
ولذلك قامت شركة ماكروميديا عام 2000 بإدماج لغة ال 1100523101/ المشتقة من لغة الإيكيما إسكربت مع الإصدار ال 5 من برنامج الفلاش ليصبح برنامج
متكامل ويبداً رحلة التميّز لذلك فلغة الأكشن إسكربت قريبة جداً ومشابهة للغة الجافا إسكريت
الشق التصميمي لبرنامج الفلاش يتيبح فقط عمل حركات بسيطة ومحدودة, بيئما إضافة لغة ال 1م2110052:1م أطلقت العنان لتنفيذ أي فكرة أو حركة قد تخطر
بذهنك من أول إنشاء مواقع كاملة ببرنامج الفلاش إلى تصميم ألعاب وما بينهما من أفكار من تصميم اللافتات الإعلانية في مواقع الويب والبطاقات الإليكترونية وحتى
والجدير بالذكر أن شركة 0016م قامت بشراء برنامج الفلاش من شركة ماكروميديا في شهر ديسعبر 2005 وطرحت الإصدار الأخبر وهو 53 0056م الذي
يدعم إستخدام لغة ال 30 66100527101
يبدو أن شهر د يسمبر الشهر الدائم لإتتقال ملكية برنامج الفلاش !
معلومة إضافية !
- اسم لغة الإيكيما إسكربت مشتق من 25021341010 15© 1120114361107 +60100101016 51011006230 وهى رابطة مصنعي الكمبيوتر الأوروبية, وهى رابطة
- المقطع 653 في اسم آَخْر إصدار 653 دواع ©2005 هو اختصار ل 3 50116 ©/6381© © أي حزمة الإبداع 3 وهى عبارة عن عدة برامج تصميم تشمل برنامع
الفلاش وبرنامج الفوتوشوب والدريم ويفر وغيرها الكثير
بعد هذه الجولة التاريخية, وكأي وافد جديد لابد وأن تتعرف عن المكان الني سوف تعمل فيه سوياً مع هذه اللغة!
لوحة محرر الأكشن إسكربت:
المُدمج داخل برنامج الفلاش
هناك طريقتين للوصول إلى لوحة محرر الأكشن إسكربت 031061 82010105 داخل برنامج الفلاش:
الأولى :عن طريق الذهاب إلى قائمة /1//10001 ثم إختيار 6211015
الثاتية : عن طريق الضغط على مفتاح 9] من لوحة المفاتيع
ويمكن تقسيمها إلى 3 أجزاء رئيسية:
1 صندوق الاكود «100100 11005دم/:
مصنفة ومقسمه تقسيم دقيق على حسب الفئة التي ينتمي إليها الكود ويمكنك البحث فيها عن كود محدد فكما تلاحظ وجود أيقونة على هيئة كتاب عليه سهم
طريق اختياره والضغط عليه ضغطتين أن تضيفه إلى الكود الذي تكتبه أوعن طريق السحب والإفلات في منطقة الأكواد
مستعرض الاكواد 31/153107 521101؛
أثناء كتابتك للبرمجة الخاصة بفيلم من الوارد أن تضيف أكواد إلى إطارات ألقطات] مختلفة هذه المنطقة التي تسمى مستعرض الأكواد تقوم بعرض فقط
الإطارات التي تحتوي على أكود, فتمكنك من التنقل بسهولة بين هذه الإطارت
قلنا فيما سبق أن الأحداث هي كل ما يستطيع الكائن الإستجابة له يستجيب الكائن إما للأحداث من قبل المستخدم مثل الضغط على مفتاح من لوحة المفاتيح أو النقر
على زر الفأرة, أو أحداث داخل الفيلم, والتي تعتمد على الخط الزمني أو عامل وقتي مثل المؤقتات 1101815
لكي يتضح لك كيفية تعامل الأكشن إسكربت مع الأحداث تابع المثال التالي:
مثلاً في مركز الإطفاء , عندما يتم قرع الجرس يهب رجال الإطفاء ويسرعوا إلى سيارة الإطفاء ويتوجهوا إلى مكان حدوث الحريق فلماذا فعلوا ذلك ؟1
لآنهم ببساطة قد تُربوا على إنتظار قرع الجرس الذي يكون بمثابة الإبلاغ عن وقوع حادثاً في مكاناً ما وهذه هي الفكرة ببساطة!
ولنطبق هذه الفكرة من خلال الأكشن إسكربت:
هناك ما يسمي بدالة إنتظار حدث +08 115216 5/671 وهي ببساطة دالة يتم إدراجها في قائمة إنتظار لتُنفْذ عند وقوع حدث ما في المثال السابق الدالة هي الإسراع
إلى سيارة الإطفاء والتوجه إلى مكان حدوث الحريق أما الحدث فهو عند قرع الجرس فعئد وقوع هذا الحدث فإنه يتم إبلاغ الأكشن إسكربت بوقوعه ليقوم بتفيذ كل
دوال الإنتظار المدرجة في قائمة إنتظار وقوع هذا الحدث لينفذها ولذلك تُسمى ايضاً بدالة التوجيه :1150012 لأنها ستوجه البرنامج لخطوات عمل شىء معين عند
وقوع هذا الحدث (مثلاً عند النقر على زر الفآرة)
1 إدراج دالة إنتظار حدث +156608 ا 2/61 في قائعة إنتظار وقوع حدث مار لتُنفْذ عند وقوع هنا الحدث
2 عند وقوع الحدث المنتظر, فإنه يتم إنشاء كائن حدث 0(8626 8/801 جديد من فئة هذا الحدث 61355 5/601 هذا الكائن بمثابة الشاهد الذي يعرف كل
ملابسات هذا الحدث وكيف تم فمثلاً بالنسبة الحدث متعلق بالفأرة) فإن كائن الحدث, الذي ينتمي إلى فئة أحداث الفأرة 61355 5/804 11/101158, سوف يحوي عدة
3 بعد ذلك تتم عملية الإبلاغ التى تُسمى عملية بث أخبر وقوع) الحدث 015031217 211601 إلى كل دوال الإنتظار وهي بمثابة الضوء الأخضر للاكشن إسكربت ليبدأ
4 أثناء عملية بث الحدث فإن كل دوال الإنتظار المدرجة على قائمة الإنتظار يمرر إليها كائن الحدث على هيئة معامل (متغير) ويتم بعد ذلك تنفيذها وعملية تمرير هذا
ملحوظة مهمة !
- هناك ما يُسمى بمستقبل الحدث 733564 17601 وهو ببساطة عبارة عن اي كائن سوف يستقبل الحدث فمثلاً عند النقر على رمز من الرموز مثل الموفي
كليب, في هذه الحالة عملية النقر تمثل الحدث والموفي كليب يمثل مستقبل الحدث لكل مستقبل حدث قائمة إنتظار خاصة به تستطيع ببساطة أن تدرج ما
ِِ كما تري في الخطوات الفعلية التي يتبعها الأكشن إسكربت في التعامل مع الأحداث فإني استخدمت أفعال كلها مبنيه للمجهول وكأنه هناك يد خفية هى التي
تقوم بهذه العملية في الواقع الإجابة نعم فكما تري أننا قد ربطنا مُستقبل الحدث وهو عبارة عن كائن بدالة إنتظار حدث وهي عبارة عن مجرد دالة وهنه
العملية لابد وأنها تمت من خلال وسيط ألا وهو فئة موجودة داخل الأكشن إسكربت تسمى فئة البث 61355 3 801015021616/] وهي التي تقوم بكل
خطوات ربط وإنشاء علاقة تربط كائنين ببعضهما حيث أنها توفر الآليات المناسبة لعمل تلك الخطوات من الإدراج وإلغاء الإدراج ولذلك فإن الأكشن إسكربت
يقوم بتوريث الكائن المُستقبل للحدث كل أليات فئة 61255 3 5/81140150342116 لكي يتمكن من التفاعل مع دالة الإنتظار
ويمكنك تخليص الفكرة السابقة كالآتي:
اولاً نقوم بإدارج الدالة التي نريد
ولكني قد ذكرت ايضاً أنه يمكنك إضافة أكواد أكشن إسكربت إلى أى إطار, ولأنه من الممكن أن تقوم هذه الأكواد بعمل تغير في أحد العناصر المكوّنة للإطار فإن
أكواد الإكشن إسكربت لكل إطار تُنفْذ أولاً من أول سطر إلى أخرسطر قبل عمل فحص وتحديث الشاشة (عرض النتيجة النهائية) والجدير بالذكر أن عملية تنفيذ أكواد
بعمل تغير في أحد عناصر هذا الإطار وكما قلت أننا في المثال السابق قمنا بعمل سرعة عرض الإطارت إطار واحد كل ثانية) لذلك فإن برنامج الفلاش سوف ينتظر
لكي يكمل عرض الإطار الأول إذاً استغرقت عملية إعداد وعرض الإطار الأول 1050 ميللى ثانية منذ بدأ تشغيل الفيلم وهكذا مع بلقي الإطارات 1
أي ان المقصود من الكلام السابق هو أن برنامج الفلاش لا يقوم بتنفيذ كل سطر برمجي على حدى ويعرض مباشرة التغيير الذي أحدثه هذا الأمر على الشاشة ثم
يتنقل إلى السطر التالي, بل أن برنامج الفلاش ينفذ أوامر الأكشن إسكربت كلها دفعة واحدة ثم ينتظر حتى يحين الموعد المجدول لعرض الإطار ليقوم بعرض النتيجة
النهاية للمحتويات الإطار والتغيير الذي أحدثته أكواد الأكشن إسكربت ففي المثال السابق رغم أن برنامج الفلاش أتم تنفيذ كل أكواد الأكشن إسكربت الخاصة بالإطار
في 100 ميللي ثانية إلا أنه انتظر 900 ميللي ثائية ليعرض النتيجة في الموعد المحدد للإنتقال إلى الإطار التالي (بعد مرور ثانية]
ومثال أخر لكي تتضع الصورة لنتفرض أن هناك دالة إنتظار حدث تُحرك موفي كليب عند النقر عليه إلى أقصى اليمين وعند التشغيل مباشرة أتم الأكشن اسكريت
تنفيذ كل أكواد الإطار الأول في 100 ميللي ثانية وأصبح مهيىء للإستقبال هذا الحدث ولنتفرض أن المستخدم قام بالنقر على الموفي كليب عند 500 ميللي ثانية,
فيقوم البرنامج بتنفيذ أوامر دالة الإنتظار ورغم ذلك فإن برنامج الفلاش لن يبدأ بتحريك الموفي كليب إلا عند 1000 ميللي ثانية
أعتقد أصبح الأمر واضح الأن!
ومن ثم فإن الوصف الدقيق لكيفية العرض والتنقل من إطار إلى أخر منذ بداية تشغيل الفيلم ستكون كالآتي :
يقوم برنامج الفلاش بتنفيذ كل أوامر الأكشن إسكربت في الإطار الأول
ينتظر حتى يحين الموعد المجدول لعرض الإطار, وأثناء الإنتظار إذا وقع حدث مبرمج مسبقاً يقوم بنتفيذ كل دوال الإنتظار الخاصة بهذا الحدث
3 حيئما يحين موعد عرض الإطار يقوم بفحص إذا كانت الشاشة تحتاج إلى تحديث وتحتاج الشاشة إلى تحديث في الظروف التالية:
1 إذا كان هنك تغيبر في عناصر الإطار قد تم من خلال الشق التصميمي
2 إذا قامت أكواد الأكشن إسكربت الخاصة بالإطار بإحداث تغيير ما أو تعديل في الوضع الحالي لعناصر الإطار
3 إذا قامت دوال إنتظار حدث بإحداث تغييرما أو تعديل في الوضع الحالي لعناصر الإطار
4 بعد عملية الفحص السابقة إذا كانت هناك ضرورة لتحديث الشاشة بعناصر جديدة أو معدلة يقوم بتحديثها
5 تكرار الخطوات من 4-1 مع الإطار الثاني وباقي الإطارات
والجدير بالذكر أنه قبل كل عملية الفحص عن اشياء تستدعي تحديثاً للشاشة يقوم برنامج الفلاش ببث أخبر ونوع) حدث اسعه حدث الإنتقال إلى إطار جديد
ع اباقع ”جع 7لاع ويعمل هذا الحدث كمنبه لكل العناصر التي تحتاج إلى تحديث وتنتظر لكي يتم عرضها أى انه يقول قد حان الآن وت العرض!
استعرضت إلى الآن طريقة الفلاش في التعامل مع أكثر من إطار اثناء العرض, ولكنك في الأكشن إسكربت سيكون أغلب تعاملك مع إطار واحد فقط سواء أكان كل
الفيلم
في قائمة إنتظار خاصة بكائن معين ومن ثم عند حدوث الحدث يتم إبلاغ الأكشن إسكربت ليبداً تنفيذ الدالة
1 لأحداث الخاصة بالفأرة:
قم برسم مربع وضعه في منتصف المسرح ثم حوله إلى موفي كليب وأعطي النسخة اسم 501036006
حدد الإطار رقم 1 في الخط الزمني, ال 711181108, وأفتح لوحة محرر الأكشن إسكربت وأكتب الكود التالي:
زعم بتاءل) 0368
عبارة عن إطار واحد أو أنك أوقفت الفيلم عند إطار معين ولذلك لابد أن تتعرف على طريقة الفلاش في عرض فيلم عبارة عن إطار واحد فقط
الخطوات التي يتبعها الفلاش في عرض إطار واحد مشابهة لحد كبير الخطوات السابقة ولكن مع بعض الإختلافات كما يلي:
1 يقوم برنامج الفلاش بتنفيذ كل أوامر الأكشن إسكربت في الإطار الأول
ينتظر حتى يحين الموعد المجدول لعرض الإطار, وأثناء الإنتظار إذا وقع حدث مبرمج مسبقاً يقوم بنتفيذ كل دوال الإنتظار الخاصة بهذا الحدث
حينما يحين موعد عرض الإطار يقوم بفحص إذا كانت الشاشة تحتاج إلى تحديث وتحتاج الشاشة إلى تحديث في الظروف التالية:
1 إذا كان هناك تغيبر في عناصر الإطار تم من خلال الشق التصميمي
2 إذا قامت أكواد الأكشن إسكربت الخاصة بالإطار بإحداث تغيير ما أو تعديل في الوضع الحالي لعناصر الإطار
3 إذا قامت دوال إنتظار حدث بإحداث تغييرما أو تعديل في الوضع الحالي لعناصر الإطار
بعد عملية الفحص السابقة إذا كانت هناك ضرورة لتحديث الشاشة بعناصر جديدة أو معدلة يقوم بتحديثها
ينتظر حتى يحين الموعد المجدول لعرض الإطار, وأثناء الإنتظار إذا وقع حدث مبرمج مسبقاً يقوم بنتفيذ كل دوال الإنتظار الخاصة بهذا الحدث
حينما يحين مومد عرض الإطار يقوم بفحص إذا كانت الشاشة تحتاج إلى تحديث وتحتاج الشاشة إلى تحديث كما ذكرنا فيما سبق
بعد عملية الفحص السابقة إذا كانت هناك ضرورة لتحديث الشاشة بعناصر جديدة أو معدلة يقوم بتحديثها
ينتظرحتى يحين الموعد المجدول