Flash的流程式控制制與迴圈控制語句
來源:互聯網
上載者:User
控制|迴圈|語句 眾所周知,flash中動畫依靠的是時間軸,在沒有指令碼的情況下,動畫會依照時間軸從第一幀不停的播放至最後一幀,然後始重複播放或者乾脆停止。為了能更好的控制動畫,就必須使用指令碼語句。而要想使動畫具有邏輯判斷的功能,就要使用流程式控制制和迴圈控制語句了!下面通過幾個簡單的小例子來學習流程與迴圈控制語句。
一、流程式控制制語句
所謂流程式控制制,無非就是我們想控制動畫程式的執行順序而已。我們可以讓flash根據一些特定的條件,來決定要執行哪個程式。這樣就好象給了程式一些判斷的機制。
if...else控制語句
根據英文的意思,大家可以簡單的理解上面的控制語句:如果...就...否則...就... 下面來看看這個流程式控制制語句的書寫格式。
if(條件){
//條件成立的話,就執行這裡的程式。
}else{
//條件不成立的話就執行這裡的程式。
}
下面重點說一下if後面括弧內的條件。這個條件可以是一個固定的值,也可以是一個變數或運算式。如果條件成立的話,也就是條件為真(true),就會執行if後面的程式,如果條件不成立,也就是條件為假(false),就會執行else裡的程式。例如:有這麼一個條件,A>B 將這個運算式代入if後面的括弧內,這個流程語句的意思就變成:如果A>B的話,就執行第一個大括弧內的程式,如果A不大於B,就將執行else後面大括弧內的程式。
執行個體講解:
1、建立一個flash文檔,在舞台上繪製一個圓,選中圓並按F8轉換成影片剪輯,起名為:圓 這樣就在舞台上建立一個圓的執行個體。
2、選中舞台上的執行個體,按F9開啟動作面板,輸入如下指令碼:
onClipEvent (enterFrame) {
if (this._x<400) {//流程條件控制語句,如果這個圓的執行個體的X軸座標小於400,就執行後面的程式。
this._x += 5;//讓這個圓的座標向右移動5個象素
} else {
this._x = 0;//控制語句,如果剛才的條件不成立。也就是圓執行個體的X座標不小於400,就讓它的X座標為0
}
}
指令碼最終編寫效果如圖:
最終效果示範:(下載源檔案點擊這裡)
上面的指令碼是一個非常簡單的流程式控制制語句,根據執行個體的座標來進行判斷。因為我們使用了enterFrame事件,所以flash會不停的執行下面if...else語句。
3、測試影片。會看到圓不停的向右移動,當它的X座標大於或等於400的時候,程式會把它的X座標重新更改為0。
二、迴圈控制語句
所謂的迴圈語句,其實也是用條件來控制的,只要條件成立,那麼,程式就會不停的執行下去,一直執行到條件不成立為止!常用的迴圈語句包括while迴圈、for迴圈等。因為篇幅有限,下面只重點講解for迴圈的使用方法。
FOR迴圈命令格式:
for(初始變數;條件陳述式;迭加命令語句){
//使用者自己編寫的指令碼。
}
首先強調一點,for語句的括弧內有三個項目,必須要用分號間隔開!
初始變數:迴圈語句也是用條件是否成立來控制的,通常我們用一個變數來控製程序執行的次數。那麼,這個初始變數就要先定義一個值。要注意的是,初始變數這個項目只執行一次!
條件陳述式:這個項目就是我們的判斷語句了。如果這個項目判斷為真(true),也就是條件成立了。它就直接跳進大括弧{}內執行裡面的程式!反之,如果條件為假(false),它就直接跳出這個for語句了。
迭加命令語句:接上面的條件陳述式,如果條件陳述式成立,會執行{}內的程式,那麼執行完程式之後,就要回來執行迭加命令語句了。通常它就用來增加或減少剛開始時的初始變數的值。
執行個體講解:
1、建立一個flash文檔,在舞台上繪製一個圓,選中圓並按F8轉換成影片剪輯,起名為:圓 這樣就在舞台上建立一個圓的執行個體。
2、為這個執行個體起名為:yuan 如圖:
3、添加一個新的層,並選中新層的第一幀,按F9開啟動作面板,輸入如下指令碼:
for (i=1; i<5; i++) { //我們定義一個變數i來控製程序的迴圈次數。條件陳述式為判斷i是否小於5,迭加命令就讓每次程式執行之後,讓i自己增加一,使程式迴圈4次!
duplicateMovieClip("yuan", "yuan"+i, i);//duplicateMovieClip是複製命令,用來複製舞台上名字叫yuan的執行個體,每次複製出來一個,就把新複製出來的執行個體改名為"yuan"+i。影片的深度也改為i
_root["yuan"+i]._x = random(400);
_root["yuan"+i]._y = random(300);//設定每次複製出來的新執行個體的X、Y座標,具體數值隨機產生。
_root["yuan"+i]._alpha = random(100);//設定每次複製出來的新執行個體的透明度,具體數值從100裡隨機產生。
}
如果大家實在覺得for語言很難讀懂的話,你可以按照for語言執行的順序把i=1代入程式走一遍,可以協助你理解程式。例如:當i等於1的時候,程式開始判斷它是否小於5,那麼1肯定小於5了,條件為真,就執行{}內的複製程式,同時複製出來的新執行個體的名字就變成了yuan1 ,接著就是設定yuan1的座標和透明度。之後,for語句開始回去執行i++,此時,i的值就變為2了。然後又開始迴圈判斷執行下去......(你可以算一下,這個for迴圈總共迴圈了幾次呢?答案是4次。)
指令碼如圖:
4、選中時間軸的第6幀,按F6插入一主要畫面格,開啟動作面板輸入以下指令碼:
gotoAndPlay(1);
讓flash播放至第6幀的時候返回第1幀再來執行for迴圈語句。
如圖:
5、測試效果吧,你會看到舞台上會迴圈4次複製出4個圓。
最終效果示範:(下載源檔案點擊這裡)
希望大家能通過這兩個簡單的例子掌握流程式控制制語句和迴圈控制語句