Flash AS 入門 “for”循環(huán)語句應(yīng)用

這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
本節(jié)應(yīng)掌握的知識要點:
?、賔or循環(huán)應(yīng)用;②nextFrame()、prevFrame()動作應(yīng)用;③層深度的進一步理解。
與條件判斷語句一樣,循環(huán)語句也是最具有實用性的語句,在滿足條件時程序會不斷重復(fù)執(zhí)行,直到設(shè)置的條件不成立才結(jié)束循環(huán),繼續(xù)執(zhí)行下面的語句。
這1講我們將學習一個最常用的for循環(huán)語句和兩個動作語句nextFrame()、prevFrame()。
for循環(huán)語句格式如下:
for(變量初始值;循環(huán)條件;進入下一循環(huán)){
條件成立時執(zhí)行的動作}
nextFrame()進入下一幀并停止在該幀
prevFrame()返回前一幀并停止在該幀
請看示例動畫“實例1-8”。
實例1-8 for()循環(huán)語句應(yīng)用
畫面上是一個簡單的線條變幻特效,點擊“刪除”按鈕線條會全部消失,點擊“向右”按鈕,會顯示另一個特效,如果不點擊刪除按鈕直接點擊“向右”按鈕,會顯示另一個特效。這個效果就是運用for循環(huán)語句對一個含有簡單動作補間、實例名為“line”的影片剪輯進行循環(huán)復(fù)制實現(xiàn)的。
打開源文件看看,場景上有【按鈕】、【mc】、【as】3個圖層。【按鈕】圖層第1幀上有一個“刪除”按鈕和一個“向右”按鈕,第2幀上有一個“返回”按鈕;【mc】圖層上是一個實例名為“line_mc”的影片剪輯。
在【as】圖層第1幀上的語句:
stop();
line_mc._x=120;
line_mc._y=220;
line_mc._visible= 0; //設(shè)置作為父本的影片剪輯“line_mc”不可見。
for (i=1; i<100; i++) { //設(shè)定變量i的初始值為1,設(shè)定循環(huán)條件為i<100,進入下一循環(huán)時變量i自加1。
line_mc.duplicateMovieClip("line_mc"+i, i); //復(fù)制新影片剪輯。
_root["line_mc"+i]._x = line_mc._x+3*i; //設(shè)置新復(fù)制的影片剪輯的橫坐標。
_root["line_mc"+i]._rotation = 3.6*i; //設(shè)置新復(fù)制的影片剪輯的旋轉(zhuǎn)參數(shù)。
}
“刪除”按鈕上的語句:
on (release) {
for (i=1; i<100; i++) {
removeMovieClip("line_mc"+i);
}
}
“向右”按鈕上的語句:
on (release) {
nextFrame(); // 進入并停止在下1幀
}
在【as】圖層第2幀上的語句:
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;
}
“返回”按鈕上的語句:
on (release) {
prevFrame(); //返回前1幀
}
我們來分析一下語句的執(zhí)行過程,影片開始播放時停留在第1幀上,將被復(fù)制的父本影片剪輯在場景上的坐標定義到(120,200)位置,并使其不可見,接下來根據(jù)for語句小括號“()”里設(shè)置的參數(shù),開始執(zhí)行循環(huán)體內(nèi)的語句。第一個參數(shù)定義了變量i被賦予初始值為“1”,第2個參數(shù)定義了循環(huán)的條件為i<100,當滿足這個條件時,將循環(huán)執(zhí)行大括號“{}”內(nèi)的語句塊,第3個參數(shù)i++,定義了在每一次循環(huán)結(jié)束時i的值加1,直到超過i<100的條件為止才停止循環(huán)。
循環(huán)體大括號“{}”內(nèi)的動作是復(fù)制實例名為“line_mc”的影片剪輯,并為新復(fù)制的影片剪輯命名為“line_mci”,層深度為“i”,設(shè)置其橫坐標位置為場景上的父本“line_mc”影片剪輯的橫坐標加上“3*i”像素,并旋轉(zhuǎn)3.6*i度。
當循環(huán)開始時,i的值為1,符合i<100的條件,于是復(fù)制出第一個新影片剪輯,名稱為“line_mc1”,在父本“line_mc”的位置上右移3個像素,并旋轉(zhuǎn)3.6度。至此第一次循環(huán)結(jié)束,i的值加1。繼而進行下一輪循環(huán)。
如此不斷的循環(huán),直至i的值為100時,便超出了設(shè)置的條件,于是循環(huán)結(jié)束,停止復(fù)制“line_mc”影片剪輯。
此時,場景上新復(fù)制出的影片剪輯以橫向相差3像素、旋轉(zhuǎn)相差3.6度等距排列并同時播放,從而形成了有規(guī)律奇妙變幻的特效。
再來分析“刪除”按鈕上的語句,與第1幀上的循環(huán)條件一樣,差別只是循環(huán)體內(nèi)執(zhí)行的動作不同,當滿足條件時循環(huán)刪除上一步新復(fù)制出的所有影片剪輯。
點擊“向右”按鈕時,播放頭進入第2幀,再按照新的循環(huán)條件循環(huán)復(fù)制線條,并為新復(fù)制的線條賦予新的屬性值。
可以看到,第2幀的語句里,循環(huán)條件里面i的初始值為2,每循環(huán)一次i遞增2,設(shè)置的層深度為i,即每個復(fù)制出的新影片剪輯所占用的都為偶數(shù)深度層。
新影片剪輯的屬性設(shè)置與第1幀上所不同的僅僅是減去了旋轉(zhuǎn)屬性的設(shè)置,我們看到的又是第2種特效。
如果在第1幀不點擊“刪除”按鈕而直接點擊“向右”按鈕,我們會看到第3種特效。這是由于上一次復(fù)制的影片剪輯沒有刪除,在第2幀上所有偶數(shù)深度層上的線條被新復(fù)制出的線條替換掉了,而奇數(shù)深度層上原來的線條則保留了下來,由此就組合出了另一種效果。 點擊第2幀上的“返回”按鈕,播放頭回到第1幀,再一次按照第1幀的動作腳本循環(huán)復(fù)制“line_mc”,于是第一個特效又出現(xiàn)在場景上。
在設(shè)置循環(huán)語句的條件時,必須注意條件的邏輯性和合理性,特別要避免程序陷入死循環(huán)。
比如,如果將以上for循環(huán)的參數(shù)設(shè)置為for(i=1; i>0; i++),這個條件就會永久成立,導(dǎo)致程序陷入死循環(huán)。
課后練習:
利用實例8源文件,按以下要求完成練習:
1. 在第1幀用for語句復(fù)制出60根線條,通過設(shè)置旋轉(zhuǎn)屬性形成一個變幻的圓環(huán)狀特效,并居中顯示。
2. 點擊“向右”按鈕即在第2幀復(fù)制出100根線條,通過設(shè)置其y坐標屬性、橫向縮放屬性和旋轉(zhuǎn)屬性形成第2個特效。居中顯示。
3. 點擊第2個特效畫面的“向左”按鈕返回第1個特效,點擊“向右”按鈕顯示第3個組合特效。
課后練習1-8效果
這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
相關(guān)文章
- flash cs6想要實現(xiàn)鼠標跟隨效果?該怎么制作呢?今天我們就來看看使用as2.0實現(xiàn)鼠標跟隨效果的教程,需要的朋友可以參考下2019-05-19
- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來輸入文本,該怎么使用代碼輸入文本呢?請看下文詳細的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來看看簡單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2018-01-25- 本教程給大家分享一個Flash小教程,教大家在Flash CS6中怎么實現(xiàn)鼠標點擊決定圖像位置?方法很簡單,感興趣的朋友歡迎前來一起分享學習2018-01-12
- 本教程教腳本之家的ActionScript教程學習者在Flash中如何用代碼將圖片放在自己想要的舞臺位置,教程講解的詳細,感興趣的朋友歡迎前來分享學習2017-11-20
在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學習者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細,方法也不難,非常適合Flash新手入門學習2017-11-18Flash怎么設(shè)置元件坐標?flash使用代碼設(shè)置元件的坐標的教程
Flash怎么設(shè)置元件坐標?flash中導(dǎo)如的元件需要添加坐標,該怎么定位元件坐標呢?下面我們就來看看flash使用代碼設(shè)置元件的坐標的教程,需要的朋友可以參考下2017-10-11- Flash怎么制作來回搖擺的花朵的動畫?Flash中想要給花朵制作一段搖擺的動畫效果,該怎么制作呢?下面我們就來看看詳細的教程,很簡單,需要的朋友可以參考下2017-05-23
- Flash怎么制作流動七彩色的文字?想要讓文字動起來,該怎么使用flash給文字制作一個流動七彩色的動畫呢?下面我們就來看看詳細的教程,需要的朋友可以參考下2017-04-23