Educational Zone

مدونة متخصصة بالدروس التعليمية

الأمر setInterval


يعتبر الأمر setInterval من الأوامر الممتازة جدا فالنفرض أننا نريد استدعاء دالة مره كل خمس دقائق أو عشر دقائق وعندما تريد استخدام الأمر setInterval فإنك دائماً سوف تستخدم هذا الأمر مع الدوال لذلك أولا سوف نقوم بإنشاء دالة باسم displayMessage ولا تقوم بإرجاع أي قيمة وهذه الدالة تقوم بعرض عبارة في نافذة المخرجات لذلك سوف نقوم بكتابة الأمر trace بهذا الشكل trace("We like setInterval"); وأخيراً نقوم بإنهاء الدالة وننتقل لسطر جديد وسوف نستخدم الأمر setInterval لاستدعاء الدالة مره كل ثانية عندما نقوم باستخدام الأمر setInterval سوف يقوم بإرجاع قيمة Return Value لذلك سوف نقوم بتعريف متغير باسم nInterval وهو متغير رقمي Number Data Type ثم نقوم بوضع علامة يساوي وقيمة المتغير هي أكتب الأمر setInterval ثم أفتح قوس وهنا يأخذ هذا الأمر ثلاث عناصر Three Parameter العنصر الأول هو functionName بمعنى اسم الدالة التي نريد استدعائها وهي هنا displayMessage ونضع فاصلة والعنصر الثاني هو interval وهنا تضع كم مره تريد أن يقوم الأمر باستدعاء الدالة مثلاً مره كل ساعة أو كل دقيقة وهي تقاس بالـ millisecond وإذا أردنا أن نقوم باستدعاء الدالة مره كل ثانية فـ علينا أن نقوم بكتابة الرقم 1000 والعنصر الثالث اختياري وهو params وهي العناصر التي يتم تمريرها للأمر setInterval لن نحتاجها الآن لذلك قم بإغلاق القوس وأنهي الأمر بفاصلة منقوطة ليكون الأمر في النهاية بهذا الشكل :



والآن قم باختبار العمل لترى أن الدالة displayMessage يتم استدعائها تقريباً مره كل ثانية وإذا أردت أن تقوم باستدعاء الدالة بشكل أسرع فقط قم بتغيير الرقم من 1000 إلى 500 واختبر العمل لترى أنه يتم استدعاء الدالة بشكل أسرع هذه المرة ولكن هناك مشكلة ؟ وهي أنه الأمر setInterval سوف يقوم باستدعاء الدالة باستمرار ولن يتوقف فـ لنفرض أننا نريد استدعاء الدالة 10 مرات فقط لذلك سوف نقوم باستخدام الأمر clearInterval إذا أسفل الدالة displayMessage مباشرة نقوم بتعريف متغير باسم nTimes ونوعه متغير رقمي يحمل القيمة صفر وداخل الدالة أسفل الأمر trace نقوم بزيادة واحد على قيمة المتغير nTimes في كل مره يتم استدعاء الدالة لذلك نقوم بكتابة nTimes++; وننتقل لسطر جديد ثم نكتب الأمر if ونفتح القوس والشرط هنا سوف يكون إذا كانت قيمة المتغير nTimes أكبر من أو تساوي 10 لذلك سوف نكتب nTimes >= 10 وغلق القوس وبجسم الأمر if نقوم بكتابة الأوامر التي تنفذ في حالة تحقق الشرط وهنا نقوم بحذف الأمر setInterval إذا نقوم بكتابة الأمر clearInterval وأفتح القوس وهنا نقوم بإدخال الـ intervalID وهو هنا nInterval وهي التي تحمل القيمة التي يقوم الأمر setInterval بإرجاعها وأنهي الأمر if ليكون الأمر في النهاية بهذا الشكل :



والآن قم باختبار العمل لترى أنه يتم استدعاء الدالة عشر مرات فقط .


وبذلك نصل لقاعدة وهي كالتالي :



والآن ننتقل للتطبيق قم بفتح الملف setInterval.fla وحدد الإطار الأول من الطبقة Actions وأفتح نافذة الـ Action Script لترى الشكل التالي :



وهي نفس الأوامر السابقة في ملف functions.fla ولكن الفرق هو بدلا من الضغط على زر لإضافة قطعه مربع كقناع على الصورة نقوم باستخدام الأمر setInterval لإضافة قطعه مربعه كقناع على الصورة مره كل ثانية والآن قم باختبار العمل وإذا أردت زيادة السرعة فقط قم بتغيير الرقم في الأمر setInterval من 1000 إلى 500 واختبر العمل لترى أن السرعة قد زادة  .


لتحميل ملف التطبيق :
http://www.gigasize.com/get.php/-1100215404/setInterval.rar


تمنياتي لكم بالتوفيق

ســ لمــ لمــ


أضف تعليقا