نوشته شده

استفاده از 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 ایست شد.

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


مطالب مرتبط

ایجاد وقفه زمانی در تایم لاین-اکشن اسکریپت ۳
این مطلب یکی از مجموعه آموزش های کوتاهی می باشد...
هفت سین یک طراح وب و فلش کار!
سلام خدمت دوستان عزیز.... با توجه به نزدیکی سال...
نوروز ۹۰ مبارک باد
بیامد شاهد شیرین نوروز / بنازم سفره ای هفت سین...
استفاده از کلاس تاریخ در اکشن اسکریپت ۳
فلش CS4 |  اکشن اسکریپت ۳/۰ | سطح مقدماتی در این...

آدرس ایمیل شما :


اشتراک فید نظرات

تا به حال ۸ نظر به این مطلب داده شده است

  1. alireza می‌گه:

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

  2. حسین می‌گه:

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

  3. hooryeh می‌گه:

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

  4. raheleh می‌گه:

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

شما می توانید نظر خود را در اینجا وارد نمایید

* بخش های ستاره دار الزامی است

کاربر آنلاین