Flash AS 入門 “for”循環(huán)語(yǔ)句應(yīng)用
這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
本節(jié)應(yīng)掌握的知識(shí)要點(diǎn):
①for循環(huán)應(yīng)用;②nextFrame()、prevFrame()動(dòng)作應(yīng)用;③層深度的進(jìn)一步理解。
與條件判斷語(yǔ)句一樣,循環(huán)語(yǔ)句也是最具有實(shí)用性的語(yǔ)句,在滿足條件時(shí)程序會(huì)不斷重復(fù)執(zhí)行,直到設(shè)置的條件不成立才結(jié)束循環(huán),繼續(xù)執(zhí)行下面的語(yǔ)句。
這1講我們將學(xué)習(xí)一個(gè)最常用的for循環(huán)語(yǔ)句和兩個(gè)動(dòng)作語(yǔ)句nextFrame()、prevFrame()。
for循環(huán)語(yǔ)句格式如下:
for(變量初始值;循環(huán)條件;進(jìn)入下一循環(huán)){
條件成立時(shí)執(zhí)行的動(dòng)作}
nextFrame()進(jìn)入下一幀并停止在該幀
prevFrame()返回前一幀并停止在該幀
請(qǐng)看示例動(dòng)畫“實(shí)例1-8”。
>>>>>點(diǎn)擊查看動(dòng)畫效果<<<<<
實(shí)例1-8 for()循環(huán)語(yǔ)句應(yīng)用
畫面上是一個(gè)簡(jiǎn)單的線條變幻特效,點(diǎn)擊“刪除”按鈕線條會(huì)全部消失,點(diǎn)擊“向右”按鈕,會(huì)顯示另一個(gè)特效,如果不點(diǎn)擊刪除按鈕直接點(diǎn)擊“向右”按鈕,會(huì)顯示另一個(gè)特效。這個(gè)效果就是運(yùn)用for循環(huán)語(yǔ)句對(duì)一個(gè)含有簡(jiǎn)單動(dòng)作補(bǔ)間、實(shí)例名為“line”的影片剪輯進(jìn)行循環(huán)復(fù)制實(shí)現(xiàn)的。
打開(kāi)源文件看看,場(chǎng)景上有【按鈕】、【mc】、【as】3個(gè)圖層?!景粹o】圖層第1幀上有一個(gè)“刪除”按鈕和一個(gè)“向右”按鈕,第2幀上有一個(gè)“返回”按鈕;【mc】圖層上是一個(gè)實(shí)例名為“line_mc”的影片剪輯。
在【as】圖層第1幀上的語(yǔ)句:
stop();
line_mc._x=120;
line_mc._y=220;
line_mc._visible= 0; //設(shè)置作為父本的影片剪輯“line_mc”不可見(jiàn)。
for (i=1; i<100; i++) { //設(shè)定變量i的初始值為1,設(shè)定循環(huán)條件為i<100,進(jìn)入下一循環(huán)時(shí)變量i自加1。
line_mc.duplicateMovieClip("line_mc"+i, i); //復(fù)制新影片剪輯。
_root["line_mc"+i]._x = line_mc._x+3*i; //設(shè)置新復(fù)制的影片剪輯的橫坐標(biāo)。
_root["line_mc"+i]._rotation = 3.6*i; //設(shè)置新復(fù)制的影片剪輯的旋轉(zhuǎn)參數(shù)。
}
“刪除”按鈕上的語(yǔ)句:
on (release) {
for (i=1; i<100; i++) {
removeMovieClip("line_mc"+i);
}
}
“向右”按鈕上的語(yǔ)句:
on (release) {
nextFrame(); // 進(jìn)入并停止在下1幀
}
在【as】圖層第2幀上的語(yǔ)句:
for (i=2; i<100; i=i+2) {
line_mc.duplicateMovieClip("line_mc"+i, i);
_root["line_mc"+i]._x = line_mc._x+3*i;
}
“返回”按鈕上的語(yǔ)句:
on (release) {
prevFrame(); //返回前1幀
}
我們來(lái)分析一下語(yǔ)句的執(zhí)行過(guò)程,影片開(kāi)始播放時(shí)停留在第1幀上,將被復(fù)制的父本影片剪輯在場(chǎng)景上的坐標(biāo)定義到(120,200)位置,并使其不可見(jiàn),接下來(lái)根據(jù)for語(yǔ)句小括號(hào)“()”里設(shè)置的參數(shù),開(kāi)始執(zhí)行循環(huán)體內(nèi)的語(yǔ)句。第一個(gè)參數(shù)定義了變量i被賦予初始值為“1”,第2個(gè)參數(shù)定義了循環(huán)的條件為i<100,當(dāng)滿足這個(gè)條件時(shí),將循環(huán)執(zhí)行大括號(hào)“{}”內(nèi)的語(yǔ)句塊,第3個(gè)參數(shù)i++,定義了在每一次循環(huán)結(jié)束時(shí)i的值加1,直到超過(guò)i<100的條件為止才停止循環(huán)。
循環(huán)體大括號(hào)“{}”內(nèi)的動(dòng)作是復(fù)制實(shí)例名為“line_mc”的影片剪輯,并為新復(fù)制的影片剪輯命名為“line_mci”,層深度為“i”,設(shè)置其橫坐標(biāo)位置為場(chǎng)景上的父本“line_mc”影片剪輯的橫坐標(biāo)加上“3*i”像素,并旋轉(zhuǎn)3.6*i度。
當(dāng)循環(huán)開(kāi)始時(shí),i的值為1,符合i<100的條件,于是復(fù)制出第一個(gè)新影片剪輯,名稱為“line_mc1”,在父本“line_mc”的位置上右移3個(gè)像素,并旋轉(zhuǎn)3.6度。至此第一次循環(huán)結(jié)束,i的值加1。繼而進(jìn)行下一輪循環(huán)。
如此不斷的循環(huán),直至i的值為100時(shí),便超出了設(shè)置的條件,于是循環(huán)結(jié)束,停止復(fù)制“line_mc”影片剪輯。
此時(shí),場(chǎng)景上新復(fù)制出的影片剪輯以橫向相差3像素、旋轉(zhuǎn)相差3.6度等距排列并同時(shí)播放,從而形成了有規(guī)律奇妙變幻的特效。
再來(lái)分析“刪除”按鈕上的語(yǔ)句,與第1幀上的循環(huán)條件一樣,差別只是循環(huán)體內(nèi)執(zhí)行的動(dòng)作不同,當(dāng)滿足條件時(shí)循環(huán)刪除上一步新復(fù)制出的所有影片剪輯。
點(diǎn)擊“向右”按鈕時(shí),播放頭進(jìn)入第2幀,再按照新的循環(huán)條件循環(huán)復(fù)制線條,并為新復(fù)制的線條賦予新的屬性值。
可以看到,第2幀的語(yǔ)句里,循環(huán)條件里面i的初始值為2,每循環(huán)一次i遞增2,設(shè)置的層深度為i,即每個(gè)復(fù)制出的新影片剪輯所占用的都為偶數(shù)深度層。
新影片剪輯的屬性設(shè)置與第1幀上所不同的僅僅是減去了旋轉(zhuǎn)屬性的設(shè)置,我們看到的又是第2種特效。
如果在第1幀不點(diǎn)擊“刪除”按鈕而直接點(diǎn)擊“向右”按鈕,我們會(huì)看到第3種特效。這是由于上一次復(fù)制的影片剪輯沒(méi)有刪除,在第2幀上所有偶數(shù)深度層上的線條被新復(fù)制出的線條替換掉了,而奇數(shù)深度層上原來(lái)的線條則保留了下來(lái),由此就組合出了另一種效果。 點(diǎn)擊第2幀上的“返回”按鈕,播放頭回到第1幀,再一次按照第1幀的動(dòng)作腳本循環(huán)復(fù)制“line_mc”,于是第一個(gè)特效又出現(xiàn)在場(chǎng)景上。
在設(shè)置循環(huán)語(yǔ)句的條件時(shí),必須注意條件的邏輯性和合理性,特別要避免程序陷入死循環(huán)。
比如,如果將以上for循環(huán)的參數(shù)設(shè)置為for(i=1; i>0; i++),這個(gè)條件就會(huì)永久成立,導(dǎo)致程序陷入死循環(huán)。
課后練習(xí):
利用實(shí)例8源文件,按以下要求完成練習(xí):
1. 在第1幀用for語(yǔ)句復(fù)制出60根線條,通過(guò)設(shè)置旋轉(zhuǎn)屬性形成一個(gè)變幻的圓環(huán)狀特效,并居中顯示。
2. 點(diǎn)擊“向右”按鈕即在第2幀復(fù)制出100根線條,通過(guò)設(shè)置其y坐標(biāo)屬性、橫向縮放屬性和旋轉(zhuǎn)屬性形成第2個(gè)特效。居中顯示。
3. 點(diǎn)擊第2個(gè)特效畫面的“向左”按鈕返回第1個(gè)特效,點(diǎn)擊“向右”按鈕顯示第3個(gè)組合特效。
>>>>>點(diǎn)擊查看動(dòng)畫效果<<<<<
課后練習(xí)1-8效果
這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
相關(guān)文章

flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來(lái)看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19
Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來(lái)輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來(lái)看看簡(jiǎn)單的例子,需要的朋友可以參考下http://www.dhdzp.com/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25
Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來(lái)一起分享學(xué)習(xí)2018-01-12
Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來(lái)分享學(xué)習(xí)2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18
Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來(lái)看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11
Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?
Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?Flash中想要給花朵制作一段搖擺的動(dòng)畫效果,該怎么制作呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23
Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來(lái),該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23












