خانه » ادوبی فلش » استفاده از SetInterval در اکشن اسکریپت ۳

استفاده از SetInterval در اکشن اسکریپت ۳

همان طور که می دانید در اکشن ۳ امکانی مثل Timer Class افزوده شده که می توان از آن برای انجام کارهای در بازه های زمانی هم استفاده کرد ولی متد ساده تری نیز وجود دارد (setInterval) که در ایم مطلب قصد توضیح آن را داریم :

توضیح درباره setInterval :

متدی می باشد که می تواند یک سری کد را در بازه زمانی که توسط مقداری بر اساس میلی ثانیه تعیین می شود را اجرا و تکرار نماید ، به صورت سفارسی این کدها می بایت در قالب تابعی function تعرف بشوند و به setInterval داده شوند.

ساختار کلی setInterval :

setInterval (myFunction, myTimeLapse);

myFunction : تابعی که شامل کد های مورد نظر شما می باشد
myTimeLapse : مقداری بر اساس میلی ثانیه milliseconds

مثالی بسیار ساده ، در زیر به کدی می پردازیم که مقدار Hello IFLashLord.Com! را هر ۲ ثانیه یک بار اجرا نمایید :

function helloFun():void
{
	trace("Hello IFLashlord.Com!");
}
setInterval(helloFun,2000);

همان طور که در کد مشاهده می شود با تعریف یک تابع ساده و فراخوانی آن در setInterval می توانیم آن را در هر بازه زمانی تکرار نماییم. توجه داشته باشید طبق این کد اولین اجرا تابع helloFun بعد از دو ثانیه انجام خواهد شد و هر دوثانیه تکرار خواهد شد.

همان طور که مشاهده می کنید نتیجه این کد تا ابد ادامه خواهد داشت و شاید شما بخواهید در بازه ای از زمان این عمل قطع شود برای این کار نیز متدی در نظر گرفته شده که در ادامه درباره آن توضیح می دهیم(clearInterval)

توضیح درباره clearInterval :
این متد برای ایست نمودن فعالیت یک setInterval می باشد که البته قبلا مقدار آن در یک متغیر variable وارد شده باشد ، در صورتی که یک setInterval بدون تعریف Var ایحاد شده باشد امکان دسترسی و ایست نمودن آن وجود ندارد ، در ادامه در مثالی دقیق تر این موضوع را متوجه خواهید شد.

ساختار کلی clearInterval :

clearInterval(myInterval);

myInterval : متغییری شامل یک setInterval

مثال :

function helloFun():void
{
	trace("Hello IFLashlord.Com!");
}
var myInterval:uint = setInterval(helloFun,2000);
clearInterval(myInterval);

در مثال بالا ابتدا setInterval را به متغیر myInterval دادیم تا بتوانیم در هر جایی از کد آن را توسط clearInterval ایست نماییم ، توجه کنید در کد بالا عملا قبل از اجرای اولین بار کد عملکرد ایست می شود و این مثال فقط برای روشن شدن موضوع قرار داده شده است و شما می توانید در صورت صحیح بودن شرطی و یا موضوعی دیگر عمل ایست را اجرا نمایید.

مثالی کاربری :

در این مثال دکمه ای ایجاد می کنیم که در صفحه توسط setInterval حرکت کند و با کلیک بر روی دکمه توسط clearInterval ایست شود.

ابتدا یک پروژه جدید AS3 در فلش ایجاد نمایید و از Window>Components کامپوننت Button را انتخاب کنید و به درون صفحه بکشید و در سمت چپ صفحه قرار دهید و سپس آن را انتخاب کرده و از پانل Properties Inspector بخش instance name را برابر my_btn قرار دهید.

و حال وارد پانل اکشن شوید ، در اینجا ما تابعی به نام moveBtn ایجاد می کنیم و در آن مقدار مختصات x را افزایش می دهیم که با این کار هر بار تابع اجرا شود به مختصات فعلی آن ۱۰ واحد افزوده خواهد شد ، به کد دقت نمایید :

function moveBtn():void {
my_btn.x  += 10;
}

و حال کد نهایی را می نویسم :

function moveBtn():void
{
	my_btn.x +=  10;
}
var myInterval:uint = setInterval(moveBtn,500);
my_btn.addEventListener(MouseEvent.CLICK,  stopMe);
function stopMe(e:MouseEvent):void
{
	clearInterval(myInterval);
}

در کد بالا ابتدا تابعی برای حرکت ایجاد شد و در مرحله بعد setIntervar ایجاد شد و در مرحله بعد رویداد کلیک به دکمه افزوده شد که به تایع stopMe اشاره داد و در این تابع از clearInterval استفاده شد و عمل setInterval ایست شد.

موفق و پیروز باشید 😉

Print Friendly
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

8 نظر

  1. سلاااام.خیلی خوب بود واقعا کیف کردم.دست گلت درد نکنه.بسیار بسیار خوب بود.کاش می شد جلسه آموزشی هم واسه من می ذاشتی که رشته کامپیوتر هستم.مرتب سر می زنم

  2. سلام
    مطلب جمع و جور و مفیدی بود
    ولی ارتباطش با اون عکس و پیدا نکردم D: بیشتر شبیه تایمره! :))

  3. ۲ روزه که گیر همین تابع ام برای نوشتن یک بازی، مرسی واقعاً، یک در دنیا و صد در آخرت خیر ببینی !

  4. salam khaste nabashi agarejaze midi man az matalebet to payan namam
    estefade konam man 20 mordad erae daram mamnon misham

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه