控制|循環(huán)|語句
眾所周知,flash中動畫依靠的是時間軸,在沒有腳本的情況下,動畫會依照時間軸從第一幀不停的播放到最后一幀,然后始重復(fù)播放或者干脆停止,Flash的流程控制與循環(huán)控制語句
。為了能更好的控制動畫,就必須使用腳本語句。而要想使動畫具有邏輯判斷的功能,就要使用流程控制和循環(huán)控制語句了!下面通過幾個簡單的小例子來學(xué)習(xí)流程與循環(huán)控制語句。一、流程控制語句
所謂流程控制,無非就是我們想控制動畫程序的執(zhí)行順序而已。我們可以讓flash根據(jù)一些特定的條件,來決定要執(zhí)行哪個程序。這樣就好象給了程序一些判斷的機(jī)制。
if...else控制語句
根據(jù)英文的意思,大家可以簡單的理解上面的控制語句:如果...就...否則...就... 下面來看看這個流程控制語句的書寫格式。
if(條件){
//條件成立的話,就執(zhí)行這里的程序。
}else{
//條件不成立的話就執(zhí)行這里的程序。
}
下面重點說一下if后面括號內(nèi)的條件。這個條件可以是一個固定的值,也可以是一個變量或表達(dá)式。如果條件成立的話,也就是條件為真(true),就會執(zhí)行if后面的程序,如果條件不成立,也就是條件為假(false),就會執(zhí)行else里的程序。例如:有這么一個條件,A>B 將這個表達(dá)式代入if后面的括號內(nèi),這個流程語句的意思就變成:如果A>B的話,就執(zhí)行第一個大括號內(nèi)的程序,如果A不大于B,就將執(zhí)行else后面大括號內(nèi)的程序。
實例講解:
1、新建一個flash文檔,在舞臺上繪制一個圓,選中圓并按F8轉(zhuǎn)換成影片剪輯,起名為:圓 這樣就在舞臺上創(chuàng)建一個圓的實例。
2、選中舞臺上的實例,按F9打開動作面板,輸入如下腳本:
onClipEvent (enterFrame) {
if (this._x<400) {//流程條件控制語句,如果這個圓的實例的X軸坐標(biāo)小于400,就執(zhí)行后面的程序。
this._x += 5;//讓這個圓的坐標(biāo)向右移動5個象素
} else {
this._x = 0;//控制語句,如果剛才的條件不成立。也就是圓實例的X坐標(biāo)不小于400,就讓它的X坐標(biāo)為0
}
}
腳本最終編寫效果如圖:
最終效果演示:(下載源文件點擊這里)
上面的腳本是一個非常簡單的流程控制語句,根據(jù)實例的坐標(biāo)來進(jìn)行判斷。因為我們使用了enterFrame事件,所以flash會不停的執(zhí)行下面if...else語句。
3、測試影片。會看到圓不停的向右移動,當(dāng)它的X坐標(biāo)大于或等于400的時候,程序會把它的X坐標(biāo)重新更改為0。
二、循環(huán)控制語句
所謂的循環(huán)語句,其實也是用條件來控制的,只要條件成立,那么,程序就會不停的執(zhí)行下去,一直執(zhí)行到條件不成立為止!常用的循環(huán)語句包括while循環(huán)、for循環(huán)等。因為篇幅有限,下面只重點講解for循環(huán)的使用方法。
FOR循環(huán)命令格式:
for(初始變量;條件語句;迭加命令語句){
//用戶自己編寫的腳本,
電腦資料
《Flash的流程控制與循環(huán)控制語句》(http://www.msguai.com)。}
首先強(qiáng)調(diào)一點,for語句的括號內(nèi)有三個項目,必須要用分號間隔開!
初始變量:循環(huán)語句也是用條件是否成立來控制的,通常我們用一個變量來控制程序執(zhí)行的次數(shù)。那么,這個初始變量就要先定義一個值。要注意的是,初始變量這個項目只執(zhí)行一次!
條件語句:這個項目就是我們的判斷語句了。如果這個項目判斷為真(true),也就是條件成立了。它就直接跳進(jìn)大括號{}內(nèi)執(zhí)行里面的程序!反之,如果條件為假(false),它就直接跳出這個for語句了。
迭加命令語句:接上面的條件語句,如果條件語句成立,會執(zhí)行{}內(nèi)的程序,那么執(zhí)行完程序之后,就要回來執(zhí)行迭加命令語句了。通常它就用來增加或減少剛開始時的初始變量的值。
實例講解:
1、新建一個flash文檔,在舞臺上繪制一個圓,選中圓并按F8轉(zhuǎn)換成影片剪輯,起名為:圓 這樣就在舞臺上創(chuàng)建一個圓的實例。
2、為這個實例起名為:yuan 如圖:
3、添加一個新的層,并選中新層的第一幀,按F9打開動作面板,輸入如下腳本:
for (i=1; i<5; i++) { //我們定義一個變量i來控制程序的循環(huán)次數(shù)。條件語句為判斷i是否小于5,迭加命令就讓每次程序執(zhí)行之后,讓i自己增加一,使程序循環(huán)4次!
duplicateMovieClip("yuan", "yuan"+i, i);//duplicateMovieClip是復(fù)制命令,用來復(fù)制舞臺上名字叫yuan的實例,每次復(fù)制出來一個,就把新復(fù)制出來的實例改名為"yuan"+i。影片的深度也改為i
_root["yuan"+i]._x = random(400);
_root["yuan"+i]._y = random(300);//設(shè)置每次復(fù)制出來的新實例的X、Y坐標(biāo),具體數(shù)值隨機(jī)產(chǎn)生。
_root["yuan"+i]._alpha = random(100);//設(shè)置每次復(fù)制出來的新實例的透明度,具體數(shù)值從100里隨機(jī)產(chǎn)生。
}
如果大家實在覺得for語言很難讀懂的話,你可以按照for語言執(zhí)行的順序把i=1代入程序走一遍,可以幫助你理解程序。例如:當(dāng)i等于1的時候,程序開始判斷它是否小于5,那么1肯定小于5了,條件為真,就執(zhí)行{}內(nèi)的復(fù)制程序,同時復(fù)制出來的新實例的名字就變成了yuan1 ,接著就是設(shè)置yuan1的坐標(biāo)和透明度。之后,for語句開始回去執(zhí)行i++,此時,i的值就變?yōu)椋擦。然后又開始循環(huán)判斷執(zhí)行下去......(你可以算一下,這個for循環(huán)總共循環(huán)了幾次呢?答案是4次。)
腳本如圖:
4、選中時間軸的第6幀,按F6插入一關(guān)鍵幀,打開動作面板輸入以下腳本:
gotoAndPlay(1);
讓flash播放到第6幀的時候返回第1幀再來執(zhí)行for循環(huán)語句。
如圖:
5、測試效果吧,你會看到舞臺上會循環(huán)4次復(fù)制出4個圓。
最終效果演示:(下載源文件點擊這里)
希望大家能通過這兩個簡單的例子掌握流程控制語句和循環(huán)控制語句