نوشته شده

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

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

یک ستارهدو ستارهسه ستارهچهار ستارهپنج ستاره (11 رای ها, معدل: 491 از 5)
Loading ... Loading ...

مطالب مرتبط

هفت سین یک طراح وب و فلش کار!
سلام خدمت دوستان عزیز.... با توجه به نزدیکی سال نو تصمیم گرفتن هفت سینی برای...
استفاده از کلاس تاریخ در اکشن اسکریپت ۳
فلش CS4 |  اکشن اسکریپت ۳/۰ | سطح مقدماتی در این خودآموز شما به  نحوه استفاده...
اکشن اسکریپت ۳ وتفاوتها با اکشن اسکریپت ۲
سلام این بار یک مقاله کامل که از نوشته دوستان در انجمن جمع آوری شده رو می...
پخش صدا در اکشن اسکریپت ۳ – بخش اول
در این آموزش به پخش صدا در ActionScript 3.0 می پردازیم و به موارد مثل پخش صدا از فایل...

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


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

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

  1. alireza می‌گه:

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

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

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

  3. hooryeh می‌گه:

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

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

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