Borna66
09-11-2010, 01:34 PM
setInterval با استفاده از اين اكشن مي توان توابع را در فواصل زماني معين احضار كرد
بطور مثال می خواهیم فیلم هر 3 ثانیه یک فرم جلو برود ار روش زیر استفاده می کنیم:
فیلمی به تعداد 5 key frame می سازیم در هر فریم شکل متفاوت ایجاد می کنیم
لایه دیگری به همان تعداد فریم ساخته فریم اول را انتخاب کرده پنل اکشن را باز می کنیم
از قسمت actions>misecellaneous actions>setInterval را انتخاب کرده و نام تابع بطور مثال ( goto ) ویرگول میزان وقفه ( مثلا 1000) را وارد کنید
دستور actions>user-defiend Function >function را انتخاب کنید اسم تابع ( goto )را در قسمت name وارد کرده و عملی که می خواهید در فواصل زمانی خاص اجرا شود را تعیین کنید ( ()nextFrame)
کلیپ را امتحان کنید همونطور که می بینید هر 1 ثانیه فیلم یک فریم جلو می رود
stop();
setInterval(goto, 1000);
function goto() {
nextFrame();
}
روش دوم : همین کار را می توان با روش دیگری هم انجام داد مثل تمرین قبل دو لایه را بسازید اما در اکشن فریم اول setInterval را انتخاب کرده در قسمت expression کد زیر را بنویسید:
(_root,"nextframe",1000)
فیلم را امتحان کنید نتایج با روش قبل یکی است
clearinterval:
این اکشن عمل serinterval را حذف می کند یعنی اعمال متوالی احضار شده متوقف می شود
فقط توجه کنید که اول باید setInterval را نامگذاری کنید
مثال : از تمرین قبل برای این مثال استفاده می کنیم
دستور setInterval را حذف کنید به مسیر actions>variable رفته و دستور set variable را انتخاب کنید در قسمت variable نام دلخواهی مانند mymovie انتخاب کنید و expression را تیک زده و دستور setInterval را مثل قبل بنویسید
کد شما باید شبیه شکل زیر شده باشه:
stop();
mymovie = setInterval(_root,"nextframe",1000);
;
حالا یه لایه دیگه ایجاد کنید و روی آن یک نمونه دکمه بسازید و اکشن clearInterval را به آن نسبت دهید
در قسمت parameters نامی که به intervalخود نسبت دادید وارد کنید ( اینجا mymovie)
کد شما بصورت زیر است:
on (release) {
clearInterval(mymovie);
}
کلیپ را امتحان کنید هر جا دکمه زده شود حرکت متوقف می شود یعنی interval شما حذف شده است.
بطور مثال می خواهیم فیلم هر 3 ثانیه یک فرم جلو برود ار روش زیر استفاده می کنیم:
فیلمی به تعداد 5 key frame می سازیم در هر فریم شکل متفاوت ایجاد می کنیم
لایه دیگری به همان تعداد فریم ساخته فریم اول را انتخاب کرده پنل اکشن را باز می کنیم
از قسمت actions>misecellaneous actions>setInterval را انتخاب کرده و نام تابع بطور مثال ( goto ) ویرگول میزان وقفه ( مثلا 1000) را وارد کنید
دستور actions>user-defiend Function >function را انتخاب کنید اسم تابع ( goto )را در قسمت name وارد کرده و عملی که می خواهید در فواصل زمانی خاص اجرا شود را تعیین کنید ( ()nextFrame)
کلیپ را امتحان کنید همونطور که می بینید هر 1 ثانیه فیلم یک فریم جلو می رود
stop();
setInterval(goto, 1000);
function goto() {
nextFrame();
}
روش دوم : همین کار را می توان با روش دیگری هم انجام داد مثل تمرین قبل دو لایه را بسازید اما در اکشن فریم اول setInterval را انتخاب کرده در قسمت expression کد زیر را بنویسید:
(_root,"nextframe",1000)
فیلم را امتحان کنید نتایج با روش قبل یکی است
clearinterval:
این اکشن عمل serinterval را حذف می کند یعنی اعمال متوالی احضار شده متوقف می شود
فقط توجه کنید که اول باید setInterval را نامگذاری کنید
مثال : از تمرین قبل برای این مثال استفاده می کنیم
دستور setInterval را حذف کنید به مسیر actions>variable رفته و دستور set variable را انتخاب کنید در قسمت variable نام دلخواهی مانند mymovie انتخاب کنید و expression را تیک زده و دستور setInterval را مثل قبل بنویسید
کد شما باید شبیه شکل زیر شده باشه:
stop();
mymovie = setInterval(_root,"nextframe",1000);
;
حالا یه لایه دیگه ایجاد کنید و روی آن یک نمونه دکمه بسازید و اکشن clearInterval را به آن نسبت دهید
در قسمت parameters نامی که به intervalخود نسبت دادید وارد کنید ( اینجا mymovie)
کد شما بصورت زیر است:
on (release) {
clearInterval(mymovie);
}
کلیپ را امتحان کنید هر جا دکمه زده شود حرکت متوقف می شود یعنی interval شما حذف شده است.