Flash AS 入門教程 setInterval函數(shù)應(yīng)用舉例

setInterval動(dòng)作的作用是在播放動(dòng)畫的時(shí),每隔一定時(shí)間就調(diào)用函數(shù),方法或?qū)ο蟆?img alt="" src="http://img.jbzj.com/file_images/article/201303/20130314001623159.gif" />源文件下載
本節(jié)知識(shí)要點(diǎn):
1、setInterval(function,interval,arg);
第一個(gè)參數(shù)function:也就是要調(diào)用的函數(shù)或方法;可以是匿名的函數(shù)、命名函數(shù)、對(duì)象方法或電影剪輯
第二個(gè)參數(shù)interval:調(diào)用的時(shí)間間隔,毫秒為單位。
第三個(gè)參數(shù)arg:傳遞給將被調(diào)用的函數(shù)或方法的參數(shù)
2、clearInterval()
清除對(duì) setInterval() 的調(diào)用。
應(yīng)用舉例
例01 用setInterval做下雨效果
我們過去做下雨效果時(shí),一般是通過幀的循環(huán)來復(fù)制雨滴的,幀的循環(huán)其實(shí)也就是間隔一定的時(shí)間。那么,我們當(dāng)然也完全可以用setInterval來每隔一定時(shí)間就調(diào)用函數(shù),而這個(gè)函數(shù)的功能就是復(fù)制一滴雨滴,并且設(shè)置其坐標(biāo)。
打開3.6.1.fla文件,在第一幀上的代碼:
i = 0;
rain._visible = 0;
function xiayu() {
duplicateMovieClip(rain, "r"+i, i);
_root["r"+i]._x = Math.round(Math.random()*550);
_root["r"+i]._y = Math.round(Math.random()*400);
i++;
if (i == 100) {
i = 0;
}
}
var sj;//設(shè)置變量
sj = setInterval(xiayu,10); //每隔10毫秒調(diào)函數(shù)xiayu一次。
運(yùn)行程序,檢測(cè)效果。
現(xiàn)在,我們?cè)囋噮?shù)的傳遞。我們把rain做為參數(shù)傳遞,那么上面的程序可以改為:
.....
function xiayu(md) {
duplicateMovieClip(md, "r"+i, i);
........
}
sj = setInterval(xiayu,10,rain);
運(yùn)行程序,檢查一下,效果和上面的程序是不是一樣?
例02 使幾個(gè)影片剪輯mc間隔相同時(shí)間播放;
本例題來源于網(wǎng)友的提問,看下圖:
問題思路:
對(duì)于順序播放:設(shè)置一個(gè)播放一個(gè)mc的函數(shù),再用setInterval根據(jù)輸入文本得到的間隔時(shí)間來調(diào)用這個(gè)函數(shù);同時(shí),利用數(shù)組變量改變這個(gè)函數(shù)里的mc。
對(duì)于隨機(jī)播放: 可以用上一節(jié)的亂數(shù)排列知識(shí)來處理。
打開3.6.2.fla文件分別查看各處腳本:
1、主時(shí)間軸第1幀上的腳本:
mc = [aa, bb, cc, dd];//把4個(gè)影片簡(jiǎn)輯的實(shí)例名作為數(shù)組mc的元素
time = ""; //設(shè)置輸入文本的初始值為""
i = 0; //設(shè)置變量i的初始值為0
function du() {//設(shè)置自定義函數(shù),函數(shù)名為du
i++;
mc[i].play();//數(shù)組中第i個(gè)元素開始播放
if (i == 3) {
clearInterval(sj);//最后一個(gè)mc播放后,清除sj表示的setInterval函數(shù)
}
}
function duing() {//設(shè)置自定義函數(shù),函數(shù)名為duing;
k = Math.floor(Math.random()*mc.length);//隨機(jī)選擇數(shù)組mc中的一個(gè)元素的序號(hào)
mc[k].play();//數(shù)組mc中第k個(gè)元素開始播放
mc.splice(k, 1);//刪除數(shù)組mc中的第k個(gè)元素(影片剪輯)
if (mc.length == 0) {
clearInterval(sjing);//最后一個(gè)mc播放后,清除sjing表示的setInterval函數(shù)
}
}
2、順序播放按扭上的腳本:
on (release) {
mc = [aa, bb, cc, dd];//把4個(gè)影片簡(jiǎn)輯的實(shí)例名作為數(shù)組mc的元素(為了能夠重復(fù)使用)
i = 0; //設(shè)置變量i的初始值為0(為了能夠重復(fù)使用)
if (time != "") { //如果輸入文本不為空(輸入了數(shù)字)
aa.play(); //第一個(gè)mc播放(為了第一個(gè)mc的運(yùn)行不間隔時(shí)間)
var sj = setInterval(du, time*1000);
//設(shè)置setInterval函數(shù),每隔time秒調(diào)用一次函數(shù)du
}
}
3、隨機(jī)播放按扭上的腳本:
on (release) {
mc = [aa, bb, cc, dd];
i=0;
if (time != "") {
duing(); //調(diào)duing函數(shù)(為了第一個(gè)mc的運(yùn)行不間隔時(shí)間)
var sjing = setInterval(duing, time*1000);
//設(shè)置setInterval函數(shù),每隔time秒調(diào)用一次函數(shù)duing
}
}
作業(yè)
把例2的要求改為:不管順序播放還是隨機(jī)播放,使一個(gè)mc播放結(jié)束,后一個(gè)mc開始播放,這時(shí)的時(shí)間間隔等于輸入文本的時(shí)間,如下圖。源文件下載
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡(jiǎn)單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來一起分享學(xué)習(xí)2018-01-12Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來分享學(xué)習(xí)2017-11-20在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11Flash怎么制作來回?fù)u擺的花朵的動(dòng)畫?
Flash怎么制作來回?fù)u擺的花朵的動(dòng)畫?Flash中想要給花朵制作一段搖擺的動(dòng)畫效果,該怎么制作呢?下面我們就來看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23- Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來,該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23