برمجة فلاش من الصفر. للمبتدئين: من أين تبدأ تعلم الفلاش؟ الواجب المنزلي: أساسيات البرمجة في Macromedia Flash MX

27.03.2019

برنامج لإنشاء ألعاب فلاش دون معرفة لغات البرمجة. يتيح لك إنشاء ألعاب من الكتل المنطقية والصور المعدة مسبقًا.

ذات مرة، ربما منذ بضع سنوات مضت، ظهر برنامج Game Maker على موقعنا على الويب، والذي سمح لك بإنشاء ألعاب دون معرفة أي لغة برمجة تقريبًا!

حتى الآن، تعد هذه الصفحة من أكثر الصفحات التي تمت مناقشتها بيننا، وغالبًا ما تكون هناك شكاوى في التعليقات من عدم إمكانية استخدامها لإنشاء ألعاب يمكن لعبها عبر الإنترنت. سنعود اليوم إلى موضوع تطوير الألعاب ونلقي نظرة على برنامج مشابه يمكنه صنع ألعاب الفلاش - ستينسل!

مميزات البرنامج

باستخدام Stencyl، يمكنك إنشاء ألعاب ثنائية الأبعاد من أي نوع، ولكن الأهم من ذلك كله هو أن محرك البرنامج "مصمم" لمختلف ألعاب إطلاق النار والحركة. من الناحية الهيكلية، البرنامج عبارة عن مجموعة كاملة من الأدوات التي يمكنك من خلالها، إذا رغبت في ذلك، إنشاء لعبة من الصفر دون استخدام تطبيقات الطرف الثالث.

نقوم بإغلاق النافذة المنبثقة التي تحتوي على معلومات حول الإصدار الجديد من البرنامج باستخدام الزر "إغلاق" أو "عدم إظهار هذا مرة أخرى" (إذا كنا لا نريد رؤية هذه النافذة في كل مرة نبدأ فيها البرنامج) و بدلا من ذلك نحصل على النافذة التالية:

يُطلب منا هنا إنشاء حسابنا الخاص في مجتمع مطوري Stencyl. من حيث المبدأ، ليس من الضروري إنشاء حساب (للقيام بذلك، انقر فوق الزر "ذكرني لاحقًا" في الأسفل)، ولكن التسجيل يمنحك الفرصة لتنزيل قوالب وإجراءات إضافية من وحدة تخزين عبر الإنترنت تسمى StencylForge، لذلك لن يضر :). لإنشاء حساب، انقر فوق الزر "إنشاء حساب" وانتقل إلى نموذج التسجيل:

نقوم هنا بملء الحقول القياسية بتسجيل الدخول وكلمة المرور (مرتين) وعنوان البريد الإلكتروني، ثم انقر فوق الزر "تسجيل". إذا سارت الأمور على ما يرام، فسيتم فتح واجهة نافذة بدء البرنامج أمامك أخيرًا.

واجهة نافذة البداية

خارجيًا، تنقسم مساحة عمل نافذة Stencyl Start إلى عدة مناطق:

يوجد في الجزء العلوي تقليديًا شريط قوائم وشريط أدوات. يتم جمع كافة الإعدادات الرئيسية وأزرار التحكم هنا. يوجد أسفل شريط الأدوات شريط رمادي ضيق صغير. يحتوي على علامات تبويب (نعم، واجهة Stencyl متعددة علامات التبويب، وهي مريحة للغاية) وأزرار للتبديل بينها بسرعة (على اليمين).

تنقسم منطقة العمل الرئيسية إلى قسمين: على اليسار توجد لوحة تنقل لأقسام البرنامج، وعلى اليمين يوجد المحتوى الرئيسي (على الشاشة الرئيسية توجد قائمة بالألعاب)، والتي تتغير اعتمادًا على وضع التشغيل النشط حاليًا. هناك بضعة أزرار إضافية في الأسفل تتيح لك:

  1. افتح المجلد الذي يخزن فيه Stencyl جميع موارد الألعاب التي تم إنشاؤها والألعاب نفسها (زر "عرض مجلد الألعاب" في الزاوية اليسرى السفلية).
  2. إطلاق دورة تدريبية حول العمل مع البرنامج ("بدء الدورة التدريبية" على اللوحة الخضراء في الزاوية اليمنى السفلية). بالمناسبة، يوجد بجانبه زر لإخفاء عرض التدريب ("لا تظهر هذا مرة أخرى").
  3. افتح اللعبة المحددة حاليًا من القائمة، وهو ما يشبه النقر المزدوج على صورة اللعبة ("فتح اللعبة" في الزاوية اليمنى السفلية).

لدراسة إمكانيات Stencyl بشكل مستقل، يمكنك حضور دورة تدريبية (ويُنصح بإكمالها)، بالإضافة إلى فتح إحدى الألعاب الجاهزة التي تناسب فكرتك بشكل أفضل ومعرفة كيف يعمل كل شيء هناك. وأقترح دراسة عمل البرنامج باستخدام مثال إنشاء لعبة حول مغامرات رمز موقعنا ومقيمه الافتراضي - فريدا بيست!

من أين تبدأ في إنشاء لعبة في Stencyl

إذا نظرت، قبل أن تقرر إنشاء لعبتك، إلى الأمثلة القياسية للألعاب على Stencyl، فربما لاحظت أنها جميعها بسيطة جدًا، وذات شاشة واحدة ولها منظر جانبي. سنصنع لعبة إطلاق نار ديناميكية ذات رؤية علوية ونطلق النار بالماوس! كل شيء يشبه الألعاب "الكبيرة" :).

بالنسبة لمشروعك، يمكنك تغيير منطق أحد القوالب الجاهزة، لكننا لا نبحث عن طرق بسيطة وبالتالي - فقط "من الصفر"، فقط "المتشددين" :). للقيام بذلك، انقر فوق الزر "إنشاء لعبة جديدة" الموجود على شريط أدوات مساحة العمل (أو في القائمة "ملف" - "إنشاء لعبة جديدة") وادخل إلى النافذة التالية:

يمكننا هنا اختيار قالب لعبة حسب النوع مع مجموعة محددة مسبقًا من الوظائف والإجراءات لمشروعك. ومع ذلك، سنقوم بإنشاء لعبة من الصفر، لذا حدد "لعبة فارغة" وانقر فوق الزر "التالي".

في الخطوة التالية سنحتاج إلى إجراء بعض الإعدادات الأساسية:

في حقل "الاسم" نحتاج إلى الإشارة إلى اسم لعبتنا، وفي قسم "حجم الشاشة" نحتاج إلى ضبط أبعاد الملعب، مع الإشارة إلى عرضه (العرض) وارتفاعه (الارتفاع) بالبكسل. بعد ذلك، انقر فوق الزر "إنشاء" وانتقل مباشرة إلى واجهة محرر اللعبة:

بشكل افتراضي، يتم فتح علامة التبويب "لوحة المعلومات" أمامنا، حيث يتم جمع شجرة موارد اللعبة بأكملها على اليسار، وتقع منطقة العمل على اليمين. وهنا أعتقد أنه سيكون من المناسب تقديم بعض التوضيحات حول بنية "الشجرة".

يتكون من أربعة فروع، يحتوي أول فرعين منها على مجموعات قياسية من الموارد (الموارد) والمنطق (المنطق)، ويمكن للأخيرين تخزين حزم الموارد التي تم تنزيلها يدويًا (حزم الموارد) والامتدادات (الامتدادات) بشكل اختياري.

الفرع الرئيسي هنا هو فرع الموارد. ويحتوي على الأقسام التالية:

  1. أنواع الممثلين - يتم تخزين النقوش المتحركة لجميع شخصيات اللعبة هنا ويتم تكوين إجراءات الرسوم المتحركة والتفاعل مع بعضهم البعض.
  2. الخلفيات - في هذا القسم يمكننا تخزين كافة الخلفيات الضرورية للعبة. علاوة على ذلك، يمكن أن تكون الخلفية للخلفية (الخلفية) وللمقدمة (المقدمة)، مما يسمح لك بتراكب الخلفيات فوق بعضها البعض، وبالتالي تحقيق تأثير المنظر، على سبيل المثال.
  3. الخطوط عبارة عن قسم يمكننا من خلاله تحميل العديد من الخطوط الجميلة لإنشاء نقوش أصلية. ومع ذلك، تجدر الإشارة إلى أن Stencyl يمكنه العمل فقط مع مجموعة الأحرف الإنجليزية، لذا لإضافة أحرف روسية إلى ملف الخط، نحتاج إلى استبدال بعض الأحرف اللاتينية بها.
  4. المشاهد هي مكان لإنشاء مستويات اللعبة وتعديلها. هنا يمكننا ضبط مظهر أي مرحلة ووضع جميع الشخصيات والمكافآت وعناصر اللعبة الأخرى.
  5. الأصوات - على التوالي مستودع لجميع الأصوات المستخدمة في اللعبة.
  6. Tilesets هو فرع خاص يتم فيه تخزين المربعات - نقوش متحركة خاصة يمكننا استخدامها لبناء مستويات اللعبة.

إنشاء وتخصيص البلاط

لا يوجد رأي واضح بشأن الترتيب الذي سيتم به تنفيذ هذه اللعبة أو تلك. يعتمد ذلك على ما يناسبك، لكني أوصي بالخوارزمية التالية:

نصنع المشهد الأول - نصنع الشخصية - نصنع الأعداء - نصنع المكافآت - نصنع المراحل المتبقية

لإنشاء مشهد في Stencyl، عليك رسم مظهره في فرع Scenes. ومع ذلك، من أجل الرسم، نحتاج أولاً إلى الحصول على مكعبات "للرسم" بها. تسمى هذه الكتل الموجودة في البرنامج بالبلاطات ويتم تخزينها في قسم Tileset:

مجموعة البلاط عبارة عن مصفوفة بسيطة تتكون من الصور التي تقوم بتحميلها فيها. يمكنك تحميل إما مصفوفة جاهزة (صورة تتكون من عدة صور متساوية الحجم في صف واحد أو عدة صفوف) أو استكمال المجموعات الموجودة بصور منفصلة.

أولاً، نحتاج إلى إنشاء مجموعة جديدة من البلاط (الزر "إنشاء جديد" في قسم مجموعات البلاط)، وبعد ذلك سنرى نافذة كما في لقطة الشاشة أعلاه. لتحميل صورة، نحتاج إلى النقر فوق الزر "اختيار صورة" وتحديد ملف مُعد مسبقًا بالصورة (الصور) المطلوبة في نافذة Explorer التي تفتح.

عندما يتم تحميل الصورة، سنقوم بتعيين معلمات تخطيطها وأبعادها في العرض والارتفاع، وبعد ذلك (إذا تم عرض كل شيء بشكل صحيح) يمكنك إضافة الصورة إلى المجموعة بالنقر فوق الزر "إضافة".

لكل صورة (بلاطة) في المصفوفة، يمكنك تكوين معلمات التفاعل مع شخصيات اللعبة وكائناتها. للقيام بذلك، تحتاج إلى تحديد البلاط المطلوب والوصول إلى النافذة التالية:

سيتم فتح قسم حدود التصادم في الجزء العلوي من الجزء الأيمن. يمكننا هنا اختيار شكل عشوائي للإشارة إلى حدود التفاعل بين كائننا وشخصيات اللعبة. بشكل افتراضي، تحتوي جميع البلاطات على المعلمة "مربع"، مما يجعل البلاط غير قابل للعبور وصلبًا تمامًا. إذا كنت بحاجة إلى جعل البلاط "شفافًا" للأحرف (على سبيل المثال، الجنس)، فما عليك سوى تعيين المعلمة "بدون تصادمات".

بالإضافة إلى الحدود، يمكنك ضبط الرسوم المتحركة لكل مربع عن طريق إضافة إطارات باستخدام زر "إدراج إطارات" في اللوحة السفلية. بشكل افتراضي، تبلغ سرعة الرسوم المتحركة 100 مللي ثانية، ولكن يمكن تغيير هذا الرقم بشكل عشوائي لكل إطار.

للقيام بذلك، ما عليك سوى النقر نقرًا مزدوجًا فوق الإطار المطلوب باستخدام زر الماوس الأيسر وفي النافذة التي تفتح، قم بتغيير مؤشرات التأخير كما نطلب. من الممكن أيضًا تصحيح الإطار المحدد باستخدام محرر الرسوم المدمج، والذي يفتح باستخدام زر "تحرير الإطار".

تقديم مشهد في Stencyl

بعد تشكيل مجموعة البلاط، من المنطقي الانتقال إلى الخطوة التالية - تشكيل مساحة تشغيل نهائية من الصور المضافة. يمكن القيام بذلك عن طريق النقر فوق الزر "إنشاء جديد" في قسم المشاهد. بعد الضغط على الزر سيتم نقلنا إلى نافذة إعدادات المشهد:

نحتاج هنا بالتأكيد إلى تعيين اسم فريد لمشهدنا في حقل "الاسم"، وتحديد الأبعاد (العرض والارتفاع بالبلاط (افتراضيًا) أو البكسل)، وكذلك تعيين اختياريًا (أي وفقًا لرغبتنا الخاصة) لون الخلفية للمشهد الجديد. انقر فوق "موافق" وادخل إلى محرر المستوى:

في المظهر يشبه محرر الرسومات. يوجد في المركز منطقة عمل نرسم فيها مستوانا. على اليسار والأعلى توجد أشرطة أدوات صغيرة. على اليمين توجد لوحات الألوان، حيث يتم تحديد مجموعات التجانب وإدارة الطبقات. والآن كيف يعمل كل ذلك...

بادئ ذي بدء، نرسم خلفية منطقة عملنا. للقيام بذلك، في اللوحة اليمنى، قم بتنشيط علامة التبويب "لوحة" وعليها علامة التبويب "البلاط" وحدد البلاط المطلوب من القائمة المعروضة. ثم، في اللوحة اليسرى، حدد أداة القلم الرصاص وارسم المناطق المطلوبة باستخدام المربع المحدد.

نظرًا لدعم الطبقات، يمكن أن تتداخل البلاطات مع بعضها البعض، لذا فمن المنطقي تنظيم المستوى مع الأخذ في الاعتبار حقيقة أنه، على سبيل المثال، في الطبقة "الطبقة 0" سيكون لدينا طبقة خلفية، وفوق ذلك سيكون هناك كن طبقة بها عوائق وشخصيات، وحتى طبقة أعلى تحتوي على عدادات ومؤشرات لعب مختلفة.

يمكنك إدارة الطبقات باستخدام الأزرار الموجودة أسفل لوحة "الطبقات". توجد أزرار لإنشاء الطبقات وحذفها ونقلها وإعادة تسميتها. بالإضافة إلى ذلك، يمكن إخفاء أو إظهار أي طبقة من خلال النقر على زر العين الموجود على يمين اسم الطبقة.

اختراع الشخصية

بعد أن قمنا بإنشاء المشهد الأول، فقد حان الوقت "لتعبئته" بشخصيات اللعبة المختلفة. في Stencyl يطلق عليهم "الممثلون" ويتم تخزينهم وفقًا لذلك في قسم "أنواع الممثلين". يتم إنشاء الممثلين وفقًا لنفس المبدأ، لذلك سننظر إلى هذه العملية باستخدام مثال إنشاء الشخصية الرئيسية في لعبتنا، فريدا.

لإضافة ممثل جديد، ما عليك سوى الانتقال إلى قسم "أنواع الممثلين" المذكور أعلاه والنقر فوق الزر "إنشاء جديد" هناك. كالعادة، سيتم سؤالنا مرة أخرى عما نريد أن نسميه كائن اللعبة الجديد، وبعد ذلك ستظهر أمامنا نافذة تحرير الرسوم المتحركة للشخصية:

هنا، على الجانب الأيسر، يتم عرض قائمة الرسوم المتحركة للممثل المضافة (افتراضيًا، إطار فارغ "الرسوم المتحركة 0")، وعلى الجانب الأيمن توجد أدوات لإضافة وتخصيص هذه الرسوم المتحركة نفسها.

حدد رسمًا متحركًا فارغًا (أو أضف رسمًا جديدًا بالنقر فوق زر علامة الجمع أدناه) وانقر فوق حقل "انقر هنا لإضافة إطار" على الجانب الأيمن. بعد ذلك، سيتم فتح نافذة لإضافة الصور، وهي مشابهة لنافذة مشابهة لإضافة مربعات جديدة إلى المجموعة. انقر فوق الزر "اختيار صورة"، وحدد الصورة المطلوبة واضبط تصميمها وأبعادها (إذا لزم الأمر).

عندما يتم تكوين كل شيء، انقر فوق الزر "إضافة" في الجزء الأيمن السفلي من نافذة الإضافة - يجب أن تظهر الرسوم المتحركة كمعاينة في القسم الأيسر:

الآن كل ما يتعين علينا القيام به هو إعداد معدل الإطارات (النقر المزدوج على أي إطار) وبعض المعلمات الإضافية، والنوع، واسم الرسوم المتحركة (مفيد جدًا للمشاريع المعقدة)، وتكرار التشغيل (نشط افتراضيًا)، والمزامنة ونقطة الأصل الأساسية لـ أصل الكائن (المركز افتراضيًا).

في شريط الأدوات السفلي في القسم الأيمن سنجد صفًا من الأزرار. أنها تسمح:

  • إضافة إطارات جديدة إلى الرسوم المتحركة (استيراد الإطارات)؛
  • تحرير الإطار المحدد في محرر خارجي (تحرير الإطار (خارجي))؛
  • إنشاء إطار في محرر خارجي (إنشاء إطار (خارجي))؛
  • تحرير إطار في المحرر المدمج (تحرير الإطار)؛
  • إزالة الإطار (إزالة الإطار)؛
  • إطار النسخ (إطار النسخ)؛
  • لصق الإطار (لصق الإطار)؛
  • حرك إطارًا واحدًا للخلف (تحرك للخلف) أو للأمام (تحرك للأمام).

تخصيص خيارات الشخصية والسلوك

أعلاه، قمنا بعمل رسم متحرك لفريدا وهي تجري، باستخدام إطارين فقط، وهما في الواقع نفس الرسم المنعكس أفقيًا. الآن نحن بحاجة للتأكد من أننا نستطيع التحكم في حركة بطلتنا باستخدام الماوس ولوحة المفاتيح، وأيضًا حتى تتفاعل بشكل مناسب مع الاصطدامات بالعقبات التي رسمناها على المسرح.

أولا وقبل كل شيء، دعونا إعداد الاصطدامات. للقيام بذلك، انظر إلى السطر الموجود أسفل قائمة علامات التبويب المفتوحة وابحث عن الزر "تصادم" هناك.

افتراضيًا، تكون منطقة التصادم عبارة عن مربع محدد حول الكائن المتحرك بأكمله. أي أن حدث الاصطدام سيحدث على كامل مساحة الجسم. ومع ذلك، في الممارسة العملية، غالبا ما تحتوي صورتنا على عناصر إضافية (فريدا، على سبيل المثال، مكبر)، والتي، من الناحية النظرية، لا ينبغي أن تتفاعل مع أي شيء. وبمساعدة هذا القسم يمكننا تكوين جميع مناطق الاصطدام.

أولاً، دعونا نقوم بتقليل المساحة المحيطة بفريدا إلى حجم جسدها فقط. هنا علينا أن نأخذ في الاعتبار أننا لا نستطيع تحريك المنطقة بالماوس، وبالنسبة للإعدادات نستخدم أربعة معلمات رقمية في قسم "الشكل الحالي". أولاً، قمنا بتعيين الإزاحة الأفقية للمنطقة (من الحافة اليسرى) والإزاحة الرأسية (من الأعلى)، ثم نحدد العرض والارتفاع الجديد لمنطقة التصادم.

يوجد أدناه العديد من المعلمات الإضافية، المدمجة في قسم "الخصائص الفيزيائية". هنا نواجه مربع الاختيار "هل هو مستشعر؟" و مفهوم المجموعات .

إذا قمت بتنشيط علامة "المستشعر"، فستتوقف المنطقة المحددة عن كونها كائنًا ماديًا: ستصبح الشخصية أو جزء منها "شفافًا" للعديد من العوائق، ولكنها ستحتفظ في الوقت نفسه بالقدرة على إطلاق أي إجراءات في ظل ظروف معينة.

مثال من الحياة الواقعية يمكن أن تكون أنظمة الإنذار الحديثة التي تستخدم الليزر: نحن لا نرى الليزر نفسه، ولكن إذا لمسناه، تبدأ عملية الإخطار بأننا صعدنا إلى المكان الخطأ :).

الآن، ما الغرض من المجموعات؟ لنفترض أن شخصيتنا لا تحمل مكبرًا، بل سيفًا يستخدمه (أو بالأحرى هي :)) في تقطيع الأعداء إلى ملفوف (بالمناسبة، في الكود المصدري، تمتلك فريدا شفرة ليزر) ؛)).

المهمة هي أنه عندما نلمس عدوًا بالسيف، يموت العدو، ولكن إذا أخطأنا وضرب الخصم فريدا، فسيتم أخذ بعض طاقتها. والمشكلة الرئيسية هنا هي أن الرسوم المتحركة الضاربة لدينا هي في الواقع صورة يظهر فيها كلا من فريدا والسيف في نفس الوقت...

إذا أرفقنا عمل السيف بالصورة، فإن من يلمس بطلتنا أثناء تشغيل الرسوم المتحركة سيموت من الضربة. ومن أجل تقسيم الصورة إلى عدة كائنات بقدرات ومعايير مختلفة، تم اختراع آلية المجموعة.

افتراضيًا، لدينا منطقة واحدة فقط تتوافق مع الشخصية نفسها ("نفس نوع الممثل"). ومع ذلك، باستخدام أدوات الرسم الموجودة أعلى منطقة العمل الرئيسية، يمكننا إنشاء كائنات افتراضية جديدة وتعيين مجموعة لها باستخدام زر "تحرير المجموعات".

ربما يكون هذا كل شيء مع الاصطدامات، لكنني أقترح الآن التعامل مع الشيء الأكثر أساسية - ضبط سلوك الممثل على المسرح. للقيام بذلك، نحن بحاجة للذهاب إلى قسم "السلوكيات":

افتراضيًا، لا توجد إجراءات هنا في البداية، ولكن يمكننا إضافتها بالنقر فوق الزر "إضافة سلوك" في الزاوية اليسرى السفلية. سترى قائمة بالوظائف الجاهزة للاستخدام للتحكم في شخصيتك أو التفاعل مع الممثلين الآخرين على المسرح.

على سبيل المثال، اخترت سلوك "الحركة ذات 8 اتجاهات"، والذي يتضمن تحرك الممثل في دائرة في أي اتجاه. الآن نختار الإجراء المضاف في القائمة الموجودة على اليسار وعلى الجانب الأيمن يمكننا تكوين معلماته.

إضافة الممثلين إلى المسرح واختبار المستوى

إذا اتبعت التعليمات، فمن المفترض أن يكون لديك بالفعل الحد الأدنى من الموارد المطلوبة للعبة. كل ما تبقى هو معرفة كيفية إضافة ممثلين إلى المسرح واختبار وظائف مساحة اللعب.

نعود إلى محرر المشهد الذي تم إنشاؤه مسبقًا ونقوم بتنشيط اللوحة مرة أخرى، ولكن الآن بدلاً من البلاط، سنقوم بتشغيل علامة التبويب "الممثلون". سنرى قائمة بالأحرف التي تم إنشاؤها مسبقًا والتي يمكننا إضافتها إلى المشهد باستخدام أداة القلم الرصاص:

لدينا شخصية رئيسية واحدة فقط، لذا فإن نقرة واحدة فقط بقلم الرصاص تكفي لإضافتها إلى المشهد. والآن جاءت لحظة الحقيقة - الاختبار الأول! لبدء التجميع الأولي للمشروع، ما عليك سوى النقر فوق الزر "اختبار المشهد" في الزاوية اليمنى العليا من علامة التبويب التي تحتوي على المشهد الخاص بنا. بعد مرور بعض الوقت (يستغرق التجميع الأول وقتًا أطول دائمًا)، سنكون قادرين على الإعجاب بعملنا في مشغل الفلاش:

بالإضافة إلى اللاعب نفسه مع اللعبة، نعرض على الجانب نافذة لسجلات تشغيل اللعبة. وبمساعدتهم، يمكننا العثور بسرعة على المشكلات التشغيلية ومحاولة إصلاحها.

كما نرى، يمكننا بالفعل تحريك فريدا في اتجاهات مختلفة، لكن المشهد نفسه يظل بلا حراك وبمجرد أن تتجاوز بطلتنا حافة الجزء المرئي من المسرح، فإنها تختفي... اضطراب :). يمكنك حل المشكلة عن طريق إضافة سلوك "متابعة الكاميرا" إلى Frida أو تعيين المعلمات الضرورية باستخدام الأحداث.

أيضًا، سيكون من الجيد استبدال المؤشر القياسي بشيء أكثر ملاءمة، على سبيل المثال، مشهد. يمكننا تنفيذ ذلك عن طريق إضافة ممثل جديد على شكل مشهد، وإزالة منطقة الاصطدام الخاصة به وإرفاقه بالمشهد باستخدام السلوك القياسي "Custom Mouse Cursor":

نظام الأحداث في Stencyl

يمكن إنشاء ألعاب بسيطة في Stencyl باستخدام السلوكيات القياسية فقط (السلوكيات)، ومع ذلك، إذا كنا بحاجة إلى شيء غير قياسي، فسيتعين علينا التفكير في استخدام الأحداث التي تم تكوينها للممثلين والمشاهد في قسم "الأحداث":

في الواقع، يتم أيضًا بناء السلوكيات على أساس الأحداث، ولكنها تحتوي أيضًا على واجهة مرئية، مما يبسط عملية التحرير. نحن هنا نتعامل مباشرة مع الكتل الوظيفية التي تؤدي إجراءات معينة.

تنقسم نافذة الحدث إلى ثلاثة أقسام:

  1. يحتوي القسم الأيسر على قائمة الأحداث والأزرار الخاصة بإدارتها (إنشاءها/حذفها/نقلها). لإضافة حدث، نحتاج إلى النقر فوق الزر "إضافة حدث"، ثم تحديد المجموعة المطلوبة في القائمة المنسدلة والإشارة إلى الوظيفة المحددة التي نحتاجها. يوجد على يمين الحدث الذي تم إنشاؤه مربع اختيار يسمح لنا بإلغاء تنشيطه إذا لزم الأمر.
  2. في القسم الأيمن لدينا قائمة بجميع الإجراءات المتاحة، مجمعة في 10 أقسام، يتم تنشيط كل منها بواسطة الزر المقابل. لمزيد من الراحة، يتم فرز الإجراءات في كل قسم إلى علامات تبويب موضوعية ولها لون فريد خاص بها. هناك ثلاث علامات تبويب أخرى في الأسفل هنا. بشكل افتراضي، تكون علامة التبويب "لوحة الألوان" نشطة، حيث توجد قوائم الإجراءات. تعمل علامة التبويب الثانية - "السمات" - على عرض المتغيرات المحلية (المزيد عنها أدناه)، والثالثة - "المفضلة" - تعمل على عرض الإجراءات التي اخترتها.
  3. القسم المركزي هو منطقة العمل. نحن هنا نشكل الأمثلة النهائية لسلوك الشخصية باستخدام مجموعات مختلفة من كتل الإجراءات والأحداث التي تحدث فيها هذه الإجراءات. يتم الدمج ببساطة عن طريق سحب الكتل إلى مساحة العمل ثم تحرير المعلمات المحددة فيها. تجدر الإشارة إلى أن الوظيفة تتكون فقط من تلك الكتل التي تم دمجها مع بعضها البعض وإدراجها في الكتلة الرئيسية للحدث. وبالتالي، من أجل إزالة بعض المجموعات غير الضرورية حاليًا (ولكنها مفيدة) مؤقتًا، نحتاج فقط إلى نقلها من البنية العامة إلى المساحة الحرة. إذا أصبحت الإجراءات غير ضرورية على الإطلاق بمرور الوقت، فيمكن حذفها بالكامل عن طريق نقلها إلى سلة المهملات الموجودة في الجزء العلوي الأيمن من منطقة العمل.

في الواقع، لقد وصفنا بالفعل خوارزمية إنشاء الأحداث، ولكن، للأسف، لا أستطيع تقديم أي توصيات عالمية - ستكون الأحداث مختلفة لكل لعبة ويمكن أن يكون هناك الكثير منها... كمثال، يمكنك البحث في الكود المصدري للعبة فريدا، والتي ستجدها في الأرشيف مع البرنامج، ولكن هذا مجرد دليل، لأن العمل على الأحداث هو إبداعك الشخصي :).

إعداد الفيزياء والخصائص

لقد قمنا بالفعل بتغطية الكثير من الأشياء، لكننا لم نتطرق إلى بعض المواضيع الإضافية التي يمكن أن تكون مهمة جدًا عند إنشاء الألعاب - أتحدث عن إعداد جميع أنواع خصائص الممثلين والمشاهد لدينا. نقوم بتخزين هذه المعلمات في علامتي التبويب الأخيرتين. وأولها "الفيزياء":

تبدو علامة تبويب إعدادات الفيزياء مختلفة بالنسبة للمشاهد والممثلين. في علامة التبويب إعدادات فيزياء المشهد، يوجد معلمتان فقط - ضبط الجاذبية الأفقية والرأسية. يتم عرض مظهر القسم الخاص بتعيين المعلمات المادية للممثلين في لقطة الشاشة أعلاه ويتكون من خمس علامات تبويب مع خيارات مختلفة:

  1. علامة التبويب العامة لدينا هنا ثلاثة عوامل: نوع الممثل (ثابت، منصة (يمكن أن يتحرك وفقًا لقواعد معينة، ولكن لا يمكن تحريكه بواسطة ممثلين آخرين) ومتحرك)، ودوران الممثل (يمكن أن يدور أو لا) وتأثير الجاذبية .
  2. علامة التبويب "الثقل". في علامة التبويب هذه، يمكنك ضبط كتلة الكائن الافتراضي وقصوره الذاتي.
  3. تتيح لك علامة التبويب "المواد" تعيين خصائص الممثل التي تحاكي سلوك كائن حقيقي مصنوع من مادة معينة. لدينا الفرصة لاختيار أحد الإعدادات المسبقة من القائمة المنسدلة "المواد المعدة مسبقًا" أو ضبط خصائص الاحتكاك والمرونة لممثلنا يدويًا.
  4. تتيح لنا علامة التبويب "التخميد" الفرصة لضبط معلمات تفاعل الممثل مع البيئة بشكل أكثر دقة من خلال إدخال قيم مثل المقاومة الخطية (على سبيل المثال، للهواء) والزاوية (أثناء الدوران).
  5. تتيح لنا علامة التبويب "خيارات متقدمة" الوصول إلى العديد من الإعدادات الإضافية غير المدرجة في الأقسام السابقة. هنا يمكنك تمكين نموذج فيزيائي مبسط (لتحسين اللعبة)، والكشف التلقائي عن مناطق الاصطدام، وأحداث إعادة الاصطدام، والقدرة على تطبيق الإيقاف المؤقت للممثل.

لقد قمنا بفرز الفيزياء، والآن دعونا نلقي نظرة على الخصائص التي يتم استدعاؤها بالضغط على زر "الخصائص":

كما في الحالة السابقة، ستكون الخصائص مختلفة بالنسبة للمشاهد والممثلين. في خصائص المشهد يمكننا تحديد اسمه ("الاسم") والأبعاد (قسم "الحجم") ولون الخلفية ("لون الخلفية").

في خصائص الممثل، بالإضافة إلى الاسم، يمكنك تعيين وصف (حقل "الوصف") للكائن والمجموعة التي ينتمي إليها الممثل (قسم "اختيار مجموعة") وطبقة رسوم متحركة للجوال الأجهزة (ليس عليك تغيير أي شيء هنا، حيث أن الإصدار المجاني من البرنامج لا يسمح لك بتصدير الألعاب إلى تنسيقات الهواتف المحمولة.

ولكن هذه ليست كل الإعدادات المتوفرة لنا في Stencyl. تتوفر لنا الإعدادات العامة للعبة من خلال النقر على زر "الإعدادات" الموجود على شريط الأدوات الرئيسي:

في نافذة الإعدادات، توجد على اليسار قائمة بمجموعات المعلمات، وعلى اليمين توجد المنطقة الرئيسية (المقسمة أحيانًا إلى عدة علامات تبويب) التي تحتوي على جميع أنواع الخيارات. نحن هنا مهتمون بالأقسام التالية:

  1. "إعدادات" المجموعة الأولى من الإعدادات التي تسمح لك بتخصيص لعبتنا قليلاً. تحتوي هذه المجموعة على ثلاث علامات تبويب. في الأول ("الرئيسي") يمكننا إعطاء اللعبة اسمًا جديدًا ووصفًا قصيرًا بالإضافة إلى صورة معاينة وأيقونة. في علامة التبويب "العرض"، يمكنك تكوين الحجم النهائي لمساحة اللعبة، وفي علامة التبويب الأخيرة ("متقدمة")، يمكنك تمكين الفيزياء المبسطة وتعيين معلمات منع التعرج.
  2. "محمل" في هذه المجموعة، يمكننا جزئيًا (مع الأخذ في الاعتبار بعض قيود الإصدار المجاني) تخصيص مظهر أداة التحميل المسبق (المحمل)، والتي سيتم عرضها قبل تحميل اللعبة بالكامل. توجد بالفعل أربع علامات تبويب هنا. في الأول ("عام" - عام) يمكنك تحديد رابط لموقع الويب الخاص بك، وتمكين الحماية من نسخ اللعبة على موارد أخرى (مفصولة بفواصل، ندرج قائمة المواقع المسموح بها في السطر الثاني) وأحد أدوات تحميل التشغيل جلود. في علامة التبويب "المظهر"، يمكننا ضبط لون شاشة أداة تحميل التشغيل وصورة الخلفية. باستخدام علامة التبويب "Bar Style"، يمكنك تحديد أبعاد شريط أداة تحميل التشغيل، ويتيح لك "Bar Color" ضبط ألوانه وفقًا لذلك.
  3. "صفات" هذه المجموعة من الإعدادات هي واحدة من أبسط الإعدادات! هنا يمكنك إدارة المتغيرات العامة المستخدمة في اللعبة (المزيد حول المتغيرات في القسم التالي أدناه).
  4. "ضوابط" كما يوحي الاسم، يمكننا في هذه المجموعة إعادة تكوين وإضافة أزرار لوحة المفاتيح التي سيتم استخدامها لتنفيذ إجراءات معينة في اللعبة.
  5. "مجموعات" لقد ناقشنا بالفعل آلية المجموعات أعلى قليلاً. هنا لدينا الفرصة لرؤية جميع المجموعات التي تم إنشاؤها وتحريرها.

في الواقع، هذه هي جميع الإعدادات التي سنحتاجها لإنشاء ألعاب فلاش في الإصدار المجاني من Stencyl. ولكن بما أن هذا القسم يتعلق بالإعدادات، فسيكون من العار عدم ذكر معلمات البرنامج نفسه. يمكنك الوصول إليها عن طريق تفعيل عنصر "التفضيلات" في قائمة "ملف":

يوفر البرنامج دعمًا لواجهة متعددة اللغات، ولكن في الوقت الحالي لا يوجد سوى ترجمة باللغة الإنجليزية، لذلك انتقلنا مباشرة إلى علامة التبويب الثانية - "مساحة العمل". الحقيقة هي أن الإصدار الثالث من Stencyl قدم وظيفة لإنشاء صور تكيفية تلقائيًا من النقوش المتحركة التي تم تنزيلها.

وبشكل افتراضي، يتم مضاعفة العفريت، مما يستلزم تدهور جودة الرسومات. لمنع حدوث ذلك، أنصحك بتعطيل تغيير حجم الصورة عن طريق تحديد "قياسي (1x)" في حقل "القياس".

أنصحك أيضًا بإلقاء نظرة على علامة التبويب الثالثة - "المحررون". هنا يمكنك ربط إجراءات معالجة الرسومات والصوت والنصوص بمحررات خارجية أكثر تقدمًا (من Stencyl المضمنة).

قليلا عن المتغيرات

لقد نظرنا إلى جميع الفروق الدقيقة في العمل في Stencyl تقريبًا، لكننا لم نتطرق إلى واحدة من أقوى الميزات - العمل مع المتغيرات.

تتيح لك المتغيرات في أي لغة برمجة التعامل مع أحداث مختلفة، والتعبير عنها من خلال أرقام معينة (المتغيرات الرقمية)، والشروط (المتغيرات المنطقية)، والنصوص (متغيرات السلسلة)، وما إلى ذلك. السمة الرئيسية للمتغيرات هي القدرة على استبدال أي قيمة ضمن إطار محدد سلفا. مثال بسيط للمتغير: مراقب الفصل الدراسي. اليوم يمكن أن يكون إيفانوف، وغداً بيتروف، وبعد غد سيدوروف :).

في حالتنا، يمكن لمتغير "الضابط المناوب" أن يأخذ واحدة من ثلاث قيم، والتي سيتم استبدالها تلقائيًا اعتمادًا على شرط معين (على سبيل المثال، ترتيب الأسماء في القائمة).

في Stencyl، يمكن أن تكون المتغيرات محلية أو عالمية. يمكننا الإعلان عن المتغيرات المحلية كجزء من حدث أو سلوك ما، وستعمل فقط مع الإجراءات المحددة. يمكنك إنشاء متغير محلي في محرر الأحداث عن طريق استدعاء قسم "السمات":

لدينا هنا عدة علامات تبويب:

  1. تتيح لك علامة التبويب "Getters" تعيين المتغيرات التي ستتلقى قيمة من أي حسابات أو تعليمات مباشرة.
  2. تتيح لك علامة التبويب "Setters" تعيين أي قيم للمتغيرات التي تم إنشاؤها مسبقًا.
  3. تقوم علامة التبويب "سمات الألعاب" بتخزين كتل من المتغيرات العامة، وتسمح لك، إذا رغبت في ذلك، بإضافة متغيرات جديدة (على الرغم من أننا سننظر في كيفية القيام بذلك بشكل أفضل أدناه).
  4. تمنحنا علامة التبويب "القوائم" القدرة على إنشاء صفائف من البيانات.
  5. يتم استخدام علامة التبويب "الوظائف" لتنظيم الوظائف التي تم إنشاؤها.

خوارزمية إنشاء متغير محلي بسيطة: أولاً، نقوم بإنشاء كتلة جديدة في علامة التبويب "Getters"، ثم نجد المتغير الذي تم إنشاؤه حديثًا في علامة التبويب "Setters" ونضيف كتلة معه إلى مساحة العمل، ونعادلها بـ بعض معلمات اللعبة. هذا كل شيء - تم الإعلان عن المتغير وتلقى مجموعة من القيم الصالحة.

يتم تعيين المتغيرات العامة (سمات اللعبة) في Stencyl للعبة بأكملها ويمكن استدعاؤها في أي حدث أو سلوك. كما ذكرنا أعلاه، يمكنك إنشاؤها في قسم "السمات" في علامة التبويب "سمات اللعبة":

ومع ذلك، فمن الملائم أكثر عرض وإدارة جميع المتغيرات التي تم إنشاؤها باستخدام قسم "السمات" في الإعدادات (زر "الإعدادات" على شريط الأدوات أو "إظهار سمات اللعبة" في علامة التبويب "سمات اللعبة" في محرر الأحداث) :

لدينا هنا القائمة الكاملة للمتغيرات العامة والقدرة على إنشاء متغيرات جديدة بالنقر فوق الزر "إنشاء جديد". بالنسبة للمتغير الجديد، يمكننا على الفور تعيين النوع (رقمي أو نصي أو منطقي أو مصفوفة) وقيمة البداية دون مغادرة النافذة، وهو أمر مناسب جدًا في رأيي.

باستخدام المتغيرات العالمية، من المريح جدًا تنفيذ عدادات مختلفة، حيث يتم حفظ البيانات الموجودة فيها عندما ينتقل اللاعب إلى مستويات جديدة ويتم تخزينها في الذاكرة طالما أن اللعبة نفسها قيد التشغيل. أوصي أيضًا باستخدام المتغيرات العامة لتتبع الرسوم المتحركة التي يتم تشغيلها.

بعد إعطاء الممثل كائنًا محددًا في الأحداث، يمكننا تعيين قيمة محددة لهذا الكائن في متغير أدناه (على سبيل المثال، رقم تسلسلي أو اسم للرسوم المتحركة). وبالتالي، من خلال ربط إجراء ما بمتغير، يمكننا استدعاؤه في أي وقت عن طريق تحديد القيمة المطلوبة لهذا المتغير.

نشر واستيراد وتصدير الألعاب

أخيرًا، تعرفنا، ولو لفترة وجيزة، على المبادئ الأساسية للعمل مع Stencyl. لنفترض أننا أنشأنا لعبة واختبرناها وتبين أن كل شيء يعمل. الآن كل ما تبقى عليك فعله هو تحويل اللعبة من مشروع إلى ملف SWF حقيقي يمكن نشره على الإنترنت. للقيام بذلك، نحتاج فقط إلى فتح قائمة "نشر" والنقر على "فلاش" في قائمة "الويب".

سيبدأ تجميع ملف اللعبة، وبعد ذلك سيُطلب منك أين وتحت أي اسم لحفظ ملف الفلاش الناتج. احفظ وهذا كل شيء - اللعبة جاهزة :).

ستكون العملية العكسية هي استيراد اللعبة. بفضل وظيفة الاستيراد، يمكنك فتح مشاريع الألعاب للمستخدمين الآخرين، على سبيل المثال، لمعرفة كيفية تنفيذ هذه الوظيفة أو تلك؛). يمكنك أيضًا استيراد اللعبة من قائمة "ملف". إذا تم الاستيراد بنجاح، ستظهر اللعبة على الشاشة الرئيسية في قائمة المشاريع. ومع ذلك، هناك تحذير صغير يستحق القيام به هنا.

المشكلة هي أن Stencyl 3.0 الجديد لديه توافق جزئي فقط مع المشاريع التي تم إنشاؤها في الإصدارات السابقة، وبالتالي فإن وظيفة مشروع اللعبة الذي قمت باستيراده قد تكون غير مكتملة أو، في أسوأ الحالات، لن تبدأ اللعبة على الإطلاق، مما يؤدي إلى حدوث خطأ. سيكون لديك خيارات قليلة - إما البحث عن الأخطاء وتصحيحها، أو قبولها وترك كل شيء كما هو :).

مميزات وعيوب البرنامج

  • سهولة إنشاء الألعاب دون أي مهارات برمجية تقريبًا؛
  • القدرة على إنشاء ألعاب من أي نوع تقريبًا؛
  • مجموعة كبيرة من السلوكيات الجاهزة وموارد اللعبة؛
  • القدرة على تبادل مشاريع اللعبة.
  • لا توجد قيود عند إنشاء ألعاب الفلاش.
  • كثافة موارد عالية جدًا لكل من البرنامج نفسه والألعاب التي تم إنشاؤها؛
  • عدد محدود من العناصر الموجودة على المسرح - كلما زاد عدد العناصر، كانت اللعبة أبطأ (حتى درجة رفض البدء)؛
  • لا يوجد دعم للخطوط السيريلية (تحتاج إلى تحرير الصور المتجهة للأبجدية اللاتينية واستبدالها بالأحرف الضرورية)؛
  • التوافق غير الكامل للإصدار الجديد من البرنامج مع مشاريع الألعاب التي تم إنشاؤها في الإصدارات السابقة.

الاستنتاجات

من بين جميع برامج إنشاء ألعاب الفلاش الموجودة اليوم، يعد Stencyl الحل الوسط الأكثر منطقية بين سهولة التشغيل واتساع نطاق الإمكانات. والخبر السار هو أن وظيفة المصمم في الإصدار المجاني غير محدودة عمليًا، مما يسمح لك بإدراك أي فكرة بشكل كامل تقريبًا.

ومع ذلك، لا تنسى "تقريبا"... والحقيقة هي أن Stencyl نفسه يعمل على جهاز JAVA، والذي، كما تعلمون، يتطلب موارد كبيرة. إذا أضفنا إلى هذا التحميل الحمل الذي تنشئه اللعبة، فسيتبين أننا نحتاج إلى جهاز كمبيوتر حديث وقوي للتشغيل العادي.

هذا هو الأول "تقريبا". والثاني هو القيد الضمني لعدد الأشياء الموجودة على المسرح، وهو ما ذكرته بشكل عابر. حتى لو كانت هذه الكائنات مجرد مربعات، ولكن هناك الكثير منها، فقد ترمي اللعبة خطأً أثناء الاختبار ولا تبدأ حتى تقوم بتقليل عددها.

لتلخيص ذلك، يمكننا القول أن Stencyl سيكون محركًا مثاليًا لإنشاء جميع أنواع ألعاب الفلاش غير الرسمية وألعاب إطلاق النار الجانبية. علاوة على ذلك، بعد التدرب على إنشاء ألعاب الفلاش، يمكنك شراء أحد أنواع التراخيص، ومن خلال تغيير بسيط في الآليات، يمكنك نقل لعبتك إلى التنسيقات التي يدعمها Android وiOS. وهذه طريقة حقيقية لكسب المال عن طريق نشر لعبة على Play Market أو App Store!

أخيرًا، يبقى فقط أن نتمنى حظًا سعيدًا لجميع أولئك الذين يقررون الانخراط بجدية في تطوير اللعبة. دع خوارزمياتك تعمل في المرة الأولى، ودع المترجم يجلس ويصمت عند تشغيل ألعابك :).

ملاحظة. يُمنح الإذن بنسخ هذه المقالة واقتباسها بحرية، بشرط الإشارة إلى رابط نشط مفتوح للمصدر والحفاظ على تأليف رسلان تيرتيشني.

إذا كنت تعمل مع فلاشوأنت تستخدمه حاليًا فقط للرسم والرسوم المتحركة البسيطة وإنشاء مقاطع فيديو أو لافتات، لكن لم تقم بالبرمجة فيه مطلقًا، فربما كنت تريد حقًا معرفة هذا الجانب فلاش.

ماذا حدث أكشن سكريبت؟ كيف يمكنك كتابة الكود في فلاش؟ كيف يمكنك البرمجة بشكل كامل في فلاش؟ ما هي أفضل الأدوات التي يمكن استخدامها لهذا؟ توفر هذه المقالة إجابات على مثل هذه الأسئلة.

ستكون هذه المقالة بمثابة دليل جيد للمبتدئين في البرمجة فلاشعلى أكشن سكريبت 3.0وسوف تساعدك على اختيار أفضل الأدوات لهذا الغرض.

ما هو أكشن سكريبت؟

سيناريو العملهي لغة برمجة موجهة للكائنات تضيف التفاعل ومعالجة البيانات والمزيد إلى محتوى تطبيقات Flash.

يمكنك استخدام Action Script لإنشاء تطبيقات الوسائط المتعددة التفاعلية والألعاب ومواقع الويب.

إذا كنت تعمل مع بيئة تطوير رسومية فلاش IDE(على سبيل المثال، Adobe Flash Professional CS5)، لكنك لم تكن مهتمًا أبدًا بالمكان الذي يمكنك فيه كتابة كود البرنامج، فمن المحتمل أنك قلق بالفعل بشأن السؤال "أين يختبئ، AS3 هذا؟"

AS3 في فلاش IDE.

لنقم بإنشاء ملف مشروع جديد - جديد - ActionScript 3.0 (الشكل 1).

الشكل 1. إنشاء مشروع AS3 جديد.

سيظهر مشهد فارغ بإطار فارغ على طبقة واحدة. الآن يمكنك تحديد الإطار والنقر عليه F9وبذلك يتم فتح نافذة "الإجراءات" التي تحتوي على مساحة لتحرير كود البرنامج الخاص بهذا الإطار.

لنكتب الكود التالي في النافذة التي تفتح:

أكشن سكريبت

var s: String = "إنه تتبع كود AS3 الخاص بي!"; أثر (آثار)؛

var s : String = "إنه تتبع كود AS3 الخاص بي!" ;

أثر (آثار)؛

أرز. 2. الكود مكتوب في محرر Flash IDE.

الآن يمكنك تشغيل محرك الأقراص المحمول ( السيطرة + أدخل). يقوم هذا الرمز بإنشاء متغير سيكتب خيط(سلسلة) ويعين لها قيمة أولية - السلسلة " إنه تتبع رمز AS3 الخاص بي!". التالي، الوظيفة يتعقب()، الوسيطة التي تكون متغيرًا تم إنشاؤه حديثًا، هذه السلسلة (أو بالأحرى قيمة المتغير س) يتم عرضها في علامة التبويب انتاج، والذي يقع افتراضيًا في واجهة IDE بجوار علامة التبويب الجدول الزمني.


بهذه الطريقة يمكنك فتح وإغلاق محررات الأكواد (باستخدام F9) لأي إطار من تطبيق Flash.

يبدو أن الصورة ليست سيئة - يمكنك إنشاء كائنات مختلفة باستخدام الرسوم المتحركة ( MovieClip) أو الصور الثابتة ( شبح) وسيكون لكل كائن إطارات وفي كل إطار يمكنك برمجة أي شيء تريده. تبدو مريحة ومرنة. ولكن هذا فقط للوهلة الأولى. تخيل أن لديك العشرات من الكائنات التي تحتوي على عشرات الإطارات ويجب وصفها جميعًا في التعليمات البرمجية بمنطق سلوك مختلف أو مشابه. في الحالة الثانية (المنطق المشابه) - يعني هذا عمومًا مئات الأسطر المتشابهة من التعليمات البرمجية التي قد يكون نسخها من إطار إلى إطار أمرًا شاقًا. تخيل أنك تحتاج إلى تغيير شيء ما أثناء عملية التطوير. لا - ليس هذا هو الحال! هذه ليست الفوضى التي تم تصميم AS3 من أجلها!

بالإضافة إلى ذلك، إذا كنت تعمل كمحرر أكواد Flash IDE، على سبيل المثال، عملت في بعض بيئات البرمجة الأخرى (دلفي، Visual Studio)، فستلاحظ على الفور أن هذا المحرر، بعبارة ملطفة، محبط لأنه غير مريح وغير مكتملة.

ماذا تفعل، تسأل؟ ابحث عن برامج تحرير التعليمات البرمجية التابعة لجهات خارجية.

محرري التعليمات البرمجية البديلة.

الخيار الأفضل لنظام التشغيل Windows هو فلاش ديفيلوب(فد). يمكنك تنزيل أحدث إصدار من الموقع.

بالنسبة لنظام iOS، هناك بديل جيد إف دي تي. يمكنك العثور عليه في المكتب. موقع إلكتروني.

فلاش ديفيلوب.

لأن أعيش حاليًا في الغالب على نظام التشغيل Windows، لذا سأخبرك عن المحرر المخصص لنظام التشغيل هذا. في المستقبل، عندما أكتسب خبرة في FDT، سأكتب عنها.

لا يوجد شيء معقد في التثبيت، قم بتنزيل أحدث إصدار من المكتب. الموقع وتثبيت. المحرر مجاني تمامًا ويستخدم Flex SDK للتجميع. أثناء التثبيت القياسي، سوف تتولى FD تثبيت الأخير. كل ما تحتاجه لتثبيت FD بنفسك هو هذا جافا.

يتمتع FD بالكثير من وسائل الراحة والميزات، بما في ذلك: مفاتيح التشغيل السريع، والاستبدال التلقائي الجيد، وقوالب الفصل الدراسي، والقدرة على إنشاء القوالب الخاصة بك وتحرير القوالب الموجودة.

بعد التثبيت، يمكنك إنشاء مشروع جديد (مشروع - مشروع جديد...)، وسيفتح مربع حوار إنشاء المشروع، كما هو موضح في الشكل. 4.


كما ترون، FD يسمح لك بإنشاء مشاريع AS3 ليس فقط. ولكننا الآن مهتمون بمشروع AS3، أفضل اختيار فراغ للمشروع به أداة التحميل المسبق-أوم، الذي تم اختياره ل أرز. 4. ثم أدخل اسم المشروع (الحقل اسم) وقم بتعيين دليل المشروع (الحقل موقع)، إذا تم تحديده "إنشاء دليل للمشروع"، ثم سيتم إنشاء مجلد باسم المشروع (الاسم) في دليل الموقع وسيتم احتواء ملفات المشروع فيه بالفعل؛ إذا لم يتم تحديد مربع الاختيار، فسيتم وضع الملفات في دليل الموقع المحدد.

بعد إنشاء المشروع على اليمين سترى بنية الملفات والمجلدات الخاصة بالمشروع، افتح المجلد srcوانقر مرتين على الملف main.as. وبعد ذلك يجب أن ترى الكود تقريبًا كما في الشكل. 5.


دعونا نحاول كتابة بعض التعليمات البرمجية، على سبيل المثال تقريبًا نفس الكود الذي جربناه فلاش IDE. يمكنك الكتابة بعد السطر الذي تم التعليق عليه "//نقطة الدخول"لأن هذه هي النقطة التي تم فيها إنشاء المشهد بدقة. دعونا نكتب الأمر يتعقب()، في التين. 5. لقد سمحت لنفسي بالفعل بهذا الفعل:]

الآن يمكنك تجميع المشروع ( F8) أو التشغيل فورًا للاختبار ( F5)، بعد الركض في النافذة انتاج |سترى نتيجة الوظيفة يتعقب()- إخراج الخط.

نتائج الفريق يتعقب()لا يمكن ملاحظتها إلا عند تشغيل التطبيق من IDE الذي يتم فيه تجميع التعليمات البرمجية وتشغيلها.
عند تشغيل ملف .swf في متصفح أو في مشغل فلاش عادي، لن تكون النتيجة (أي عرض نافذة الإخراج) مرئية لأي شخص.

الآن أنا متأكد من أنك لا تستطيع الانتظار لإنشاء مشروعك الأول على AS3! وللقيام بذلك عليك أن تبدأ في تعلم اللغة نفسها.

تعلم لغة AS3.

بالطبع، يمكنك كتابة الكثير عن AS3، لكن من غير المرجح أن أكتب بشكل أفضل من الكتب، خاصة وأن كل شيء قد تم كتابته بالفعل، لذا فإن وظيفتي هي التوصية بأفضل الأدبيات بناءً على تجربتي.

أفضل كتاب: كولين موك — .

إضافة جيدة إلى المعرفة: جوي لوت — .

قرأت أيضًا هذا الكتاب في ذلك الوقت: متجر غني— . على الرغم من أنه لم يتم كتابته كثيرًا وبالتفصيل، إلا أنه سيكون مناسبًا للمبتدئين إذا لم يكن Muk في متناول اليد.

هذه الكتب كافية لبداية قوية! اقرأ وتدرب ثم مارس واقرأ. ليست هناك حاجة للجلوس وقراءة هذه الكتب من الغلاف إلى الغلاف، لأن... في عملية القراءة، من المهم دمج المعرفة مع الممارسة، وسوف يسعدك أن تفعل شيئًا في أقرب وقت ممكن:]

عند البحث بسرعة عن الوثائق على الإنترنت، يكون المكتب مفيدًا للغاية. التوثيق من .

لمزيد من التطوير، من أجل فهم جيد لـ OOP وأنماط التصميم (وهذا مهم جدًا لبنية OOP جيدة)، سيكون الكتاب التالي لا غنى عنه بالنسبة لك: ويليام ساندرز، تشانديما كوماراناتونج — .

ستجد في هذا الموقع أيضًا عددًا لا بأس به من جوانب برمجة AS3، والتي تراكمت من خلال تجربتي.

أو حاول إنشاء أداة التحميل المسبق الأولى من خلال قراءة المقالة: أداة التحميل المسبق افعلها بنفسك.

كل التوفيق والمشاريع الناجحة!

برمجة فلاش

برنامج المقررات الاختيارية والدليل التعليمي للمعلم والطالب

برنامج الدورة. 1

1. المقدمة: 1

2. موضوعات الدورة: 2

3. الأدب: 2

دليل تعليمي للمعلمين والطلاب. 2

1. مقدمة، نافذة "إجراءات الإطار". 2

2. المتغيرات. 4

3. حقول الإدخال/الإخراج. 5

4. المشغل الشرطي. 8

5. حلقات "مع معلمة" وحلقات "بينما". أحد عشر

7. البرمجة الشيئية. 17

8. التغيير البرمجي للخصائص. 19

9. دورات ثلاثية الإطارات. الرسوم المتحركة البرمجيات. 22

10. مشروع "لعبة تفاعلية - ميدان الرماية". 24

برنامج الدورة

1 المقدمة:

يذهل برنامج Macromedia Flash بقدراته. بالإضافة إلى أدوات الرسم والرسوم المتحركة المتقدمة، يحتوي Flash على لغة برمجة Action Script مدمجة. إن إتقان هذه اللغة لا يسمح لك فقط بإنشاء رسوم متحركة للبرامج وألعاب فلاش وصفحات ويب تفاعلية، بل يمنحك أيضًا معرفة حول تقنيات البرمجة الموجهة للكائنات (المشار إليها فيما يلي باسم OOP).

على الرغم من حقيقة أن منشئي Flash حاولوا جعل البرمجة بسيطة حتى بالنسبة للمستخدم غير المدرب، فإن إتقان هذه الأدوات يتطلب الكثير من الوقت. هذه الدورة اختيارية، ويختارها الطلاب لاتخاذ قرار أكثر استنارة بشأن التخصص في المدرسة الثانوية. يمكن أن تكون الدراسة التفصيلية للبرنامج وتنفيذ المشاريع الجادة مهمة الدورات المتخصصة (على سبيل المثال، "برمجة الويب"، "تصميم الويب"، "البرمجة الشيئية"، وما إلى ذلك)، بالإضافة إلى الدراسة المستقلة. دورة برمجة الفلاش مخصصة لطلاب الصف التاسع الذين هم بالفعل على دراية برسومات الفلاش المتحركة وأساسيات البرمجة. كجزء من الدورة الاختيارية، من الممكن تمامًا إتقان أساسيات البرمجة وتكنولوجيا OOP وتنفيذ مشاريع بسيطة في Flash. تتضمن الدورة 8 مشاريع، منها مشروع آلة حاسبة فلاشية ومشروع لعبة تفاعلية. الدورة مجهزة بدليل تعليمي للمعلمين والطلاب.

الغرض من الدورة:

لإثارة اهتمام الطلاب، لإظهار قدرات البرامج الحديثة لإنشاء تطبيقات تفاعلية؛ تقديم أساسيات البرمجة كائنية التوجه؛ تعميق معرفتك بـ Macromedia Flash.

هدف الدرس:

إدخال تكنولوجيا البرمجة الموجهة للكائنات؛ إظهار استخدام Action Script لإنشاء تطبيقات تفاعلية؛ قم بإنشاء مشروعين: آلة حاسبة فلاش ولعبة معرض إطلاق نار تفاعلية.

متطلبات المعرفة لدى الطالب:

لإكمال هذه الدورة بنجاح، يجب أن يكون لدى الطلاب المعرفة الأساسية بالفلاش: إنشاء صور بسيطة، والعمل مع رموز المكتبة، وفهم الإطارات الرئيسية، والرسوم المتحركة بالفلاش، والإجراءات الأساسية في برنامج Action Script.

لإكمال هذه الدورة بنجاح، يجب أن يكون لدى الطلاب المعرفة الأساسية بالبرمجة: مفاهيم رئيسية مثل الخوارزمية والبرنامج والمتغير ومعرفة الهياكل الخوارزمية الأساسية.

متطلبات الكمبيوتر:

جهاز كمبيوتر مثبت عليه Macromedia Flash MX (أو أعلى).

دورة "برمجة الفلاش" مصممة لمدة 12 ساعة.

2. موضوعات الدورة:

المواضيع

عدد الساعات

كرر فلاش.

حقول الإدخال/الإخراج، والهياكل الخوارزمية

أنواع الحقول (ثابت، ديناميكي، الإخراج)؛ إعلان المتغيرات، ومتغيرات الأحرف والأرقام، وإضافة التعليمات البرمجية إلى الزر، والبيان الشرطي، والتكرار مع المعلمة، أثناء التكرار، وتنفيذها في Flash.

المهام النموذجية: حساب تكلفة الرحلة، حل معادلة من الدرجة الثانية، الأس، إيجاد عنصر من مجموع سلسلة من سلسلة

المشروع: آلة حاسبة فلاشية

المفاهيم الأساسية لـ OOP

الكائن، الخصائص، الطريقة، الحدث

التغيير البرمجي للخصائص. الرسوم المتحركة البرمجيات.

خصائص قابلة للتغيير إنشاء الرموز، أسمائهم؛ تغيير خصائص الشخصية، وميزات تنفيذ كود البرنامج في فلاش، ودورات ثلاثية الإطارات.

المهام النموذجية: إنشاء كائن بخصائص قابلة للتغيير (الضغط على المفاتيح المناسبة). خلق كائن متحرك.

المشروع: لعبة تفاعلية للرماية.

3. الأدب:

Beluntsov V. Macromedia Flash: الرسوم المتحركة على الإنترنت. "DESS Com"، موسكو 2001. مواد Flash MX 2004 من موقع www. *****

الدليل التعليمي للمعلم والطالب

1. المقدمة، لوحة العمل

لدى Macromedia Flash لغة برمجة خاصة بها، وهي Action Script. يسمح لك بجعل مقاطع فيديو Flash تفاعلية. إمكانيات اللغة كبيرة جدًا مما يسمح لك بإنشاء برامج جادة. Action Script ليست لغة برمجة مستقلة. إنها مجموعة من البرامج النصية - أجزاء من التعليمات البرمجية التي "تعيش" فقط داخل فيلم Flash، والتي، مع ذلك، لا تتداخل مع إنشاء برامج كاملة.

عليك أن تتذكر أن Action Script هي لغة تعتمد على الأحداث، أي أنه سيتم تنفيذ البرنامج النصي عند وقوع حدث ما. يمكن أن يحدث مثل هذا الحدث عند الوصول إلى إطار رئيسي معين، على سبيل المثال، في الإطار الرئيسي الأخير نضيف أمر stop(). على الرغم من أن هذا مجرد أمر واحد، فهو برنامج نصي كامل سيتم تنفيذه عند الوصول إلى الإطار الأخير - سيتوقف الفيديو. يمكن أن يكون هناك حدث آخر يتمثل في النقر بالماوس على زر يظهر على الشاشة أو الضغط على مفتاح لوحة المفاتيح.

لإضافة رمز البرنامج، تحتاج إلى تحديد الإطار الرئيسي الذي تريد إضافة البرنامج النصي إليه (أو تحديد الزر الذي تم إنشاؤه) والضغط على المفتاح F9 (الشكل 1).

أرز. 1 لوحة العمل.

دعونا نلقي نظرة على العناصر الرئيسية لنافذة الإجراء. الجانب الأيسر من النافذة مشغول بقائمة الأوامر التي يمكنك تحديدها بالنقر المزدوج عليها باستخدام زر الفأرة الأيسر. يتم تجميع جميع الأوامر، وهناك الكثير منها، في اثنتي عشرة كتلة "وظيفة عامة"، "خصائص عامة"، وما إلى ذلك. بعد النقر، يتم نقل الأمر إلى الجانب الأيمن من النافذة. أنه يحتوي على رمز البرنامج. يمكنك حذف الأوامر غير الضرورية (مفتاح الحذف) أو التحرك لأعلى ولأسفل في البرنامج النصي إما باستخدام مفاتيح المؤشر أو باستخدام الأزرار. بالطبع، يجب أولاً تحديد الأمر المراد نقله أو حذفه. يتم تخصيص الجزء السفلي من النافذة للمعلمات القابلة للتغيير لكل أمر محدد. على سبيل المثال، في أمر الانتقال gotoAndPlay()، تحتاج إلى الإشارة إلى الإطار الذي تريد الانتقال إليه عند الوصول إلى هذا السطر. للقيام بذلك، تحتاج إلى إدخال رقم الإطار المطلوب بين قوسين.

عند كتابة رمز البرنامج، يكون كتابة الرمز يدويًا أكثر ملاءمة وأسرع. من المهم أن تتذكر أن لغة ActionScript حساسة لحالة الأحرف في الأوامر التي تكتبها. وهذا يعني أن الأمر GoToandPlay() سيكون غير صحيح.

يبقى أن نضيف أنه لتشغيل الكود وعرض النتيجة، تحتاج إلى الدخول إلى وضع عرض الفيديو، للقيام بذلك، اضغط على مجموعة المفاتيح Ctrl-Enter.

راجع الأسئلة:

ما هو البرنامج النصي؟ ما الأحداث التي تؤدي إلى تنفيذ التعليمات البرمجية في Flash؟ كيف يمكنني إظهار لوحة الإجراءات؟ ما العناصر التي تتكون منها لوحة الإجراء؟ كيفية إنشاء ملف قابل للتشغيل من فيلم فلاش؟

2. المتغيرات

أحد المفاهيم الأساسية لأي لغة برمجة هو المتغير. من المفترض أن القارئ على دراية بمفهوم المتغير، لذلك دعونا نلقي نظرة على كيفية تنفيذه في Flash.

لنفترض أننا نريد إضافة رقمين. لإجراء هذه العملية الحسابية البسيطة، قم بإنشاء زر في الإطار الرئيسي الأول: ارسم مستطيلاً، وقم بعمل تعليق، ثم قم بتحويل الصورة الناتجة إلى رمز (قائمة إدراج - تحويل إلى رمز، ولا تنس ضبط سلوك رمز - زر). ونتيجة لذلك، ظهر كائن يمكنه الاستجابة للنقرة بالماوس؛ ويمكن التحقق من ذلك بسهولة عن طريق الدخول إلى وضع عرض الفيديو.

سيتم تخزين الرقم الأول في المتغير x1، والثاني في المتغير x2. دع النتيجة يتم حفظها تحت اسم الخلاصة وعرضها على الشاشة. من أجل إنشاء حقل إخراج (المزيد حول هذا في الدرس التالي)، انقر فوق أداة النص واستخدمها لتحديد منطقة من الشاشة - حقل النص المستقبلي. ثم انتقل إلى لوحة الرمز العائمة (نافذة القائمة - اللوحات - الرمز) وفي علامة التبويب "خيارات النص" قم بتغيير نوع حقل النص Stutic Text إلى Dimamic Text (الشكل 2). تأكد من تسمية هذا الحقل بالمتغير – الخلاصة. وأيضًا، لجعل الحقل مرئيًا على الشاشة، حدد خانة اختيار الإطار/الخلفية.

أرز. 2 قم بإنشاء حقل ديناميكي لعرض القيم.

الآن دعونا نقارن الكود بالزر الذي صنعناه. حدد الزر واضغط على F9.

في الجزء الأيسر من النافذة، حدد كتلة العمليات - تعيين المتغير. في الجزء السفلي من النافذة، قمنا بتعيين المعلمات: المتغير - x1، القيمة 5. يرجى ملاحظة أنه بجوار حقل القيمة يوجد تعبير معلمة تبديل. ويجب تحديده، وإلا فإن المتغير x1 سيخزن الرقم 5 والرمز. هذه هي الطريقة التي يتم بها تحديد نوع المتغير. كما تفهم، يوجد في AS نوعان فقط من المتغيرات، الرقمية والسلسلة، قم بوصف الأنواع مقدمًا، كما هو معتاد في لغة Turbo Pascal. قم بإجراءات مماثلة للمتغير الثاني، على التوالي، اسمه x2، والقيمة هي 8. علينا فقط إضافة السطر الثالث - تعيين المتغير الثالث، اسمه: summa (نفس اسم حقل الإخراج) ، القيمة: x1 + x2، بالطبع، تعبير العنصر المحدد.

نتيجة لهذه العمليات، على الجانب الأيمن لديك الرمز الموضح في الشكل (الشكل 3). يرجى ملاحظة أن كل أمر مفصول بفاصلة منقوطة؛ ويقوم Flash بذلك تلقائيًا. أولاً، يوجد أمر التشغيل (الإصدار)، وهو يشير إلى أن هذا الرمز سيبدأ في التنفيذ عند تحرير مفتاح الماوس من الزر. وبما أن هذا الرمز مرتبط بزر شاشة، تتم إضافة هذا الأمر تلقائيًا. بعد ذلك، يأتي بين الأقواس المتعرجة الكود الذي يجب تنفيذه عند وقوع الحدث.

هذا كل شئ! إذا فعلت كل شيء بشكل صحيح، فمن خلال الانتقال إلى وضع عرض الفيديو والنقر فوق الزر الخاص بك، يظهر الرقم 13 في حقل الإخراج.

راجع الأسئلة:

كيفية تعيين اسم متغير لعرض المعلومات النصية أو الرقمية؟ ما هي أنواع المتغيرات المستخدمة في الفلاش؟ كيف نظهر أن المتغير الذي تم إنشاؤه رقمي؟ كيفية إنشاء زر في فلاش وإضافة رمز له؟ ماذا يعني أمر التشغيل (الإصدار) في بداية البرنامج النصي؟

3. حقول الإدخال/الإخراج

يبدأ تعلم لغة برمجة جديدة بكتابة برامج يتم إدخال القيم الأولية فيها، ثم تحدث معها بعض التحويلات الحسابية وتظهر النتيجة على الشاشة. يستخدم Flash حقول النص لعرض النص على الشاشة. لإنشاء حقل نص، تحتاج إلى تحديد أداة النص (على شريط الأدوات) ومن خلال وضع الدورات التدريبية في المكان الذي تريد إضافة النص إليه، فإنك "ترسم" كتلة نصية (الشكل 4).

أرز. 4 قم بإنشاء حقل نصي.

ونتيجة لذلك، لديك حقل نص ثابت يمكنك كتابة أي نص فيه. هناك ثلاثة أنواع من الحقول النصية: الحقول الثابتة والديناميكية وحقول الإخراج. يتم تعيين نوع الحقل باستخدام علامة التبويب "المعلمات"، لوحة الرموز (انظر الفصل السابق). دعونا نلقي نظرة على الغرض والإعدادات لكل حقل بمزيد من التفاصيل:

يتم استخدام حقل ثابت لعرض التسميات على مشهد فلاش. كما يوحي الاسم، لا يمكن تغيير هذا الحقل برمجياً. كل ما هو متاح لك هو ضبط الخط والحجم واللون وما إلى ذلك. عند الكتابة، سيتم توسيع هذا الحقل تلقائيا، وعرض النص الذي تم إدخاله في عدة أسطر. في هذه الحالة، سيظل عرض حقل النص هو العرض الذي قمت بتعيينه عند "رسم" كتلة النص. لتغييره، تحتاج إلى تحديد الكتلة باستخدام أداة النص وتحريك العلامة اليمنى العلوية لكتلة النص.

الشكل 5

يتم استخدام حقل ديناميكي لإنشاء حقول إخراج يمكن من خلالها تحديث المعلومات مع تقدم الفيديو الخاص بك. من أجل الوصول إلى كتلة نصية برمجياً، يجب أن يكون لها اسم محدد في الحقل "المتغير" (الشكل 5). أنصحك باستخدام الأحرف اللاتينية فقط كأسماء متغيرة، بدون مسافات. في نفس النافذة، يمكنك تمكين خاصية الحدود/الخلفية. الآن سيظهر إطار على الورقة، حيث سيظهر النص المعروض، وهو مناسب للغاية. يسمح لك مربع التحرير والسرد، مع تحديد سطر مفرد افتراضيًا، بتحديد ما إذا كان سيتم عرض النص في سطر واحد أو في عدة أسطر (قيمة متعددة الأسطر). يحدد المفتاح "القابل للتحديد"، الذي يتم تمكينه افتراضيًا، ما إذا كان بإمكان المستخدم تحديد قيم من حقل معين، على سبيل المثال، لنسخها إلى الحافظة. تمامًا كما هو الحال مع أي حقل، يمكنك تعيين معلمات النص: الخط والحجم واللون وما إلى ذلك. إذا قمت بكتابة أي نص في هذا الحقل، فسيتم عرضه حتى يغير البرنامج قيمته.

يتم استخدام حقل الإدخال أو نص الإدخال لإدخال القيم من لوحة المفاتيح. تبدو نافذة معلمات حقل الإدخال مشابهة للنافذة التي تمت مناقشتها أعلاه. المعلمة الرئيسية هنا هي أيضًا الحقل "المتغير". تحدد تحت أي اسم سيتم تسجيل البيانات التي أدخلها المستخدم.

الشكل 6

من خلال فهم الغرض من الحقول النصية، يمكنك إنشاء المشروع التالي. "يتم إدخال تكلفة تذكرة طيران للبالغين، بالإضافة إلى عدد البالغين والأطفال المسافرين على متن الرحلة، في الكمبيوتر. عند النقر على الزر المناسب، يقوم الكمبيوتر بحساب تكلفة تذكرة الطفل (50% من تكلفة الشخص البالغ) والتكلفة الإجمالية للرحلة. انظر مظهر البرنامج (الشكل 6). كما ترون بسهولة في هذه المهمة، يتم إدخال القيم وإخراج النتائج؛ يجب تنفيذ جميع التعليمات البرمجية عند الضغط على زر، وبالتالي يجب أن تكون مرتبطة بهذا الزر.

للبدء، قم بإنشاء خمسة حقول نصية ثابتة واملأها بالنص المناسب.

قم بإنشاء ثلاثة حقول إدخال، وقم بإعطاء المتغيرات لكل حقل أسماء فريدة، على سبيل المثال: stv (سعر تذكرة البالغين)، وkolv (عدد البالغين)، وkold (عدد الأطفال).

قم بإنشاء حقلين ديناميكيين، وقم بإعطاء المتغيرات لكل حقل أسماء فريدة، على سبيل المثال: std (سعر تذكرة الأطفال) وitog (إجمالي مبلغ الرحلة).

عمل زرين "حساب تكلفة الرحلة" و"مسح الحقول"

بالنسبة للزر الأول أضف الكود التالي (الزر، المفتاح الأيمن - العمليات):

إذا (stv==null) (

إذا (كولف==خالية) (

إذا (كولد==خالية) (

itog = stv * kolv + std * kold;

يحسب السطر قبل الأخير تكلفة تذكرة الطفل (نصف تكلفة الشخص البالغ) ويكتب هذه القيمة في المتغير std (اسم حقل الإخراج المقابل). يحسب السطر الأخير المبلغ الإجمالي (itog المتغير) ويدخل قيمته في حقل الإخراج المقابل.

من حيث المبدأ، كان من الممكن القيام بهذين السطرين من التعليمات البرمجية. ولكن بما أن الشخص الذي سيعمل مع هذا البرنامج لن يدخل بالضرورة الرقم صفر إذا لم يكن هناك أطفال مشاركين في الرحلة. وهذا يعني أن تكلفة تذكرة الطفل (القيمة الرقمية) سيتم ضربها بقيمة فارغة (قيمة السلسلة). ستكون نتيجة هذا "الضرب" رسالة خطأ في حقل الإخراج المقابل. لمنع ذلك، يتحقق الكمبيوتر مما إذا كان حقل الإدخال فارغًا (kold==null)، وإذا كان الأمر كذلك، يقوم بتعيين قيمة تساوي صفر لمتغير kold. هذا البناء يسمى العامل الشرطي. المزيد عنها في الموضوع التالي. إذا كان لا يزال من الصعب عليك العمل مع الشروط، فيمكنك حذفها، لكن لا تنس أنه لا ينبغي أن تكون هناك حقول فارغة!

ولإكمال المشروع، سنضيف الكود المناسب لزر "مسح الحقول":

كما ترون، عند النقر على هذا الزر، سيتم تعيين قيمة فارغة لكل متغير، وبالتالي حقل الإدخال/الإخراج (لا يوجد شيء بين علامتي الاقتباس).

راجع الأسئلة:

ما هي أنواع مربعات النص المستخدمة في Flash؟ ما هي المعلمات القابلة للتغيير التي يحتوي عليها حقل النص الديناميكي؟ ما نوع الحقل المستخدم لإدخال القيم من لوحة المفاتيح؟ اشرح معنى السطر التالي من التعليمات البرمجية: itog = stv * kolv + std * kold;؟ لماذا تم استخدام العامل الشرطي في المشروع الموصوف؟

4. المشغل الشرطي

رمز البرنامج الذي نظرنا إليه من قبل خطي. يتم تنفيذ كل أمر فقط بعد اكتمال الإجراء السابق. في الحياة، كل شيء أكثر تعقيدًا بعض الشيء. نفتح المظلة إذا هطل المطر، ونفرح إذا وصلنا إلى هدفنا، ونحسب جذور المعادلة التربيعية إذا كان المميز أكبر من الصفر. في جميع الحالات المذكورة أعلاه، نتصرف بطريقة أو بأخرى. لتنفيذ مثل هذه المواقف، توفر جميع لغات البرمجة عامل فرعي أو عامل شرطي. برنامج العمل النصي ليس استثناء.

الشكل 7

يتم استدعاء العامل الشرطي من خلال النقر على أمر Operations - If (الشكل 7). يظهر الهيكل التالي على الجانب الأيمن من النافذة:

لو (<Не установлено>) {

بدلاً من<не установлено>يجب عليك كتابة عملية مقارنة، تكتبها في حقل "الحالة". مثال على مثل هذا الشرط يمكن أن يكون z<10, (переменная z меньше десяти).

دعونا نلقي نظرة على عمليات المقارنة الأساسية:

> أقل؛

< больше;

>= أكبر من أو يساوي؛

<= меньше либо равно;

يساوي (لاحظ علامتي المساواة)؛

غير متساوي (لاحظ أن علامة التعجب تعني نفي عامل المقارنة الذي يتبعها).

في كثير من الأحيان، يجب استيفاء عدة شروط في وقت واحد. لهذا، يتم استخدام العمليات المنطقية (المنطقية):

&& أو و – منطقية و؛

|| أو أو - منطقي أو؛

أم لا – لا منطقي.

على سبيل المثال، الشرط (a == 10) && (z > 5) سيكون صحيحًا فقط عندما يكون المتغير a يساوي عشرة وفي نفس الوقت يكون المتغير z أكبر من خمسة.

الشرط هو السؤال الذي لا يمكن أن يكون له سوى إجابتين، "نعم" و"لا". إذا كان الشرط صحيحا، فسيتم تنفيذ الإجراءات المضمنة بين الأقواس المتعرجة.

إذا أردنا إضافة مجموعة من الأوامر التي يجب تنفيذها عندما يكون الشرط خاطئًا، فأنت بحاجة إلى إضافة Operations - Else. بعد ذلك سيبدو جزء التعليمات البرمجية كما يلي:

لو (<Не установлено>){

لإضافة أوامر، يجب عليك وضع المؤشر فوق السطر الذي يجب أن يظهر فيه الأمر. كل ما تبقى هو تحديد الأمر المطلوب في الكتلة المناسبة والنقر عليه بالماوس.

الشكل 8

دعونا نفكر في كيفية تنفيذ المبادئ المذكورة لحل المشكلة الكلاسيكية المتمثلة في إيجاد جذور المعادلة التربيعية. "يتم إدخال ثلاثة أرقام في الكمبيوتر - معلمات المعادلة التربيعية ax2 + bx + c = 0. وبناءً على البيانات المدخلة، يحدد الكمبيوتر عدد جذور هذه المعادلة، ويحسبها ويعرض النتائج على الشاشة. يتم عرض عرض تقريبي لنافذة البرنامج (الشكل 8).

لإكمال هذا المشروع:

أنشئ ثلاثة حقول إدخال في الإطار الأول على المشهد الرئيسي وأعطها الأسماء المناسبة: a، b، c. اجعل حدودهم مرئية.

قم بإنشاء بعض الحقول النصية الثابتة لتسمية حقول الإدخال/الإخراج: x2، =0، المميز، إلخ.

قم بإنشاء أربعة حقول نصية ديناميكية: d - المميز، r - الحل، x1 - قيمة الجذر الأول، x2 - قيمة الجذر الثاني.

أنشئ زرين "حل المعادلة" و"مسح".

بالنسبة لزر "حل المعادلة" الأول، أضف رمز البرنامج التالي، النص المميز بفاصلة عليا - تعليق، ليس من الضروري إدراجه:

إذا (أ == فارغة) (

إذا (ب == فارغة) (

إذا (ج == فارغة) (

"تتحقق العبارات الشرطية الثلاثة الأولى مما إذا كانت الحقول أ، ب، ج فارغة أم لا،

إذا كان الأمر كذلك، فإنهم يخصصون لهم قيمًا عددية تساوي الصفر

‘ يتم حساب المميز (المتغير د).

r = "لا توجد جذور"؛

‘ إذا تم استيفاء الشرط – يكون المميز أقل من صفر المتغير د

' يأخذ قيمة النص المقابلة

) وإلا إذا (د == 0) (

r = "جذر واحد";

x1 = (-ب)/(2*أ);

x2 = (-ب)/(2*أ);

‘ يتم استخدام أمر العمليات – Else If. شكرا له، ما يلي

‘ يبدأ العمل بالتحقق من الحالة. إذا كان صحيحا – التمييز

‘ يساوي الصفر، يتم إجراء حسابات مماثلة، والمتغيرات المرتبطة

"مع الحقول النصية تأخذ القيم المقابلة

ص = "اثنين من الذرة" + مركز حقوق الإنسان (255)؛

"الخط الأكثر غموضا." من الضروري أن يتم عرض نقش "جذران" ،

لكننا لم نكن محظوظين بالحرف الروسي ya. يقبل الفلاش الكود الذي

' يتوافق مع هذه الرسالة كفاصل أسطر.

‘ ولهذا الغرض، تتم إضافة قيمة الحرف 255 إلى السلسلة النصية. هذا

‘ الإجراء – يسمى ربط سلسلتين نصيتين بالتسلسل.

كد = الرياضيات. sqrt(د);

x1 = (-ب+كد)/(2*أ);

x2 = (-ب-كد)/(2*أ);

‘ تم استخدام أمر الرياضيات لحساب الجذر التربيعي. sqrt(د);

لتسميتها استخدم الأمر Objects – Mathematics – Sqrt

كل ما علينا فعله هو إضافة الكود التالي للزر الثاني:

يبدو لي أن التعليقات غير ضرورية هنا. المشروع جاهز. احفظه واختبره.

راجع الأسئلة:

ما البناء الذي يحدد العبارة الشرطية في Flash؟ ما هو الفرق بين الانشاءات: إذا (<Не установлено>)() آخر() وإذا (<Не установлено>))؟ كيف يمكنك ضبط النفي في فلاش؟ ما هي العمليات المنطقية وكيف تتم كتابتها في فلاش؟ ما الفرق بين السطرين: أ=10 و أ==10؟

5. حلقات "مع معلمة" وحلقات "أثناء"

لتنفيذ إجراءات متكررة، تستخدم لغات البرمجة بنيات خاصة تسمى مشغلي الحلقات. هناك العديد من هذه الإنشاءات الدورية، وسننظر في الإنشاءين الأكثر شيوعًا: حلقة "مع المعلمة" وحلقة "بينما". دعونا نلقي نظرة على كيفية تنفيذها في لغة Action Script.

يتم استخدام الحلقة "ذات المعلمة" عندما يكون من المعروف مسبقًا عدد المرات التي يجب فيها تنفيذ إجراء معين. يمكنك رسم التشبيه التالي - لتحضير الحساء تحتاج إلى تقشير ستة حبات بطاطس. إذا قمت بتدوين الإجراءات في شكل خوارزمية خطية، ستلاحظ أن الأوامر "خذ البطاطس"، "قشر الجلد"، "اغسل" سيتم تكرارها ست مرات. لجعل الخوارزمية أكثر إحكاما، وكذلك بحيث يمكن تغييرها بسهولة في المستقبل، فمن المنطقي أكثر كتابة هذا في شكل حلقة:

كرر (6 مرات) (

"خذ البطاطس"؛

"قشر الجلد"؛

"لغسل"؛

هنا الرقم ستة هو معلمة الدورة، عدد التكرارات. ما هو موجود في الأقواس المتعرجة هو أوامر قابلة للتكرار. سيتم إعدامهم ست مرات بالضبط.

الشكل 9

لإنشاء حلقة "مع معلمة" في Flash، تحتاج إلى تحديد الأمر Operations – For في نافذة Frame Actions. ونتيجة لذلك، سيظهر تصميم حلقة على الجانب الأيمن من الشاشة (الشكل 9).

الشكل 10

لهذا التصميم، تحتاج إلى تكوين ثلاثة حقول. الأولي – هنا تحتاج إلى كتابة القيمة الأولية لبعض المتغيرات، ويسمى أيضًا العداد. على سبيل المثال، أنا = 1. الشرط هو المدة التي سأغير فيها المتغير. على سبيل المثال، أنا<=10. Следующий – с каким шагом изменяется переменная i. Если вы хотите, чтобы переменная каждый раз увеличивалась на единицу, то можно записать i++. В результате появляется конструкция:

ل (ط = 1؛ ط<=10; i++) {

معناها كما يلي: المتغير i سيأخذ القيم من واحد إلى عشرة وسيتم تنفيذ الأوامر المضمنة بين قوسين متعرجين عشر مرات. يمكن استخدام المتغير i نفسه في نص الحلقة، ويمكن أيضًا استخدام البنيات الخوارزمية الأخرى والعبارات الشرطية وما إلى ذلك هناك.

دعونا نلقي نظرة على كيفية تنفيذ هذا التصميم في المشكلة التالية. "قم بإنشاء برنامج يقوم بحساب a للقوة n (n هي قيمة عددية). يتم إدخال قيم a و n في الحقول المناسبة. يظهر مظهر البرنامج في الشكل 10.

قم بإنشاء حقل ديناميكي واحد وأطلق عليه اسم.

إذا (ن<>0) {

‘ تكون المشكلة منطقية فقط إذا كانت n > 0، ويتم التحقق من ذلك بواسطة العبارة الشرطية

ل (ط = 2؛ ط<=n; i++) {

'بما أن المتغير an في السطر الأول قد أخذ بالفعل القيمة المساوية لـ a، فإن القيمة الأولية للعداد هي اثنان.

بالنسبة للزر "مسح"، أضف الكود التالي:

التعليقات تبدو غير ضرورية بالنسبة لي.

يتم استخدام دورة "بينما" عندما لا يكون عدد التكرارات معروفًا مسبقًا. دعنا نواصل القياس - عندما يحفر الناس البطاطس، فإنهم يقومون أيضًا بإجراءات متكررة: "احفر شجيرة"، "اجمع البطاطس"، "ضعها في كيس". الشيء هو أنه لا أحد يعرف عدد المرات التي يجب فيها تنفيذ هذه الإجراءات. ولذلك يمكن كتابة هذه الدورة على النحو التالي:

بينما (هل هناك أي بطاطس؟) افعل (

في كل مرة، بعد تنفيذ مجموعة الأوامر المحددة، من الضروري التحقق مما إذا كان الشرط قد تم استيفاءه؛ إذا كان الأمر كذلك، فسيتم تنفيذ نص الحلقة مرة أخرى.

الشكل 11

لإنشاء حلقة "أثناء" في Flash، تحتاج إلى تحديد الأمر Operations – while في نافذة إجراء الإطار. ونتيجة لذلك، سيظهر تصميم حلقة على الجانب الأيمن من الشاشة (الشكل 11).

بالنسبة لهذا التصميم، يجب تكوين حقل واحد فقط. الحالة - تحت أي حالة يتم تنفيذ الحلقة. على سبيل المثال، ذ<10.

يرجى ملاحظة أنه إذا لم يتم استيفاء الشرط في المرة الأولى التي يتم فيها استدعاء الحلقة، فلن يتم تنفيذ الحلقة أبدًا. ومن المهم أيضًا أن يتغير المتغير y أثناء تنفيذ الحلقة، وإلا فسوف يتكرر البرنامج ويتجمد. أود أيضًا أن ألفت انتباهكم إلى خصوصية تنفيذ كود البرنامج في Flash. إذا قمت بالتنقل عبر بعض خصائص الكائن أو قيمة الحقل الديناميكي، فلن ترى أن هذه الخاصية أو القيمة تتغير بسرعة عند تشغيلها. سيقوم Flash أولاً بتنفيذ البرنامج النصي بالكامل بالكامل، وفقط بعد نهاية الدورة، سيعيد رسم الشاشة ويغير هذه الخاصية أو القيمة. إن فهم هذه الميزة سيكون له أهمية خاصة بالنسبة لنا في الدرس التاسع عند دراسة الرسوم المتحركة للبرنامج.

الشكل 12

أي خوارزمية يمكن كتابتها باستخدام حلقة "مع معلمة" يمكن أيضًا كتابتها باستخدام حلقة "أثناء". ولكن العكس ليس صحيحا. هناك مشاكل لا يمكن حلها بطرق أخرى باستخدام البناء "بينما". دعونا نفكر في هذه المشكلة. "من المعروف أن سلسلة الأرقام 1، 1/2، 1/3 ... 1/n متباعدة، وهذا يعني أن مجموع هذه الأرقام يمكن أن يتجاوز أي رقم محدد مسبقًا A. ابحث عن n بحيث يكون مجموع هذه الأرقام السلسلة هي 1 + 1/2 + 1 /3 + … + 1/n ستصبح أكبر من الرقم المعطى A. يظهر مظهر البرنامج في الشكل 12."

قم بإنشاء حقل إدخال بيانات واحد وقم بتسميته a.

أنشئ حقلين ديناميكيين وقم بتسميتهما n وs على التوالي.

قم بإنشاء العدد المطلوب من التوقيعات الثابتة "a="، "n="، وما إلى ذلك.

قم بإنشاء زرين "حساب" و"مسح".

بالنسبة لزر "الحساب"، أضف الكود التالي:

' نظرًا لأنه من الضروري في الحلقة التحقق من الحالة

بينما (س

بالنسبة للزر "مسح"، فإن الكود مشابه للكود من المهمة السابقة.

على الرغم من حقيقة أنه من الناحية النظرية لأي A هناك قيمة n، ولكن في الواقع حتى بالنسبة لـ A=10، n=12367. بالنسبة للقيم الكبيرة لـ A، فإن حساب هذه المشكلة يمكن أن يستغرق دقائق أو ساعات...

راجع الأسئلة:

ما الفرق بين الحلقة "مع المعلمة" و"أثناء"؟

أي دورة أكثر عالمية؟

ما هو "العداد" في حلقة "مع المعلمة" وماذا يعني الأمر i++؟

كيفية كتابة برنامج يقوم بإجراء الأس باستخدام حلقة while؟

لماذا يتجمد البرنامج عند تنفيذ حلقة "أثناء"؟ كيف تتجنب هذا؟

6. مشروع "آلة حاسبة فلاش"

لرؤية برنامج Action Script أثناء العمل، فلنفعل شيئًا جديرًا بالاهتمام حقًا. لنصنع آلة حاسبة، يظهر مظهرها في الشكل 13.

الشكل 13

هدف المشروع: إنشاء آلة حاسبة قياسية للإنترنت مع القدرة على إجراء العمليات الحسابية القياسية. لإدخال القيم، استخدم كلاً من مفاتيح الماوس ولوحة المفاتيح القياسية.

أولاً، قم بإنشاء حقل إخراج ديناميكي وأعطه اسمًا مثل النص. ثانيًا، قم بإنشاء العدد المطلوب من الأزرار للآلة الحاسبة الخاصة بنا. ثالثا، لنبدأ بالتفكير.

ثلاث مشاكل تنتظرنا:

المشكلة الأولى هي أنه عند كتابة الرقم الأول، يتم إضافة كل رقم إلى نهاية الرقم المكتوب بالفعل، وبعد الضغط على الزر الذي يحمل صورة عملية حسابية، يتم وضع الرقم التالي في بداية السطر.

عندما ندخل الرقم الأول، مثلا 245، نضغط على الأزرار 2 و 4 و 5 بالتتابع، لكن كيف تعرف الآلة الحاسبة أننا عندما ضغطنا على الزر 2 يكون العدد مئتين وليس عشرين أو ألفين؟ بمعنى آخر، كيف تعرف الرقم الذي يجب تذكره في المتغير الأول؟

المشكلة الثالثة هي أنك تحتاج إلى استخدام ثلاثة متغيرات على الأقل للرقم الأول والثاني وكذلك النتيجة، ولكن لا يوجد سوى حقل ديناميكي واحد واسم المتغير الخاص به!

220" ارتفاع = "52" bgcolor = "أبيض" نمط = محاذاة رأسية: أعلى؛ الخلفية: أبيض"> https://pandia.ru/text/78/159/images/image013_35.gif" width = "12 " الارتفاع = "36">

لحل المشكلة الأولى، نحتاج إلى متغير إضافي، دعنا نسميه stek. والغرض منه هو تتبع الإجراء الحالي. عند إدخال الرقم الأول، يجب أن تكون قيمته واحدًا على سبيل المثال. في اللحظة التي يبدأ فيها إدخال الرقم الثاني من الرقم الأول، يجب أن تكون قيمة المتغير بالفعل، على سبيل المثال، اثنين. في اللحظة التي يبدأ فيها إدخال الرقم الثاني، يجب أن تكون قيمة المتغير مساوية بالفعل لثلاثة. في وقت حساب النتيجة، يجب أن يأخذ متغير stek مرة أخرى قيمة تساوي واحدًا حتى تصبح النتيجة الناتجة هي الرقم الأول للإجراءات اللاحقة.

كل هذا يعني أننا لا نستطيع أن نتعامل مع إطار رئيسي واحد فقط. يُنصح بإنشاء إطار رئيسي على طبقة جديدة وضبط قيمة متغير stek فيه على واحد. في الإطار الرئيسي الثاني، قم بإضافة أمر واحد فقط "الإجراءات الأساسية" - "إيقاف". انقل محتويات طبقة الآلة الحاسبة، التي تحتوي على جميع الأزرار، إلى الإطار الثاني (الشكل 14). الآن، عندما يبدأ البرنامج، يأخذ متغير stek القيمة المطلوبة، وينتقل الفيديو إلى الإطار الثاني ويتوقف. سيتم تنفيذ جميع الإجراءات الإضافية هناك.

الشكل 14

لحل المشكلة الثانية، يجب أن تكون قيمة الإدخال نصًا! عند النقر فوق رقم، على سبيل المثال 1، سيتم إضافة حرف آخر إلى السلسلة النصية المكونة من أرقام

حسنًا، سيساعد العامل الشرطي والمتغير stek على إنهاء المهمة. أقل

يتم تقديم الرمز المخصص للمفتاح 1، ويكون الرمز مشابهًا لجميع الأزرار الأخرى.

على (التحرير، اضغط على المفتاح "1") (

بالإضافة إلى (الإصدار) المعتاد، تمت إضافة القدرة على استخدام لوحة المفاتيح. keyPress "1" يعني أنه سيتم تنفيذ التعليمة البرمجية التالية ليس فقط عند الضغط على أحد الأزرار التي تظهر على الشاشة، ولكن أيضًا عند الضغط على أحد المفاتيح الموجودة على لوحة المفاتيح. انظر الشكل 15 لمعرفة كيفية تحقيق ذلك.

إذا كان متغير stek يساوي واحدًا، فإن متغير النص المرتبط بحقل الإخراج الديناميكي سيأخذ قيمة تساوي واحدًا، وسيصبح متغير stek يساوي اثنين.

) وإلا إذا (stek==2) (

‘ إذا كان المتغير stek هو اثنان، فإن الواحد ليس هو الرقم الأول في الرقم، لذلك يتم إلحاقه بمتغير النص على اليمين

) وإلا إذا (stek==3) (

‘ إذا كان المتغير stek يساوي ثلاثة، فإن الواحد هو الرقم الأول في الرقم الثاني

الشكل 15

يمكن حل المشكلة الثالثة بسهولة تامة. نحن بحاجة إلى تخزين الأرقام المدخلة في المتغيرات المتوسطة. دعونا نحلل رمز البرنامج المطابق لمفاتيح العمليات الحسابية؛ فهي تنفذ حلاً لهذه المشكلة:

على (التحرير، اضغط على مفتاح "+") (

ورمز البرنامج المقابل لمفتاح المساواة.

على (التحرير، اضغط على مفتاح "=") (

text = parseFloat(a)+parseFloat(text);

) وإلا إذا (س = = "م") (

text = parseFloat(a)-parseFloat(text);

) وإلا إذا (o=="u") (

text = parseFloat(a)*parseFloat(text);

) وإلا إذا (س = = "د") (

text = parseFloat(a)/parseFloat(text);

يجب أن يكون كل شيء واضحًا في الجزء الأول. إذا تم الضغط على مفتاح الزائد، فإن متغير آخر o يأخذ القيمة p (زائد)، ويتم تخزين قيمة النص المتغير في متغير مؤقت a. وعندما يتم الضغط على مفتاح المساواة أخيرا، يجب على الكمبيوتر إضافة القيمة المخزنة في النص المتغير والمتغير a. بما أن القيم النصية مخزنة في متغيرات، فمن الضروري استخدام الدالة parseFloat()، التي تحول التعبير النصي إلى رقم. للاتصال به، استخدم الأمر Functions – parseFloat.

إطلاق المشروع، واختباره. هذا لا يعني أن الآلة الحاسبة الناتجة مثالية. ليس لديها وظائف رياضية قياسية؛ لتنفيذ العديد من الإجراءات على التوالي، تحتاج دائمًا إلى الضغط على زر المساواة. ولكن يمكنك إجراء جميع التحسينات بنفسك. لقد تعلمنا الشيء الرئيسي. إنشاء منتجات برمجية بسيطة باستخدام Macromedia Flash.

راجع الأسئلة:

ما هي المشاكل التي واجهتنا أثناء إنشاء الآلة الحاسبة؟ ما هو الغرض من المتغير stek؟ لماذا يجب تخزين تعبير نصي في متغير عند الضغط على مفتاح الرقم؟ ما هو الغرض من وظيفة parseFloat()؟ هل تقترح فكرة عن كيفية إجراء العديد من العمليات الحسابية "على التوالي" دون الضغط على مفتاح "يساوي" بينهما؟

7. البرمجة الشيئية.

إذا كنت معتادًا على البرمجة بلغات مثل Pascal أو Basic، فمن المحتمل أنك لاحظت أن البرمجة في Flash مختلفة تمامًا. الشيء هو أن Action Script ليس أقرب إلى لغات البرمجة الإجرائية، بل إلى اللغات الموجهة للكائنات، مثل Visual Basic أو Delphi.

لن أخوض في المقارنة بين هذه اللغات بالتفصيل، خاصة وأن الأكشن سكريبت ليست لغة مستقلة، فنحن بحاجة إلى معرفة المفاهيم الأساسية. أرجو أن تسامحني على الفور على العرض التقديمي الفضفاض إلى حد ما لمفهوم أساسي مثل البرمجة الموجهة للكائنات (OOP)، والذي يعتمد على مفاهيم صعبة مثل التغليف وتعدد الأشكال.

يعتمد OOP على نموذج كائن التطبيق، حيث تكون جميع الكائنات عناصر من فئة معينة (الشكل 16). لذا فإن تطبيق الفلاش يعتمد على فيلم ويتكون من مشهد واحد أو عدة مشاهد. تحتوي المرحلة على كائنات رسومية ومكتبة. يحتوي المشهد أيضًا على جدول زمني حيث توجد الإطارات. يمكن أن يكون للإطارات الرئيسية ورموز المقاطع ورموز الأزرار رمز الإجراء النصي الخاص بها.

في اللغات الشيئية الحقيقية، يمكن الوصول إلى كل عنصر من عناصر نموذج الكائن برمجيًا. في Macromedia Flash، يمكنك فقط الوصول إلى بعض هذه العناصر برمجيًا باستخدام Action Script.

بشكل عام، لدى Flash القدرة على إنشاء متغيرات الكائن، ولكن هذا خارج نطاق الدورة الاختيارية لدينا.

https://pandia.ru/text/78/159/images/image020_25.gif" width = "612" height = "420 src = ">

الشكل 16

يمكنك دائمًا عرض نموذج الكائن لمقطع الفيديو الخاص بك باستخدام لوحة "Video Explorer" العائمة.

الشكل 17 (يظهر جزءًا من نموذج الكائن للمشروع السابق
حاسبة فلاش)

الكائنات القابلة للتغيير لها خصائص، أي أشياء يمكن تغييرها. على سبيل المثال، يحتوي مقطع الفيديو على خاصية الإحداثيات X؛ ويحتوي Action Script على طرق يمكننا من خلالها تغيير هذه الخاصية. (وبالتالي إنشاء برامج الرسوم المتحركة). المزيد عن هذا في الفصل التالي.

كل استدعاء لرمز البرنامج يكون مصحوبًا بحدث ما، مثل هذا الحدث يمكن أن يكون الضغط على زر على الشاشة أو الضغط على مفتاح لوحة المفاتيح.

راجع الأسئلة:

تسمية لغات البرمجة الشيئية. ما هي العناصر التي تشكل نموذج كائن فلاش؟ ما هي العناصر التي يمكنك تغييرها برمجيا؟ اشرح معنى مصطلحات الكائن، الخاصية، الطريقة، الحدث. ما الأحداث التي يتفاعل معها فيلم Flash؟

8. التغيير البرمجي للخصائص.

يمكن أن تحتوي رموز مكتبة نوع مقطع الفيديو على خصائص قابلة للتحرير. هذا يعني أنه يمكنك تغيير حجم كائن معين أو موضعه أو رؤيته برمجيًا. كيف يتم تنفيذ هذا؟

الشكل 17

ارسم كائنًا، مثل المستطيل.

ضعه في المكتبة، ويجب أن يكون مقطع فيديو؛

في لوحة "النسخ" العائمة، يجب عليك تحديد اسم هذا الكائن، على سبيل المثال، zzz (الشكل 17).

في لوحة "Frame Actions"، حدد أمر Operations - Set Property. يحتوي هذا الأمر على ثلاثة حقول مخصصة. الخاصية هي خاصية الكائن الذي نريد تغييره، على سبيل المثال، _x (x Position)، موضع الكائن على طول المحور X هو اسم نسخة الكائن، في هذه الحالة zzz. القيمة - ما تساويه الخاصية المحددة؛ قد يحتوي هذا الحقل على رقم أو تعبير محدد، ولكن على أي حال، لا تنس التحقق من مفتاح "التعبير" (الشكل 18).

هذا كل شيء، إذا قمت بتشغيل المشروع، سترى أن المستطيل الخاص بك قد تحرك والآن إحداثيات مركزه ستكون مائة.

الشكل 18

توجد المجموعة الكاملة للخصائص القابلة للتغيير في نافذة "خصائص الإطار"، قسم الخصائص، ويمكن العثور على معناها في الأدبيات. دعونا نلقي نظرة على الخصائص الرئيسية، والتي سنحتاج إلى الكثير منها لاحقًا في المشروع:

ألفا – شفافية الكائن، تتراوح من الصفر – الشفافية الكاملة، إلى 100 الرؤية الكاملة؛

Visible هي خاصية مشابهة جدًا وتعني الرؤية. تحتوي الخاصية على قيمتين فقط – صفر (الكائن غير مرئي) وواحدة (الكائن مرئي بالكامل)؛

الشكل 19

الارتفاع - ارتفاع الكائن، مقاسًا بالبكسل؛

العرض - عرض الكائن، ويقاس بالبكسل؛

الدوران – دوران جسم بالنسبة إلى مركزه، ويقاس بالدرجات؛

إحداثيات س - س؛

الشكل 20

الإحداثي Y – y، إحداثيات الزاوية اليسرى العليا تأخذ القيمة المساوية (0,0)؛

Xscale – تغيير المقياس على طول المحور x؛

Yscale – تغيير المقياس على طول المحور y؛.

كما لاحظت، تبدأ جميع الخصائص بشرطة سفلية.

نظرًا لأننا لا نحتاج إلى تغيير خصائص الكائن برمجيًا فحسب، بل نحتاج أيضًا إلى تتبع قيمته الحالية، فإننا نحتاج إلى وظيفة GetProperty. يتم استدعاء الأمر في نافذة "إجراءات الإطار" الوظائف - GetProperty () (الشكل 19). تحتوي الدالة على معلمتين. الهدف – الهدف، بدلاً من كلمة الهدف يتم كتابة اسم نسخة من رمز الكائن. الخاصية - خاصية قابلة للتغيير، بدلاً من خاصية الكلمة، على سبيل المثال، يمكنك كتابة _x، والحصول على إحداثي x الحالي. تُستخدم هذه الوظيفة، كقاعدة عامة، مع أمر تعيين متغير أو داخل أمر آخر (الشكل 20).

x = getProperty(zzz, _x);

يعني هذا الأمر أنه سيتم تخزين الإحداثي الحالي للكائن، المسمى zzz، في المتغير x.

دعونا نلقي نظرة على كيفية استخدام الخصائص المتغيرة في المشروع. قم بإنشاء كائن يمكن تغيير خصائصه. تظهر شاشة المثال في الشكل 21.

الشكل 21

قم بإنشاء كائن وتحويله إلى رمز مقطع فيديو.

قم بتسمية نسخة هذا الرمز في لوحة النسخ العائمة، مثل "Ob".

إنشاء مجموعة من الأزرار. من حيث المبدأ، يمكن أن تكون مجموعة الأزرار عشوائية؛ يستخدم المشروع أزرارًا تغير إحداثيات الكائن، بالإضافة إلى تغيير حجم الكائن وشفافيته.

أضف الكود التالي إلى الزر الذي يحرك الكائن لأعلى:

على (التحرير، اضغط على مفتاح " ") {

setProperty("أوب"، _y،

getProperty(Ob, _y) - 5);

يقوم هذا الأمر بتغيير خاصية الكائن "Ob"، إحداثياته ​​y. لكي يتحرك جسم ما لأعلى، يتم حساب إحداثيته الحالية وطرح 5 منه.

الأزرار الأخرى لها رمز مماثل، وتختلف فقط في الخاصية التي ستقوم بتغييرها. ولنأخذ مثالاً آخر:

setProperty("Ob", _xscale, getProperty(Ob, _xscale) + 5);

setProperty("Ob", _yscale, getProperty(Ob, _yscale) + 5);

يزيد هذا الرمز من حجم الكائن. لزيادة الحجم بشكل متناسب، تحتاج إلى زيادة الحجم في كل من المحور السيني والمحور الصادي. ولذلك، هناك أمرين في هذا البرنامج النصي.

راجع الأسئلة:

ما هي رموز المكتبة التي يمكن الوصول إليها برمجيا؟ كيفية تنظيم هذا؟ ما هي خصائص الأشياء التي قمت بدراستها؟ ما هو معناها؟ ما الفرق بين أوامر setProperty وgetProperty؟ اشرح معنى السطر: setProperty("Ob", _xscale, getProperty(Ob, _xscale) + 5); هل يمكنك أن تتخيل كيف يمكنك تغيير خصائص الكائنات الأخرى، مثل الأزرار؟

9. دورات ثلاثية الإطارات. الرسوم المتحركة البرمجيات.

يتيح لك تغيير خصائص الكائن برمجيًا إنشاء رسوم متحركة برمجية. على عكس الرسوم المتحركة القياسية، التي يمكن إنشاؤها في Macromedia Flash، يمكن التحكم في الرسوم المتحركة البرمجية مع تقدم الفيديو.

يبدو أنه يكفي تغيير خصائص الكائن بشكل دوري، على سبيل المثال إحداثي x، وسيبدأ الكائن في التحرك، لكن الأمر ليس كذلك. والحقيقة هي أنه في فلاش، يتم تنفيذ رمز البرنامج أولا، وعندها فقط يحدث التغيير، يتم إعادة رسم الشاشة. لذلك، سيتم نقل الكائن على الفور من نقطة البداية إلى النقطة النهائية، ولن تعمل الحركة السلسة. يكمن التغلب على هذا التناقض في استخدام دورات ثلاثية الإطارات.

فكرتهم هي التالية:

في الإطار الرئيسي الأول، يتم تعيين الثوابت الأولية والموضع الأولي للكائن.

في الإطار الرئيسي الثاني، تتغير خاصية الكائن بمقدار محدد.

يحتوي الإطار الرئيسي الثالث على أمر واحد فقط للانتقال إلى الإطار الثاني.

على الرغم من عدم تحديد الدورة بشكل صريح، فإن الخصائص ستتغير بشكل دوري. من خلال تغيير الخصائص في الإطار الثاني برمجيًا، سيقوم الكمبيوتر بتغيير موضع الكائن، وسيقوم الإطار الثالث بتكرار هذه العملية.

دعونا نلقي نظرة على كيفية تنفيذ دورة ثلاثية الإطارات في الممارسة العملية. لنقم بإنشاء مقطع فيديو تتحرك فيه السيارة من حافة إلى حافة الورقة، وتدور في الاتجاه المعاكس وتستمر في التحرك إلى أجل غير مسمى. لدى المستخدم القدرة على تغيير سرعة حركته أو إبطائها أو زيادتها. يظهر مظهر الفيديو، بالطبع بدون حركة، في الشكل 22. وفيما يلي تحليل لكود البرنامج الخاص بتنفيذ هذا المشروع.

الشكل 22

قم بإنشاء رسم سيارة على الطبقة الأولى، أو قم باستيراد رسم جاهز. أعد تسمية الطبقة "سيارة"، وقم بتمديد الإطار الرئيسي إلى الإطار الثالث بالضغط على المفتاح F5 في الإطار الثالث.

تحويل رسم إلى رمز، مثل مقطع فيديو. قم بتسمية نسخة هذا الرمز في لوحة النسخ العائمة، مثل "سيارة".

قم بإنشاء طبقة جديدة، وأعد تسميتها "الأزرار" وأنشئ زرين عليها "أسرع" و"أبطأ".

في طبقة الإجراءات الجديدة، أنشئ ثلاثة إطارات رئيسية فارغة واضغط على F7 ثلاث مرات.

في الإطار الرئيسي الأول، أضف الكود التالي:

setProperty("car", _x, 50);

يرجى ملاحظة أن هذا الرمز غير محاط بأقواس متعرجة ولا يوجد تشغيل (تحرير) في البداية، أي أن هذا الرمز يشير تحديدًا إلى الإطار، وليس الزر. في هذا الجزء، في السطر الأول من الكائن المسمى سيارة، تم تعيين الخاصية _x (الإحداثيات على طول المحور x) على 50. بعد ذلك، يتم تقديم ثلاثة متغيرات، وهنا معناها: dx - قيمة حركة واحدة لـ الكائن، وكذلك اتجاه الحركة (انظر أدناه)، MinX وMaxX هما الحد الأدنى والحد الأقصى لإحداثيات الكائن الممكنة، على التوالي. بشكل عام، يمكنك الاستغناء عن هذه المتغيرات، ولكن استخدامها يجعل تصحيح مشروعك أسهل بكثير. أعتقد أن فهمًا أعمق سيظهر عند تحليل المزيد من التعليمات البرمجية.

في الإطار الرئيسي الثاني، أضف الكود التالي:

x = getProperty(car, _x);

‘ يقوم المتغير x بتخزين الموضع الحالي للكائن.

إذا (x<=MaxX) {

setProperty("car"، _xscale, -100);

‘ بناء عبارتين شرطيتين متداخلتين. أول واحد يتحقق من dx> 0. إذا كان الأمر كذلك، فإن السيارة تتحرك إلى اليمين. الشرط الثاني ×<=MaxX проверяет не достиг ли автомобиль максимально возможной координаты. Если это так то изменяется координата x объекта «car». Если второе условие не выполняется, то максимальная координата достигнута, как результат масштаб по координате х изменяется на -100% (автомобиль переворачивается) и единичного перемещение объект изменяется на противоположное.

إذا (x>=MinX) (

setProperty("car", _x, x+dx);

setProperty("car"، _xscale, 100);

‘ مرة أخرى، بناء عبارتين شرطيتين متداخلتين. والغرض منها مشابه للغرض السابق.

في الإطار الرئيسي الثالث، أضف الكود التالي:

gotoAndPlay(2);

إذا قمت بتشغيل المشروع الآن، سترى أن الكائن يتحرك إلى اليسار واليمين. دعونا نضيف بعض التعليمات البرمجية البسيطة التي تزيد السرعة وتقللها.

لتغيير السرعة، تحتاج إلى زيادة مقدار وحدة حركة الكائن. الكود المطابق للزر "الأسرع" موضح أدناه:

على (التحرير، اضغط على مفتاح " ") {

‘ إذا كانت حركة الوحدة موجبة فإن الضغط على الزر يزيد هذه الحركة بمقدار واحد. يرجى ملاحظة أن نفس الإجراء سيحدث إذا قمت بالضغط على الزر "الأيمن" بلوحة المفاتيح.

الكود المطابق للزر "الأبطأ" موضح أدناه:

على (التحرير، اضغط على مفتاح " ") {

الغرض مشابه للجزء السابق. هذا كل شئ. إطلاق المشروع، واختباره. سنطبق المعرفة المكتسبة في المشروع الأخير، والتي ستجمع بين المشروعين السابقين وإنشاء لعبة.

راجع الأسئلة:

لماذا لا يمكن تنفيذ الرسوم المتحركة البرمجية باستخدام حلقة "أثناء" عادية؟ اشرح الغرض من كل إطار في دورة ثلاثية الإطارات. اشرح معنى المتغير dx في المشروع الموصوف. لماذا يوجد السطر setProperty ("car"، _xscale، 100) في كود البرنامج؟ أضف زر "إيقاف" إلى المشروع الذي تم إنشاؤه.

10. مشروع "لعبة تفاعلية - ميدان الرماية".

هدف المشروع: إنشاء لعبة معرض إطلاق نار تفاعلية. سيتم خلط الأرنب (الهدف) في الملعب، والذي يجب ضربه باستخدام هدف متحرك. يجب أن تتم النتيجة في أقل عدد ممكن من الخطوات (محسوبة). يظهر عرض تقريبي للشاشة في الشكل 23.

لتنفيذ هذا المشروع، تحتاج إلى إنشاء كائن مستهدف (في هذه الحالة، رسم مستورد للأرنب). يجب أن تتحرك بنفس طريقة السيارة من المشروع السابق. تحتاج أيضًا إلى إنشاء كائن مستهدف ومجموعة من الأزرار التي تحرك هذا الكائن من اليسار إلى اليمين ومن أعلى إلى أسفل. تحتاج أيضًا إلى إنشاء ستة حقول إخراج ديناميكية. اثنان لعرض إحداثيات الهدف، واثنان لعرض إحداثيات الهدف، وواحد لعرض النتيجة، وواحد لحساب عدد المحاولات.

من حيث المبدأ، هذه هي نفس الدورة ثلاثية الإطارات. في الإطار الأول قمنا بتعيين المعلمات الأولية:

z_x = عشوائي(450)+50;

z_y = عشوائي(230) + 50;

pr_x = getProperty(pr, _x);

pr_y = getProperty(pr, _y);

setProperty("z", _x, z_x);

setProperty("z", _y, z_y);

setProperty("buh", _visible, 0);

د - دقة الإصابة (المزيد حول هذا المتغير لاحقًا)؛ ح - خطوة واحدة لحركة "الأرنب"؛ rez - عدد التكرارات، في البداية هذا المتغير يساوي صفر؛ z-x وz-y هما الإحداثيات الأولية لـ "الأرنب"، ويتم تعيينهما باستخدام الدالة العشوائية القياسية، ويتم استدعاؤها باستخدام أمر الكائنات - الرياضيات - عشوائي في نافذة إجراءات الإطار؛ ثم يتم تعيين خصائص الهدف (الكائن "z") على الإحداثيات العشوائية التي تم الحصول عليها؛ وأخيرًا، في السطر الأخير، تم ضبط رؤية "اللقطة" على الصفر، أي أن الكائن "buh" غير مرئي في الوقت الحالي.

الشكل 23

وفيما يلي الكود المطابق للإطار الرئيسي الثاني:

z_x = getProperty(z, _x);

إذا (z_x>=max_x) (

setProperty("z", _xscale, -50);

إذا (z_x<=min_x) {

setProperty("z", _xscale, 50);

setProperty("z", _x, z_x+h);

كل شيء يكرر تمامًا الكود المماثل للإطار الثاني من المهمة السابقة.

يحتوي الإطار الثالث على أمر واحد فقط:

gotoAndPlay(2);

فهو يسمح لك بـ "تكرار" حركة الهدف.

إضافة كود للأزرار التي تحرك الهدف يمينًا ويسارًا، لأعلى ولأسفل. على سبيل المثال، إليك الكود الخاص بنقل الهدف إلى اليمين:

على (التحرير، اضغط على مفتاح " ") {

pr_x = getProperty(pr, _x);

setProperty("pr", _x, pr_x + 10);

pr_x = getProperty(pr, _x);

في هذا الجزء، يتم تكرار الأمر pr_x = getProperty (pr, _x) مرتين، وهذا ليس خطأ. إنها المرة الأولى التي نحتاج فيها إلى هذا الأمر لتحديد موضع الهدف قبل التحرك، وفي المرة الثانية نحتاج إلى إحداثيات جديدة للهدف من أجل مقارنتها بإحداثيات الهدف عند إطلاق النار.

كل ما تبقى هو إضافة رمز زر النار. يتم عرضه أدناه:

على (التحرير، اضغط على مفتاح " ") {

‘ بغض النظر عن فعالية اللقطة, يزيد متغير rez بمقدار واحد.

setProperty("buh", _x, pr_x);

setProperty("buh", _y, pr_y);

setProperty("buh", _visible, 1);

ينتقل الرمز الذي يحاكي "الطلقة" إلى إحداثيات مكان تواجد الهدف حاليا وتصبح رؤيته تساوي واحدا.

TellTarget("بوه") (

gotoAndPlay(2);

"في المشروع، "اللقطة" هي مقطع تظهر فيه دائرة حمراء. ولمنع حدوث ذلك طوال الوقت، يتم استخدام أمر stop() في الإطارين الأول والأخير من المقطع. يخبر أمر TellTarget الكمبيوتر بأن الأوامر التالية الموجودة في الأسهم المتعرجة تنطبق فقط على الكائن "buh" ويتم تنفيذها فيه. بالانتقال إلى الإطار الثاني، تبدأ الرسوم المتحركة داخل المقطع "buh".

إذا (Math. abs (pr_x - z_x)

text = "بالضبط على الهدف!";

‘ في أي حالة يجب أن نفترض أننا أصابنا الهدف – إذا كان الفرق بين إحداثيات الهدف والهدف أقل من دقة الإصابة (متغير d في الإطار الأول). بيت القصيد هو أن كلا الشرطين مستوفيان في نفس الوقت لإحداثيات x و y، لذلك يتم استخدام الرابط المنطقي AND (انظر الدرس 4). وأخيرًا، يجب علينا مقارنة معامل فرق الإحداثيات؛ ولهذا الغرض يتم استخدام الدالة الرياضية القياسية Math. عضلات المعدة(). إذا تم استيفاء جميع الشروط، فإن الحقل الديناميكي "النص" يأخذ القيمة "بالضبط على الهدف!" ويتوقف الفيديو.

النص = "الماضي!";

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

راجع الأسئلة:

ما هي التقنيات المستخدمة في هذا المشروع؟ ما هو الغرض من الأمر TellTarget("buh")؟ ما الذي يجب تغييره في البرنامج لتقليل مجال حركة الأرنب بمقدار 100 بكسل؟ لماذا، عند مقارنة الإحداثيات المستهدفة والإحداثيات المستهدفة، يجب علينا حساب معامل البيانات الإحداثية؟ كيف يتم تنفيذ ذلك في فلاش؟ اعرض الخيارات التي تعقد اللعبة واقترح طرق تنفيذها.

لقد تطرقنا للتو إلى البرمجة في Flash. ظلت مشكلات مثل العمل مع المصفوفات دون تغيير؛ ولم نعمل مع حقول الصوت أو النص القابلة للتمرير؛ ولم نعمل مع متغيرات الكائنات. لا يزال هناك العديد من الأسرار والمفاجآت في Flash؛ واستكشافها أمر منفصل. ربما سيجد المؤلف الوقت لوصف هذه الجوانب المثيرة للاهتمام.

إذا كنت مهتمًا بهذه الدروس الأولى، إذا كنت مهتمًا بالبرمجة بالفلاش، فهذه الليالي القليلة التي شرحت فيها الخطوات الأولى في برنامج ماكروميديا ​​فلاش الرائع لم تذهب سدى. يمكنك الاتصال بي عبر البريد الإلكتروني، والتعبير عن رغباتك وتعليقاتك، وطرح الأسئلة، ولكن على أي حال، شكرًا لك على قراءة هذا النص.

للحصول على. ملف exe، يجب عليك إنشاء فيلم فلاش في برنامج ماكروميديا ​​فلاش، ونشره (القائمة ملف - نشر). ونتيجة لذلك، لديك ملف مع ملحق . swf، يمكنك مشاهدته إما باستخدام برنامج Flash Player (يتم تثبيته تلقائيًا عند تثبيت Macromedia Flash. افتح الملف الذي يظهر، وحدد القائمة ملف - إنشاء جهاز عرض،تعيين اسمك. ملف إكس.

على الرغم من أنك ترى مستطيلاً، كما في الصورة، إلا أنه عند الكتابة سيبقى، لكنه لن يكون مرئيًا في الفيديو نفسه.

على الأرجح، عند محاولة كتابة نص بأحرف روسية، ستظهر كلمة "abracadabra" على شاشتك. ويرجع ذلك إلى أن الخط الافتراضي في برنامج الفلاش هو Times New Roman، والذي لا يحتوي على وصف للأحرف السيريلية. لذلك، قبل الكتابة، قم بتثبيت خط يدعم السيريلية، على سبيل المثال، Times New Roman Cyr أو Arial Cyr.

إذا كنت تقرأ النسخة الإلكترونية من هذا الدليل، فيمكنك نسخ هذا الجزء ثم لصقه عبر الحافظة في نافذة إجراء الإطار.

في الإصدار الرابع من Macromedia Flash، تم فرض حد 20000 تكرار، وعند محاولة تنفيذ عدد أكبر من الدورات، توقف الكمبيوتر عن تنفيذ التعليمات البرمجية لتجنب التجميد. بدءًا من الإصدار الخامس، تمت إزالة القيد؛ يعرض الكمبيوتر فقط رسالة تفيد بأن البرنامج يتباطأ ويمنحك الفرصة لإنهاء البرنامج بنفسك.

لإضافة إطار رئيسي جديد، انقر فوق الإطار رقم 2 في طبقة الإجراء واضغط على F7. سيقوم Flash بإنشاء إطار رئيسي فارغ جديد.

لاستيراد صورة، حدد الأمر ملف - استيراد من تنسيقات أخرى. كن حذرًا إذا كان المجلد الذي حددته يحتوي على ملفات بنفس الاسم، على سبيل المثال. سيارة 1؟ car2، وما إلى ذلك، فسيعرض الكمبيوتر استيرادها جميعًا مرة واحدة. إذا قمت باستيراد رسم متجه، فسوف ينتهي به الأمر على اللوحة القماشية كمجموعة من الكائنات المجمعة. لا تنس تجميعها في كل واحد. إذا قمت باستيراد صورة نقطية، فسيتم وضعها تلقائيًا في المكتبة، ونرى نسخة منها على المسرح.

أحد خيارات استخدام تقنية Flash هو إنشاء تطبيقات صغيرة من جانب العميل. على سبيل المثال، تناقش المقالة إنشاء آلة حاسبة على موقع ويب لحساب التأمين على السيارات.

نجح Macromedia () باستخدام Flash الخاص به في التقاط توقعات السوق وإنشاء منتج ممتاز. ومع ذلك، فإن النقطة ليست في برنامج واحد، حتى لو كان جيدا للغاية. اليوم، تتطلب الحياة غالبًا من متخصصي تكنولوجيا المعلومات اختيار الأدوات وفقًا للمهمة التي بين أيديهم، وفي بعض الأحيان يتعين عليك إتقان لغة جديدة أو منتج برمجي جديد في غضون أيام قليلة فقط. إن الطرق المقترحة أدناه لحل بعض المشاكل في مجال إنشاء مواقع الويب لا تتطلب الكثير من الدراسة. يمكن للمبرمج ذي الخبرة استخدام هذه التقنية على الفور في تطويره. سيحتاج الشخص الذي لديه خبرة أقل في البرمجة إلى بعض الوقت لإتقان المفاهيم الأساسية، وبعد ذلك يمكنه زيادة تعقيد تصميماته تدريجيًا مع اكتساب الخبرة.

في هذه المقالة سننظر في مسألة مثيرة للاهتمام للغاية وهي استخدام تقنية Flash - إنشاء تطبيقات صغيرة من جانب العميل. يمكن أن يكون هذا مفيدًا لكل من المبرمجين والمصممين. غالبًا ما يتجاهل المبرمجون بشكل غير مبرر الإمكانيات التي يوفرها Flash، نظرًا لأن لديهم بالفعل أدوات قوية جدًا تحت تصرفهم. في بعض الأحيان لا يدرك المصممون أنه يمكن استخدام Flash ليس فقط لإنشاء المقدمات والقوائم وعناصر تصميم مواقع الويب الجميلة. وبالتالي، فإن هذه المقالة مخصصة لأولئك الذين ليسوا كسالى لإضافة أدوات جديدة إلى ترسانتهم ولا يخشون تعلم أدوات جديدة.

مكان استخدام الفلاش

أثناء إنشاء موقع ويب، يتعين عليك دائمًا حل مشكلة اختيار تقنية أو أخرى. يعتمد الاختيار النهائي عادةً على عاملين: المهمة المطروحة وترسانة الأدوات التي يملكها المطور أو فريق التطوير.

هناك ثلاث طرق لحل مشاكل البرمجة للشبكة: إما تشغيل التطبيق بالكامل على جهاز العميل دون الوصول إلى الخادم، أو أن مثل هذا التطبيق ينفذ جزءًا فقط من العمليات، بينما يترك الباقي للخادم، أو كل العمليات تقريبًا. يتم تنفيذ العمل عن طريق برامج الخادم.

من الأفضل حل بعض المشكلات على جانب الخادم، وفي بعض الأحيان لا يوجد بديل. لكن المبرمجين سعوا دائمًا إلى تقليل الحمل على الخادم...

لذلك، سوف ننظر في بناء تطبيقات العميل باستخدام فلاش. دعونا نناقش متى نستخدم هذه التكنولوجيا، ومتى يكون من الأفضل اللجوء إلى الأساليب التقليدية لـ JavaScript وJava وVBScript.

أولاً، يجب أن تكون واضحًا أن Flash لم يتم تصميمه لبرمجة التطبيقات الكبيرة. يعد الإصدار 4 من ActionScript قديمًا جدًا من وجهة نظر أي شخص على دراية بالبرمجة. والغرض الرئيسي منه هو التحكم في تسلسل تشغيل الفيلم، وتنزيل الموارد من الخادم، ومعالجة التفاعل بين الفيلم والمستخدم. تفتقر هذه اللغة إلى الأدوات اللازمة لإنشاء المصفوفات والعمل معها ومعالجة الوظائف الرياضية؛ وسائل العمل بالخيوط متواضعة للغاية. في الإصدار 5 تغيرت اللغة بشكل كبير وأصبحت تشبه معظم لغات البرمجة الأخرى للإنترنت، لكن في الوقت الحالي سننظر إلى مثال تم صنعه في ActionScript الإصدار 4، حيث أن هذا الإصدار أسهل للمبرمجين المبتدئين ومصممي الويب لفهم. وفي الوقت نفسه فإن التحول إلى الإصدار الخامس بعد اكتساب بعض الخبرة لن يسبب مشاكل.

لذلك، يمكن تعريف المجال الرئيسي في برمجة تطبيقات العميل، التي لا يوجد فيها منافسين لتقنية Flash، على أنها تطبيقات صغيرة ذات حسابات رياضية بسيطة وتحليل النص، حيث تتطلب واجهة فريدة ووقت التطوير محدودًا. هذه عبارة عن آلات حاسبة مختلفة تفحص الأنظمة والألعاب وأدوات رسم الرسوم البيانية والرسومات البسيطة (هنا لا نتحدث عن التطبيقات التي لا يمكنها الاستغناء عن التفاعل مع الخادم).

يفتح استخدام Flash لمثل هذه التطبيقات الكثير من الاحتمالات للمصمم (محدود بخياله فقط) عند إنشاء واجهة مستخدم. بدلاً من الجمع بين العديد من التقنيات لحل مشكلة واحدة، يمكنك القيام بكل شيء في برنامج واحد - محرر أفلام Flash وتصحيح النتيجة على الفور. علاوة على ذلك، وفقًا لماكروميديا، فإن ما يقرب من 95% من مستخدمي الإنترنت لديهم بالفعل مشغل مثبت لتشغيل أفلام فلاش. لننتقل الآن إلى مثال محدد يمكنه توضيح استخدام تقنية Flash لتطوير تطبيق معين.

صياغة المشكلة

على سبيل المثال، سوف نقوم بإنشاء آلة حاسبة لحساب التأمين على السيارات. عندما تم تطوير موقع الويب الخاص بإحدى شركات التأمين، أعرب العملاء، على وجه الخصوص، عن رغبتهم في إنشاء آلة حاسبة لحساب مبلغ دفع التأمين للتأمين على المركبات بسرعة، وتكلفة بوليصة المسؤولية المدنية وبعض أنواع التأمين على الممتلكات. سننظر في المهمة الأولى فقط - حساب التأمين على السيارات (الحالة الثانية أبسط بكثير وليست مثيرة للاهتمام).

أظهر تحليل ظروف المشكلة أنه على الرغم من وجود عدد كبير من التحفظات والاستثناءات، فإن مخطط حساب التأمين على السيارات تم التحقق منه بشكل واضح ويمكن خوارزميته بسهولة.

عند اختيار أداة التنفيذ، تم أخذ الظروف التالية بعين الاعتبار.

  • كانت الحسابات الرياضية بسيطة للغاية وتتلخص في إجراء العمليات الحسابية، والتحقق من الشروط، والتقريب إلى عدد صحيح، وما إلى ذلك.
  • وكان من المرغوب فيه الابتعاد عن الواجهة التقليدية لنماذج الاستبيان السائدة على شبكة الإنترنت. كان من الضروري منح المستخدم فرصة "اللعب" بالواجهة، وتغيير قيم الحساب الأولية عدة مرات كما يريد، والحصول على النتيجة على الفور. كان من المستحسن معالجة جميع الأخطاء على الفور.
  • كان من المرغوب فيه تجنب التفاعل مع الخادم عند إجراء العمليات الحسابية.
  • وبطبيعة الحال، فإن العامل الذي لعبه أيضًا هو أن مؤلف هذه السطور كان على دراية تامة بتقنية Flash ولديه خبرة في البرمجة في ActionScript.

بدت فرصة إنشاء تطبيق مستقل تمامًا بواجهة فريدة مغرية جدًا بحيث لم تكن هناك حاجة للتردد لفترة طويلة في اختيار الأداة. لذلك اخترنا فلاش.

إنشاء تطبيق

هيكل البرنامج والخوارزمية

يظهر الشكل العام لنموذج الحساب لتحديد تكلفة التأمين في الشكل. 1. تختلف معدلات التعريفة حسب نوع المخاطر المؤمن عليها والمجموعة المشروطة للسيارة (منفصلة للسيارات المحلية والمستوردة) ومدة خدمتها؛ عادة ما تضعها شركة التأمين في جدول. هذه هي البيانات الأساسية المطلوبة لحساب دفع التأمين.


أرز. 1. منظر عام لنموذج احتساب تأمين السيارة.

عند الحساب، يختار المستخدم العلامة التجارية لسيارته من القائمة، ويدخل مدة خدمة السيارة (سنة الصنع)، ويختار المخاطر في أي مجموعة أو مجموعة المخاطر بأكملها (تأمين الهيكل).



أرز. 2. اختيار ماركة السيارة.

تظهر نافذة القائمة المقابلة في الشكل. 2. لتبسيط الاختيار وإخفاء المنطق الداخلي للبرنامج، نستخدم زرًا مختلفًا لكل ماركة سيارة. عند الضغط على هذا الزر يتم تنفيذ الكود التالي:

تشغيل (إصدار) بدء تحديد الهدف ("/") تعيين المتغير: "AvtoTypeText" = "VAZ 2115" تعيين المتغير: "CarsGroup" = 1 نهاية إخبار الهدف انتقل إلى وتوقف (HideWin) وانتهى

هنا يتم تعيين متغير AvtoTypeText على الفور، والذي يتم استخدامه لاحقًا للإخراج إلى حقل نص ديناميكي لعرض العلامة التجارية المحددة. بالإضافة إلى ذلك، يتم إنشاء المجموعة التي تقع فيها السيارة. يتم تضمين هذه البيانات في كتلة Tell Target. تشير علامة "/" إلى أن المتغيرات موجودة في الطبقة الرئيسية التي تحتوي على كافة المقاطع الأخرى.

المشغل أو العامل اذهب إلى وتوقف (HideWin)يضبط النموذج على حالة غير مرئية بعد النقر فوق الزر، أي يؤدي النقر فوق الزر إلى إغلاق النافذة في نفس الوقت. وهذا له ما يبرره، لأن اختيار ماركة السيارة واضح.

إنشاء عناصر واجهة فريدة من نوعها

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

لذلك، لاستخدام الحالات المستقرة، من الضروري إنشاء عدة إطارات رئيسية - وفقًا لعدد الحالات. في كل إطار نضع العناصر التي ينبغي أن تكون مرئية في هذه الحالة. إذا لم يكن هناك أي عناصر في الإطار، فهذا يتوافق مع الحالة غير المرئية للمقطع. بالإضافة إلى ذلك، يتطلب كل إطار رئيسي بيانًا قف. لن يسمح وجود هذا المشغل بتشغيل المقطع، وسيبقى في الإطار المحدد طوال المدة اللازمة وفقًا لمنطق البرنامج.

في المثال الخاص بقائمة اختيار ماركة السيارة، تظهر النافذة في الإطار الأول مع جميع الأزرار. يتم ضبط المقطع على هذه الحالة عند النقر فوق زر تحديد ماركة السيارة في النافذة الرئيسية. يحتوي الإطار الثاني على مجموعة تسمية في خصائصه بالاسم HideWinولا يحتوي على أي كائنات. إجراء التحولات من قبل المشغل اذهب إلى وتوقف، يمكننا التحكم في رؤية القائمة من أي مكان في فيلم الفلاش الخاص بنا.

من الشكل. 3 يمكنك أن ترى أن هذا المقطع يحتوي على طبقتين. يتم فصل الكائنات والتعليمات البرمجية إلى طبقات مختلفة فقط من أجل الراحة. وهذا ليس له أي تأثير على تنفيذ البرنامج.


أرز. 3. يتم فصل الكائنات والتعليمات البرمجية إلى طبقات مختلفة.

نظرا لأننا نتحدث عن حالات مستقرة، فسوف نشير على الفور إلى كائن آخر يتم فيه استخدام هذه التقنية. هذا هو زر الاختيار (عنصر CheckBox). هناك الكثير منهم في هذا البرنامج. يتم تنفيذ مثل هذا العنصر بكل بساطة، وفي الوقت نفسه، فإن إمكانيات التصميم لإعطاء هذه العناصر مظهرًا فريدًا لا حدود لها، على عكس التقنيات الأخرى.

لإنشاء مفتاح، تحتاج إلى إنشاء كائنين Button. سيمثل كل واحد منهم إحدى الحالات المستقرة للمفتاح (الشكل 4).


أرز. 4. حالتان من أزرار التبديل.

يمكن أن يكون هناك أكثر من اثنتين من هذه الحالات - أي عدد حسب الحاجة. بعد ذلك، يتم إنشاء مقطع بسيط وفقًا للمبدأ الموضح أعلاه - إطاران رئيسيان مع المشغلين قف. نضع أزرارنا في إطارات مختلفة ونضع الرمز القصير داخل هذه الأزرار:

تشغيل (الإصدار) تشغيل النهاية

هذا كل شيء. عند النقر فوق أي من الأزرار، سيحدث الانتقال إلى إطار واحد. وسيتغير مظهر المقطع وفقًا لذلك. في إطارات القصاصات، يمكنك تعيين بعض المتغيرات التي تخزن حالة المحول، على سبيل المثال: محدد=1 للحالة المحددة ومحدد=0 للحالة غير المحددة. سيكون هذا متغيرًا محليًا للمقطع. للوصول إليه من المقاطع الأخرى، تحتاج إلى تحديد مسار كامل أو نسبي. إذا كنت تستخدم القيمة داخل المقطع، فستحتاج فقط إلى تحديد الاسم.

يتم استخدام مبدأ الحالات المستقرة لجميع مربعات حوار البرنامج ولعناصر التحديد مثل عناصر CheckBox وRadioButton القياسية.

دعنا نعود إلى خوارزمية برنامجنا. هذا هو المكان الذي يتم فيه استخدام المفاتيح التي نظرنا إليها للتو. تحتوي نافذة اختيار مخاطر التأمين على خمسة من هذه المفاتيح؛ كل خطر له مفتاحه الخاص (الشكل 5).

عند تحديد عنصر Auto Casco، يتم مسح جميع مربعات الاختيار الأخرى. يؤدي تحديد أربعة مخاطر (أي جميعها باستثناء التأمين على السيارات) إلى اختيار بند التأمين على السيارات وإعادة ضبط جميع المخاطر الأخرى. في هذا المثال، يحدث التحديث بعد إغلاق النافذة؛ بمعنى آخر، كل هذا المنطق غير مرئي للمستخدم، ويتم جمع كل التعليمات البرمجية لمعالجة المواقف المختلفة في زر واحد لإغلاق النافذة. كان من الممكن جعل تغيير الحالة مرئيًا على الفور عن طريق توزيع الكود عبر أزرار الاختيار. هنا يكون لأزرار الاختيار سلوك مختلط - كل من CheckBox وRadioButton، وأي من الخيارين ممكن. يتم تطبيق الخيار الثاني في مربع حوار آخر ("موقع تخزين السيارة"). هناك، جميع الحالات متنافية، وأزرار الاختيار تتصرف مثل أزرار الراديو.


أرز. 5. نافذة لاختيار المخاطر بخمسة مفاتيح.

فيما يلي الكود الكامل للزر الموجود في لوحة تحديد المخاطر:

كل شيء هنا بسيط للغاية، والكود مفهوم حتى بالنسبة للمبتدئين. أولاً، يتم تعيين قيمة متغير السلسلة /:InsStr، المرتبط بحقل اختبار ديناميكي يعرض المخاطر المحددة. إذا لم يتم تحديد أي مخاطر، فستكون هذه هي قيمة السطر بعد إغلاق النموذج. إذا تم الاختيار، والذي يتم تحديده عن طريق جمع العلامات لجميع المخاطر والتحقق من متغير klop، فسيتم تعيين سلسلة فارغة إلى /:InsStr، والتي ستتم إضافة الأسطر المقابلة للمخاطر المحددة إليها. يتم ذلك في If()...End If blocks. ثم يتم التحقق من حالة اختيار جميع المخاطر، ويتم ضبط الموضع الصحيح لعلامات التبديل. عند فتح مربع الحوار مرة أخرى، ستكون المفاتيح في الحالة الجديدة. ويتم ذلك بواسطة كل محول بشكل مستقل عن طريق قيمة العلامة الخاصة به (المتغيرات /:CheckUgon، /:CheckDTP، /:CheckBurst، /:CheckCrim).

بعد ذلك يأتي مشغل القفز المألوف، الذي يغلق النافذة. وأخيرًا، هناك شيء جديد - في كتلة العزل Tell Target() يتم استدعاء عامل التشغيل يتصل()في الجدول الزمني الرئيسي. هذا هو استدعاء الإجراء. يحتوي Flash على العديد من الميزات المتعلقة باللغات الأخرى. أولاً، ترتبط الإجراءات بالإطارات، ورمز الإجراء هو رمز إطار معين. ثانيا المشغل يتصللا يمر المعلمات. التعبير الموجود بين قوسين هو تسمية الإطار مع رمز الإجراء. ثالثا المشغل يتصللا يؤثر على تشغيل الفيلم أثناء التنفيذ. لن تكتمل جميع التحولات إلا بعد معالجة جميع أجزاء التعليمات البرمجية في شريحة زمنية معينة. لا يوجد انتقال إلى الإطار باستخدام الكود أيضًا. يوجد مشغل الفيلم في نفس الإطار الذي كان عليه قبل استدعاء الإجراء.

يقوم هذا السطر المحدد بمسح نافذة النتيجة كلما كانت هناك محاولة لتغيير البيانات المصدر للحساب.

ليست هناك حاجة لإلقاء نظرة على مربعات الحوار الأخرى بالتفصيل. الكود الخاص بهم أبسط مما سبق. دعنا فقط ندرج هذه النوافذ ونتحدث بإيجاز عن محتوياتها.

  1. تحتوي نافذة "موقع تخزين السيارة" على ثلاثة مفاتيح من نوع RadioButton وزر لإغلاق النافذة.
  2. تحتوي نافذة "مكافحة السرقة" على ثلاثة مفاتيح CheckBox وزر لإغلاق النافذة.
  3. تحتوي نافذة "تاريخ التأمين" (عدد السنوات التي تم التأمين فيها على العميل سابقًا دون أحداث مؤمنة في أي شركة تأمين) على حقل نصي وزر لإغلاق النافذة.
  4. تعرض نافذة الخطأ رسالة تشير إلى الأخطاء وقيم الإدخال غير الصالحة. يتم تعيين نص وصف الاستثناء إلى حقل نص ديناميكي.
  5. نافذة رسالة تشير إلى إتمام العملية الحسابية بنجاح مع تعليمات طباعة النموذج.

لا تحتاج إلى إدخال بعض معلمات النافذة - فهي سنة تصنيع السيارة وخبرة القيادة والقيمة المقدرة للسيارة وفترة صلاحية التأمين. عند الدخول في الحقول النصية، تحتاج إلى التحقق من صحة البيانات وامتثال الرقم للنطاق المحدد، والذي تحدده الشروط الأولية. على سبيل المثال: مدة التأمين لا يمكن أن تكون إلا عدداً صحيحاً، لا تقل عن 1 ولا تزيد عن 12 (شهراً). يتم إجراء عمليات التحقق هذه باستخدام عبارات شرطية بسيطة وباستخدام وظيفة التقريب int(). إذا كانت القيمة خارج النطاق المقبول، فسيتم تعيين قيمة افتراضية. بهذه الطريقة نتجنب الحصول على نتائج غير صحيحة بشكل واضح.

مميزات التنفيذ

الآن دعونا نلقي نظرة على نقطة أخرى مهمة. أين نقوم بتخزين قيم التعريفة؟ الحقيقة هي أن الإصدار 4 من Flash لا يحتوي على بنيات لوصف المصفوفات. الحل هو إما تخزين البيانات في متغيرات بسيطة أو محاولة محاكاة المصفوفات. المصفوفات مفيدة عند استخدام الحلقات. في هذه الحالة، لا توجد حلقات، ويمكنك التعامل مع المتغيرات العادية. الطريقة ليست أنيقة للغاية، ولكنها بسيطة وموثوقة. تتم تهيئة المتغيرات عندما يبدأ التطبيق في الإطار الأول للخط الزمني الرئيسي (في المشهد نفسه). هناك طريقة أخرى لوصف المتغيرات - في ملف نصي. يتم تسجيل البيانات في شكل بسيط:

Var01="value01"&var02="value02"&var03="value03"

وهذا يتوافق مع تدوين "المفتاح = القيمة" المعتاد. يتم تحميل الملف من قبل المشغل تحميل المتغيرات("filename.txt"، "/targetClip").

هنا من الضروري أن نقول بضع كلمات حول تكوين أسماء المتغيرات. يعد تكوين أسماء من نفس النوع أمرًا مهمًا إذا كان من الضروري استخدام مؤشرات رقمية معينة للوصول إلى متغير معين. كما ذكرنا سابقًا، لا يسمح لك Flash 4.0 بإنشاء صفائف، ولكن يمكن التغلب على هذا العيب. سنقوم بتشكيل الأسماء بشكل ديناميكي. لنفترض أننا في خط حوادث الطرق قمنا بتسمية المتغيرات DTP1، DTP2...DTP12. يمكنك تعيين هذه المتغيرات بالطريقة المعتادة:

تعيين المتغير "DTP1" = 6

وبالمثل بالنسبة للجميع. ولكن لاستخراج القيمة، ومعرفة رقم الصف والعمود، عليك القيام بذلك:

تعيين المتغير "درجة الحرارة"=التقييم("DTP"&n)

حيث n هو رقم العمود وهذا يعادل تمامًا التعبير:

تعيين المتغير "درجة الحرارة" = DTP1

لم يتبق سوى القليل - الحساب البحت. وينقسم الكود إلى عدة إطارات إجراءات، والتي يمكن الوصول إليها من خلال المشغل يتصل. كل هذه الإطارات موجودة في المشهد نفسه. بوجود رقم المجموعة وعمر الخدمة، نحدد رقم العمود في جدول التعريفات. بعد ذلك، نتحقق من المخاطر المذكورة ونلخص قيم التعريفة. نقوم بالتحقق من استيفاء شروط الخصومات حسب موقع التخزين ووجود أنظمة الحماية من السرقة) واختيار عامل التصحيح المناسب. بعد ذلك، يتم أخذ فترة تأمين التعادل في الاعتبار ويتم إجراء فحص لمعرفة ما إذا كان النطاق خارج النطاق (في هذه الحالة، لا يزيد عن 30٪). كل ما تبقى هو مضاعفة كل شيء والحصول على النتيجة. تتركز كافة استدعاءات إجراءات call() في زر "حساب".

إذا كانت جميع البيانات اللازمة صحيحة، تظهر قيمة مبلغ التأمين في نافذة النتائج. إذا حدث خطأ ما في مكان ما، فستظهر نافذة تحذير بشأن الاستثناء. ومع ذلك، في بعض الحالات، سيتم الحصول على النتيجة: على سبيل المثال، إذا تم إدخال البيانات الرقمية بشكل غير صحيح وقام البرنامج باستبدال القيمة الافتراضية. بعد ذلك، فقط أدخل القيمة المطلوبة بشكل صحيح واضغط على زر "احسب" مرة أخرى.

قليلا عن البرامج النصية للخادم

يوجد في النموذج أعلاه أيضًا عداد للحسابات التي يتم إجراؤها. هذا هو برنامج بيرل. نظرًا لأنه لا علاقة له بمنطق البرنامج ويمكن إزالته بأمان، فلن نفكر هنا في وظائف إضافية مثل التفاعل مع البرامج النصية للخادم. لا توجد صعوبات أساسية في هذا، ومع ذلك، فإن التفاعل مع البرامج النصية للخادم هو موضوع كبير منفصل، ولديه الكثير من التفاصيل الدقيقة.

طباعة النتيجة

إذا لم تكن هناك أخطاء، فستظهر نافذة تحتوي على رسالة حول إكمال الحساب بنجاح وتلميح حول كيفية قيام المستخدم بطباعة النموذج على الطابعة. عند الطباعة، يتم استخدام الخيار الذي يوفره مشغل أفلام Flash أو المتصفح نفسه. تعطي الطباعة من قائمة السياق باستخدام زر الفأرة الأيمن نتائج أفضل عند نقل الظلال، وهو ما يمكن ملاحظته بشكل خاص في حالة وجود تعبئة متدرجة. باستخدام هذه النسخة المطبوعة، يمكن للمستخدم الحضور إلى مكتب الشركة والتقدم بطلب للحصول على التأمين.

نتيجة

لقد أكملنا المهمة بالكامل باستخدام Flash 4.0، دون استخدام أي تقنيات إضافية لمنطق البرنامج الرئيسي. يبلغ حجم التطبيق الذي يعمل بكامل طاقته حوالي 40 كيلو بايت، وبمجرد تنزيله، لا يتطلب أي اتصال بالخادم. عدد الحسابات غير محدود. يمكن للمستخدم تغيير البيانات المصدر بقدر ما يريد والحصول على النتائج على الفور. الجمهور المحتمل الذي يمكنه الاستفادة من هذا البرنامج هو حوالي 95% من مستخدمي الإنترنت. وفي الوقت نفسه، نحن عمليًا خاليون من التعارضات بين إصدارات المتصفحات والأنظمة والأنظمة الأساسية. أصبحت تقنية الفلاش اليوم تقنية بائع واحد، مما يبسط مهمة المطور. واجهة النموذج فريدة تمامًا، وفي نفس الوقت تكون تكاليف الجزء الرسومي ضئيلة. أعتقد أن المزايا كافية لاستخدام تقنية Macromedia Flash في المستقبل للقيام بمهام مماثلة.