المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس : استخدام الدالة الشرطية IF وملحقاتها


البرنس_زاهر
19 Jul 2002, 08:34 PM
الدالة الشرطية if
من المعروف إن الشرط مكون من
أداة الشرط
و الشرط
وفعل الشرط
وأداة الشرط هو دالة if والشرط هو ما بعد if وفعل الشرط وهو الأوامر التي تنفذ إذا نفذ الشرط
أي نختصر ما قلنا بهذه الجملة :
a = 10
if a == 10
goto "25"
وإليكم شرح هذه السطور
قلنا في البداية إن المتغير a يساوي 10
وقلنا في السطر الثاني إذا كان a يساوي 10 نفذ الأمر الآتي وهو أمر أذهب إلى الفريم 25 goto "25"
وإذا غيرنا المتغير a وقلنا انه يساوي مثلا 11 بدل 10 a = 11 لن ينفذ الأمر ولن يذهب إلى الفريم 25
لان الشرط لم يتحقق.
اعتقد أن الصورة قد وضحت
وفائدة أداة if جداً جداً كبيرة...

شرح عمل دالة if
1- شغل الفلاش 5 وافتح مشروع جديد من قائمة File ومن ثم New.
2- ضع حقل نصي وهو موجود في الأدوات وهو على شكل حرف A. وضعه في مسرح العمل.
3- إذهب إلى Text Options واختر من قائمة التحرير والسرد امر Input Text بدل Static Text واسمه Text من خانة Variable الموجدة في Text Options وايضا ضع علامة صح على Border/Bg
4- الآن ضع زر ( بوضع مثلاً دائرة والضغط على F8 واختيار Button بدل Movie Clip )
5- الآن اضغط على الدائرة بالزر اليمين لإظهار القائمة واختر Actions لفتح مربع الاكشن
لكن تأكد من أن عنوان مربع الاكشن ( الذي مكتوب في أعلى مربع الاكشن ) هو Object Actions.
6- الآن اختر من علامة الزائد قائمة Actions لتفتح لك قائمة أخرى اختر منها if وفي الخانة Condition اكتب Text == 1 ثم ضع أمر
Get URl من القائمة Basic Actions وفي خانة URl اكتب http://www.saven7.com الآن ستصبح الأوامر التي في الاكشن هكذا
---------------------------------------------
on (release) {
if (text == 1) {
getURL ("http://www.saven7.com");
}
}
---------------------------------------------
الآن شغل العمل وإذا كتبت في الحقل النصي Text الرقم 1 وضغط على الزر سوف يفتح موقع saven7 وإذا لم تكتب الرقم 1 لن يحدث شيء
،،،،،،،،،،،،،
الآن اعتقد انك فهمت الدالة جيداً لأننا قلنا إذا كُتب في القيمة text الرقم 1 افتح موقع إي فاوال ...
الآن اضغط على التالي فهناك المزيد من أسرار الدالة if ..


حسناً إذا قلنا أريد إذا كتبت في text الرقم 1 افتح موقع إي saven7 أو إذا لم اكتب الرقم 1 افتح موقع أين ،،
ماذا نفعل ،إليكم ألطريقه:
1- دع عملنا الذي عملناه سابقاً لا تغلقه.
2- اذهب إلى الاكشن التي في الزر واضغط على هذا الأمر
getURL ("http://www.saven7.com");
لكي تضع بعدة الأوامر التي تريدها والأمر الذي نريده هو أمر إذا لم اكتب الرقم 1 هو أمر Else وهو في القائمة Actions.
ومعناه: إذا لم يتحقق الشرط.
3- الآن بعد ما اخترت الأمر Else اختر مرة أخرى أمر Get URL واكتب http://www.ayna.com...
4- الآن سيصبح شكل الاكشن كتالي :
---------------------------------------------
on (release) {
if (text == 1) {
getURL ("http://www.saven7.com");
} else {
getURL ("http://www.ayna.com");
}
}
---------------------------------------------
4- الآن جرب العمل.
جرب اكتب رقم 1 في Text واضغط على الزر وهو الدائرة وأنظر انه سوف يذهب إلى موقع إي saven7 والآن جرب اكتب أي شيء أو حتى اتركه فارقاً سوف يفتح موقع أين .


حسناً إذا قال شخص أريد إذا كتبت الرقم 1 يفتح موقع إي saven7 وإذا كتب 2 يفتح موقع أين وإذا كتبت الرقم 3 يفتح موقع ياهوو هكذا...
الطريقة سهله جداً فقط اتبع الآتي :
1- دع ما عملناه سابقاً ولكن احذف أمر Else وما بعدة ليكون شكل الاكشن هكذا
---------------------------------------------
on (release) {
if (text == 1) {
getURL ("http://www.saven7.com");
}
}
---------------------------------------------
2- الأمر الذي يجعل في العمل عدة شروط هو أمر Else If وهو موجودة في أوامر Actions
3- بعد ما وضعت هذا الأمر Else If تكتب في خانة Condition الشرط التي تريده ، ونحن سوف نكتب Text == 2 وسف نضع فعل الشرط وهو الأمر Get URL ونكتب موقع أين.
وسوف ينفذ فعل الشرط إذا تحقق الشرط وهو إذا كتب في text == 2.
4- الآن سنضع أمر Else If مرة أخرى وفي خانة Condition سنكتب text == 3 وسنضع أمر Get URL ونضع موقع ياهوو.
5- الآن عند تنفيذ العمل سوف تلاحظ عندما تكتب في الحقل النصي 1 وتضغط على الدائرة يفتح موقع saven7 وعندما تكتب في الحق النصي 2 وتضغط على الدائرة يفتح
موقع أين وعندما تكتب 2 سيفتح موقع ياهوو حسناً. أما إذا أردنا كتابة أي شيء غير 1 أو 2 أو 3 يظهر موقع Google سنكتب الأمر Else
وثم نختار Get URL ونضع http://www.google.com ، وسوف تلاحظ عند كتابة اي شي غير 1 و 2 و 3 سيظهر موقع Google. وسيكون الشكل الأخير للأكشن هكذا :
---------------------------------------------
on (release) {
if (text == 1) {
getURL ("http://www.saven7.com");
} else if (text == 2) {
getURL ("http://www.ayna.com");
} else if (text == 3) {
getURL ("http://www.yahoo.com");
} else {
getURL ("http://www.google.com");
}
}
---------------------------------------------
ارجوا أنني قد وفقت في شرحي هذا ،،،
ومن لديه استفسار فليراسلني أو يكتب رد...

كلاشن كوف
20 Jul 2002, 11:20 AM
السلام عليكم ورحمة الله

جزاك الله خيراً على الدرس المتواضع , واسمح لي أن أزيد بشيءٍ قد لا يدركه البعض منَّا , حتى إذا واجهتنا نكون على درايتنا منها .

أولاً :
قم بفتح مشروع جديد , ثم انقر نقرتين مزدوجتين على أول إطار بزر الفأرة الأيسر . ستظهر لك لوحة الـ ActionScript . حوِّل هذه اللوحة إلى نمط الخبراء وذلك بالنقر على السهم الأيمن العلوي ثم اختيار الأمر Expert Mode .

ثانياً :
انسخ الكود التالي ثم ألصقه في لوحة الـ ActionScript :


x = 5;

(x == 5) ? trace('yes') : trace('no')


قبل أن أخوض معكم في الشرح تأمل جيداً في الكود وخمِّن النتائج التي ستظهر لك , ثم أختبر الفيلم لترى النتائج .

********
ملاحظة :
لا تقم أبداً بتحويل نافذة الـ ActionScript إلى النمط العادي Normal Mode وإلاَّ ستفقد الكود ( تستفيد من هذا الكود لتأمن على مشروعك بشكلٍ نسبي و حتى إذا قام المستخدم بفتح مشروعك بطريقة غير شرعية , وحوَّله إلى النمط العادي فإنه سيخسر المشروع برمَّته , وسيعاني كثيراً لأجل أن يعيد تلك الوصلة التي تربط المشروع بأجزائه الأخرى إلى وضعها الطبيعي ) .


الآن أخبرنا هل أصبت بتوقعاتك ؟ إن كان الجواب لا فدعني أساعدك في حل اللغز البسيط .

العناصر الأساسية التي يقوم عليها الكود السابق هي :

1 – الفاصلة المنقوطة بعد نهاية سطر المتغير الذي سنطبق عليه الشرط ( قد تستغرب من هذا الأمر على الرغم من أن الـ ActionScript يتغاضى عن الفاصلة المنقوطة ولا يعتبرها خطأً في مشروعك ) .

2- علامة الاستفهام ( ? ) .

3- النقطتان ( : ) .

قد يندهش البعض منكم من النقطة الأولى , إلاَّ أن الفاصلة المنقوطة تكون ضرورية أحياناً كما وتكون كذلك عالةً على مشروعنا في بعض الأحيان . جرِّب مثلاً أن تستخدم الوظيفة include التي تقوم باستدعاء الملفات الخارجية ( ليس هذا مجال سردها لكني ذكرتها لأضرب لكم مثالاً على هذه الفاصلة المنقوطة العجيبة ) وضع فاصلة منقوطة في نهاية السطر من الوظيفة ذاتها . ماذا تلاحظ ؟ ... نعم إن الـ ActionScript يعطيك رسالة خطأ ويحتِّم عليك أن تزيل الفاصلة المنقوطة ليستقم الكود .


أما النقطة الثانية وهي علامة الاستفهام فهي تعبِّر عن السؤال . مثلاً عندما أكتب لك " عمرك 22 ؟ " , فستفهم مني أنني أسألك إن كان صحيح هذا هو عمرك أم لا . فالجواب إمَّا بـ " نعم " أو " لا " . من خلال هذا الكلام يبدو أنك عرفت ما الذي أود أن أقوله لك . إذاً يمكننا أن نترجم علامة الاستفهام هذه بـ الوظيفة if . يعني - إن كان عمرك هو 22 فقم بما يلي ... وفي مثالنا السابق كنا قد ذكرنا بأن المتغير x يساوي 5 :

إن كانت ( x تساوي 5 ) ؟ فاعرض لنا رسالةً مفادها هو ( " yes " ) ....


أنا متأكد من أنك قد أدركت باقي المسألة , لكن هذا لا يمنع من أن أكمل معكم المشوار . فتعال معي إلى النقطة الأخيرة .

النقطتان المتعامدتان ( : ) – هذه الأداة تعني ما تعنيه الوظيفة else , أي ( وما عدا ذلك فقم بما يلي .. ) . يعني إذا كان عمرك هو 22 فقم بما يلي ... وإن كان غير ذلك فقم بما يلي ...

هل اتضحت لكم الفكرة ؟ أرجو أن يكون الجواب " نعم " حتى أعرض لكم الرسالة " أحسنتم " , وإلاََّ ...

جملة مناسبة أليس كذلك ؟ إذاً لما لا نطبقها سوياً . أنا عن نفسي سأترجمها بهذا الكود :



answer = "yes";

(answer == "yes") ? trace("GOOD") : trace("read again")


أرجو أن أكون قد وفِّقت في نقل ما كنت أرمي إليه والسلام عليكم ورحمة الله .

فاشل بالفلاش
20 Jul 2002, 11:30 AM
هلا فيك اخوي البرنس زاهر

الف شكر على الشرح الررررررائع

ومشكووووور وما تقصر وتسلم يدينك


هلا فيك اخوي كلاشن كوف

الف شكر على التوضيح

والشرح الرائع


وتسلم يدينكم


تحياتي

tamimi
20 Jul 2002, 03:49 PM
السلام عليكم
هلا أخوي البرنس زاهر أشكرك على درسك
____________
أخي كلاشن كوف شكرا على توضيحاتك

المثابر
20 Jul 2002, 05:12 PM
شكرا اساتذتي الكرام ...شكرا برنسنا زاهر .. وكلاشنا ...
الف شكر على هذا الشرح الرائع .. والاسلوب المميز لكليكما ...
بس ممكن سؤال ....
هناك على حد علمي اكثر من امر لـ if ؟
هل يكون هناك تكمله لدروس هذا الامر ...
لان لديه اساله عن باقي اوامر if بس اذا كنتو ناوين تشرحون باقي الاوامر ... انتظر دروسكم القادمه .. لهذا الامر ..واسال في وقت الدرس .........................................

وشكر اساتذتي والله لا يحرمنا منكم ..............

البرنس_زاهر
20 Jul 2002, 05:53 PM
مشكور الف شكر اخوي كلاشن كوف
بس ياعزيزي هذا ممكن تقول للمحترفين في نصوص البرمجة .
لانه يستخدم Expert Mode .
وانت عارف إذا حول إلى Normal Mode .
أنصح للمحترف الذي مستخدم نمط Expert Mode تطبيق درس كلاش كوف .
والمبتدء او المتوسط الغير مستعمل نمط Expert Mode تطبيق درسي .
بس ابي اسألك سؤال ياكلاش كوف.
انت شرحت if وشرحت else بطريقتك بس ما شرحت else if .
لو عندك طريقتها افدنا .

كلاشن كوف
20 Jul 2002, 09:09 PM
العفو بارك الله فيكم

مشرفنا الكريم :
للأسف هذا المعامل الله يحييك لا يدعم الأمر else if , لذلك لم أتطرق إليه .


أخي الغالي المثابر :
لم أفهم ماتعنيه , إن كنت تقصد الامر else if و else فقط تطرق إليها أخونا البرنس زاهر . أمَّا إن كنت تقصد جملة while و do_while و جملة for التكرارية ( بالمناسبة هناك جملة تكرارية أخرى اسمها for...in وهي مخصصة للعناصر والمصفوفات ) فقد ذكرها أخونا الشهاب الحارق في سلسلته العلمية الكريمة .


ستجدون شرحاً موجزاً عن هذا المعامل في الملف المرفق .

والسلام عليكم ورحمة الله

المثابر
21 Jul 2002, 01:44 PM
فعلا استاذي كلاشن كوف هذا ما قصدته ... باقي اوامر if او بالاصح عن loop ......كاملتا .....

وياليت يا استاذنا الغالي كلاشن كوف ... ترفق لنا ملف فيه شرحك .. لتوضيح اكثر .... هذا لو كان امكن ....

وهنا تطبيقيين .. لشرح البرنس زاهر الاول على فريمات .. بداخل الفلم ..
width = 350 height = 200

والتطبيق الثاني لشرح البرنس زاهر حرفيا .. مع ملاحظه تحميل المثال لتطبيق ... ايضا .. يوجد هديه ..داخل الفلم ...للمتابعين معانا :D
width = 350 height = 200

كلاشن كوف
21 Jul 2002, 02:58 PM
ما شاء الله ... عمل ممتاز يالمثابر .

تفضل يا عزيز هذا الرابط (http://uaemag.cc/vb/showthread.php?s=&threadid=614) ولا يكون خاطرك إلاَّ طيب . وإذا تعسَّر عليك فهم شيء فسأقوم بحول الله بتخصيص درساً كاملاً عن الحلقات في الـ ActionScript . وأنا متأكد أن الشهاب الحارق كفَّى ووفى في شرحه , فما أن تنتهي من قراءة شرحه وتطبيق درسه إلاَّ وستتفنن إن شاء الله في إستخدام الحلقات .


بعد الإنتهاء من قراءة الدرس أنصح بزيارة هذا الرابط (http://www.uaemag.cc/vb/showthread.php?s=&threadid=915) أيضاً , لأن هذا الدرس يكون مهم جداً عند استخدامك للحلقات .

والسلام عليكم

المثابر
22 Jul 2002, 01:46 AM
شكرا من كل قلبي اخي .. كلاشن كوف ....
اولا ... وهذا هو المهم طمئنتي على الاخ الشهاب الحارق ( بجد كان منشغل بالي )............ والحمد لله انه بخير وعافيه ..

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