這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
源文件下載
本節(jié)應(yīng)掌握的知識(shí)要點(diǎn):
①條件判斷語(yǔ)句if、else的應(yīng)用;②trace語(yǔ)句應(yīng)用;③動(dòng)態(tài)文本應(yīng)用;④在動(dòng)作中使用“幀標(biāo)簽”定位;⑤認(rèn)識(shí)“輸出”面板;⑥比較運(yùn)算符“<”、自加運(yùn)算符“++”;⑦了解常量、變量、表達(dá)式。
條件判斷語(yǔ)句在flash中是實(shí)用性很強(qiáng)、使用也很頻繁的語(yǔ)句,這一節(jié)將學(xué)習(xí)條件判斷語(yǔ)句“if、else”以及“trace”語(yǔ)句的應(yīng)用。
if是最基本的條件判斷語(yǔ)句,結(jié)合else使用是最常見(jiàn)的形式,在flash中具有很高的實(shí)用性,其格式如下:
if(條件) { //小括號(hào)里的條件是一個(gè)計(jì)算結(jié)果為 true 或 false 的表達(dá)式。
這里是當(dāng)條件計(jì)算為true時(shí)執(zhí)行的指令
}else{ //否則
當(dāng)條件執(zhí)行為false時(shí)執(zhí)行的指令
}
trace語(yǔ)句是在測(cè)試代碼時(shí)經(jīng)常使用的語(yǔ)句,其格式是:trace()
小括號(hào)“()”中的參數(shù)為變量或表達(dá)式,其作用是,當(dāng)按【Ctrl + Enter】鍵測(cè)試動(dòng)畫時(shí),把小括號(hào)“()”中指定的變量的值或表達(dá)式的計(jì)算結(jié)果在“輸出”面板中顯示出來(lái),以便在測(cè)試時(shí)檢查程序代碼是否正常,這是一個(gè)檢查代碼的非常方便的方法。
動(dòng)態(tài)文本是在動(dòng)畫播放時(shí)顯示動(dòng)態(tài)更新的文本字段。
下面我們用一個(gè)簡(jiǎn)單的實(shí)例來(lái)解析條件判斷語(yǔ)句的效果,請(qǐng)看“實(shí)例1-5”:
>>>>>點(diǎn)擊查看動(dòng)畫效果<<<<<
實(shí)例1-5 條件判斷語(yǔ)句if、else應(yīng)用
點(diǎn)擊畫面上的“play”按鈕,小松鼠奔跑三個(gè)來(lái)回后,跳到另一個(gè)畫面中原地反復(fù)翻轉(zhuǎn)跳躍,點(diǎn)擊“replay”按鈕將再一次從第一個(gè)畫面反復(fù)播放。這個(gè)效果就是用了條件判斷語(yǔ)句if和else實(shí)現(xiàn)的。
打開源文件,從源文件中點(diǎn)擊時(shí)間軸右上角的【編輯場(chǎng)景】按鈕,顯示出這個(gè)動(dòng)畫文件里有“場(chǎng)景1”和“場(chǎng)景2”兩個(gè)場(chǎng)景。
“場(chǎng)景1”的右下角有一個(gè)動(dòng)態(tài)文本框。【mc】圖層上有一個(gè)長(zhǎng)度為40幀的動(dòng)作補(bǔ)間動(dòng)畫,第1-20幀,小松鼠從場(chǎng)景的左邊跑到右邊,第21-40幀,又從右邊跑回到左邊,如此來(lái)回奔跑。
“場(chǎng)景2”的右下角也有一個(gè)動(dòng)態(tài)文本框。時(shí)間軸上共有20幀,在【mc】圖層上,第1至20幀是一個(gè)補(bǔ)間動(dòng)畫,小松鼠從場(chǎng)景左端跑到場(chǎng)景中心原地跳躍,到第30幀上,小松鼠翻轉(zhuǎn)身面朝左方依然原地跳躍。
注意看看,場(chǎng)景2【AS】圖層的第20幀上有一個(gè)小紅旗標(biāo)志,還有一個(gè)小寫子母“p”,這是一個(gè)名稱為“p”的幀標(biāo)簽。
再來(lái)看看源文件中的動(dòng)作腳本,場(chǎng)景1【as】圖層上設(shè)置的語(yǔ)句:
第1幀上的語(yǔ)句:stop(); // 在第1幀停止播放。
第2幀上的語(yǔ)句:i = 1; //設(shè)置一個(gè)變量i,并賦初始值為1。
第40幀上的語(yǔ)句:
if (i<3) { // 當(dāng)i小于3時(shí)
gotoAndPlay(3); // 跳轉(zhuǎn)到第3幀并播放
} else { // 否則(當(dāng)不符合i<3的條件時(shí))
gotoAndPlay("p"); // 跳轉(zhuǎn)到幀標(biāo)簽”p”的位置并播放
}
trace(i); // 在輸出面板上顯示變量i的值
t_txt=”i= ”+i; //在變量名為t_txt的動(dòng)態(tài)文本框中顯示字符串”i=”并上i的值。(這里的+號(hào)是連接符,相當(dāng)于add)
i++; //變量i自加1,等同于i=i+1
“play”按鈕上的語(yǔ)句:
on (release) {
play();
} // 點(diǎn)擊按鈕時(shí)開始播放
場(chǎng)景2【AS】圖層第40幀上的語(yǔ)句:gotoAndPlay("p"); // 跳轉(zhuǎn)到幀標(biāo)簽“p”處并播放
“replay”按鈕上的語(yǔ)句:
on (release) {
gotoAndPlay(“場(chǎng)景 1”,2);
} // 點(diǎn)擊按鈕時(shí)跳轉(zhuǎn)到場(chǎng)景1第2幀并播放
我們來(lái)分析一下語(yǔ)句執(zhí)行的過(guò)程,影片開始時(shí)停止在第1幀,點(diǎn)擊“play”按鈕即開始播放,當(dāng)播放頭前進(jìn)到第40幀時(shí),由if語(yǔ)句開始第1次判斷是否符合i<3的條件,由于在第2幀定義了變量i的初始值為1,此時(shí)判斷的結(jié)果為true,這時(shí)執(zhí)行if后面大括號(hào)“{}”中的語(yǔ)句,播放頭跳轉(zhuǎn)到第3幀再次播放,同時(shí)“輸出”面板中顯示出i的值為“1”,如圖1-9。這時(shí),動(dòng)態(tài)文本框中也會(huì)顯示出文本字段“i= 1”.接下來(lái)i自加1,值變?yōu)?。
當(dāng)播放頭第2次前進(jìn)到第40幀時(shí),此時(shí)i的值為2,依然符合i<3的條件,播放頭跳轉(zhuǎn)到第3幀再次播放,“輸出”面板中顯示此時(shí)i的值為“2”,如圖1-9,動(dòng)態(tài)文本框中顯示出文本字段“i= 2”。i再次自加1,值變?yōu)?。
當(dāng)播放頭第3次到達(dá)第40幀時(shí),此時(shí)i的值為3,超出了if語(yǔ)句中所指定的i<3的條件了,這時(shí)便執(zhí)行else后面大括號(hào)“{}”中的語(yǔ)句,播放頭跳轉(zhuǎn)到幀標(biāo)簽“p”處,也就是場(chǎng)景2第20幀并播放,場(chǎng)景2第1至20幀小松鼠從場(chǎng)景左端跑到場(chǎng)景中心的動(dòng)畫效果就被邁過(guò)了,這時(shí)“輸出”面板中顯示i的值為3,如圖1-9。動(dòng)態(tài)文本框中顯示出文本字段“i= 3”。當(dāng)播放到第30幀時(shí),小松鼠翻轉(zhuǎn)身繼續(xù)在原地跳躍,到第40幀時(shí),由幀動(dòng)作腳本gotoAndPlay("p")指令其跳轉(zhuǎn)回第20幀再次播放,如此就形成了在第20至第40幀之間反復(fù)播放,我們看到的實(shí)際效果就是小松鼠不停的在原地翻轉(zhuǎn)跳躍。
這樣就實(shí)現(xiàn)了小松鼠在場(chǎng)景1來(lái)回奔跑3次后,跳到下一個(gè)場(chǎng)景在原地反復(fù)翻轉(zhuǎn)跳躍的效果。
當(dāng)點(diǎn)擊“replay”按鈕時(shí),由gotoAndPlay(“場(chǎng)景 1”,2);指令播放頭再跳轉(zhuǎn)到“場(chǎng)景 1”第2幀重新播放(場(chǎng)景名必須與影片文件中的場(chǎng)景名稱一致),此時(shí)i的值為1,再次按照上面的判斷過(guò)程繼續(xù)播放。
圖1-9 輸出面板上依次顯示i的值
這一節(jié)中新的知識(shí)點(diǎn):
動(dòng)態(tài)文本:是在動(dòng)畫播放時(shí)動(dòng)態(tài)更新的文本字段,定義動(dòng)態(tài)文本的方法是,用文本工具在場(chǎng)景上劃一個(gè)適當(dāng)大小的文本框,在屬性面板中將文本類型設(shè)置為“動(dòng)態(tài)文本”,并在右下方的【變量】輸入欄中為其定義一個(gè)變量名。命名文本字段時(shí),應(yīng)使用 _txt 后綴。
幀標(biāo)簽:是動(dòng)畫文件中為關(guān)鍵幀添加的命名標(biāo)記,如本節(jié)實(shí)例中的幀標(biāo)簽“p”。幀標(biāo)簽在動(dòng)作腳本中可以起到方便的導(dǎo)航作用,在設(shè)計(jì)動(dòng)畫時(shí),往往會(huì)調(diào)整某些關(guān)鍵幀的位置,如果使用了幀標(biāo)簽,就不必一一修改動(dòng)作腳本中的相應(yīng)位置參數(shù),比如,我們?nèi)绻焉厦鎸?shí)例中的跳轉(zhuǎn)動(dòng)作改為跳轉(zhuǎn)到場(chǎng)景2第1幀,就可以直接把幀標(biāo)簽為“p”的那個(gè)關(guān)鍵幀移到第1幀就行了。對(duì)于跳轉(zhuǎn)動(dòng)作比較多的動(dòng)作腳本特別有用。
添加幀標(biāo)簽的方法是,選中關(guān)鍵幀,在“屬性”面板中輸入名稱,幀標(biāo)簽名稱可以是任意字符。添加有幀標(biāo)簽的關(guān)鍵幀上會(huì)出現(xiàn)一面小紅旗標(biāo)志,標(biāo)志后面會(huì)顯示幀標(biāo)簽名稱。如圖1-10所示。
圖1-10 添加幀標(biāo)簽
常量:是在程序運(yùn)行中不會(huì)改變的量,例如i=1、i<3,“1”和“3”就是一個(gè)常量。
變量:是一種用英語(yǔ)字母、英語(yǔ)單詞或者字母組合來(lái)表示的標(biāo)識(shí)符,不能用數(shù)字開頭。變量用于保留任何類型(字符串、數(shù)字、布爾值、對(duì)象、影片剪輯)的數(shù)據(jù)值。如這一節(jié)中的變量“i”。
表達(dá)式:表達(dá)式是動(dòng)作腳本中最常見(jiàn)的語(yǔ)句, 它通常由變量名、 運(yùn)算符及常量組成。如這一節(jié)里面的i=1;i<3等都是簡(jiǎn)單的表達(dá)式。
左邊的“i”是變量名, 中間的“=”是賦值運(yùn)算符(注意,這里這個(gè)等號(hào)“=”不表示相等,只表示將右邊的值賦給左邊的變量,相等操作符用“==”表示),“<”是比較運(yùn)算符, 右邊的數(shù)值是常量。由這個(gè)表達(dá)式可以聲明一個(gè)變量, 為下一步操作做準(zhǔn)備。
表達(dá)式又分為賦值表達(dá)式,如i=1, 算術(shù)表達(dá)式,如x=3/5,邏輯表達(dá)式,如i<3。
課后練習(xí):素材源文件下載
要求:
1. 素材源文件中有兩個(gè)場(chǎng)景,分別將其命名為“a”、“b”;
2. 將“b”場(chǎng)景的第31幀命名為“p”;
3. 在“a”場(chǎng)景左下方創(chuàng)建一個(gè)動(dòng)態(tài)文本框,并為其定義變量名,要求按照文本類型正確添加后綴;并將這個(gè)動(dòng)態(tài)文本框復(fù)制粘貼到“b”場(chǎng)景左下方。
4.在“a”場(chǎng)景的【as】圖層添加語(yǔ)句實(shí)現(xiàn)如下效果:
①動(dòng)畫開始播放時(shí)停止在第1幀;點(diǎn)擊“play”按鈕開始播放。
②在第2幀定義一個(gè)變量“i”,并根據(jù)下面要求的效果正確設(shè)定初始值;
③當(dāng)播放頭到達(dá)第40幀時(shí),根據(jù)判斷條件進(jìn)行下一步的播放,判斷條件為:變量i是否等于3。當(dāng)條件成立(即i等于3)時(shí),跳轉(zhuǎn)到幀名稱為“p”的位置并播放;當(dāng)條件不成立(即i不等于3)時(shí),跳轉(zhuǎn)到當(dāng)前場(chǎng)景第3幀并播放;判斷完成后在輸出面板中顯示i的值;在動(dòng)態(tài)文本框中顯示文本字段”i=”并上i的值;要求第一次顯示i的值為“0”;最后i自加1。
5.在“b”場(chǎng)景的【as】圖層添加語(yǔ)句實(shí)現(xiàn)如下效果:
按照以上的條件,當(dāng)變量i等于3時(shí),播放頭跳轉(zhuǎn)到幀名稱為“p”的位置(即“b”場(chǎng)景的第31幀)繼續(xù)往下播放。再按照下面的要求實(shí)現(xiàn)效果:
①當(dāng)播放頭到達(dá)當(dāng)前場(chǎng)景第90幀時(shí),根據(jù)判斷條件進(jìn)行下一步的播放,判斷條件為:變量i是否等于6。當(dāng)條件成立時(shí),播放頭跳轉(zhuǎn)到當(dāng)前場(chǎng)景第1幀并播放,否則跳轉(zhuǎn)到幀標(biāo)簽“p”處并播放;判斷完成后在輸出面板中顯示i的值;在動(dòng)態(tài)文本框中顯示文本字段”i=”并上i的值;最后i自加1。
②根據(jù)以上條件判斷,當(dāng)條件不成立時(shí),播放頭跳轉(zhuǎn)到了當(dāng)前場(chǎng)景第1幀并播放,到達(dá)第30幀時(shí),再一次根據(jù)設(shè)定的條件進(jìn)行判斷,判斷條件為:i是否小于10。當(dāng)條件成立時(shí),播放頭跳轉(zhuǎn)到當(dāng)前場(chǎng)景第1幀并播放,條件不成立時(shí),播放頭跳轉(zhuǎn)到“a”場(chǎng)景第1幀,即回到動(dòng)畫的初始狀態(tài);判斷完成后在輸出面板中顯示i的值;在動(dòng)態(tài)文本框中顯示文本字段”i=”并上i的值;最后i自加1。
6.動(dòng)畫測(cè)試時(shí),輸出面板中顯示的值依次應(yīng)為:0、1、2、3、4、5、6、7、8、9、10。
動(dòng)畫測(cè)試和播放時(shí),動(dòng)態(tài)文本框中顯示的文本字符應(yīng)依次更新為:“i=0”、“i=1”、“i=2”、……“i=10”。
動(dòng)畫效果如練習(xí)5所示:
>>>>>點(diǎn)擊查看動(dòng)畫效果<<<<<
練習(xí)5
提示:語(yǔ)句中注意正確使用運(yùn)算符,請(qǐng)參見(jiàn)上面“表達(dá)式”解釋中關(guān)于運(yùn)算符的提示。語(yǔ)句中引用到的場(chǎng)景名稱必須和場(chǎng)景的實(shí)際名稱相符。
這篇教程為“Flash AS 入門教程”的一部分。查看全套教程>>>>。
新聞熱點(diǎn)
疑難解答
圖片精選