通過對交互動(dòng)畫的分析,,介紹Flash中動(dòng)作腳本的概念:通過項(xiàng)目實(shí)踐,,說明ActionScript的基本用法。通過以下幾個(gè)任務(wù)完成:1,、認(rèn)識ActionScript,、2、制作動(dòng)畫播放,。在此過程中掌握ActionScript的基本概念及交互動(dòng)畫中基本的控制方法和交互動(dòng)畫設(shè)計(jì)的基本思路和方法,。 一、認(rèn)識ActionScript 接觸過Flash動(dòng)畫的人,,都對其中許多玄妙的效果印象深刻,。不論是隨機(jī)搖擺、氣泡飄飛,,還是動(dòng)畫控制,、鼠標(biāo)跟隨,這都是其他格式的動(dòng)畫文件無法比擬的特點(diǎn),,而這些精妙獨(dú)特的效果和功能,,就是利用ActionScript編程實(shí)現(xiàn)的。 ActionScript是一種面向?qū)ο缶幊蹋?span lang="en-us" xml:lang="en-us">OOP)的腳本語言,,通過解釋執(zhí)行的腳本語言,,如果讀者以前使用過腳本語言,就會(huì)發(fā)現(xiàn)ActionScript與其他腳本語言非常類似,,簡便易用,。不過,即使讀者剛剛開始學(xué)習(xí)編程,,ActionScript基礎(chǔ)知識也不難學(xué),,可以從簡單的命令入手,,逐步掌握更復(fù)雜的功能,向動(dòng)畫中添加大量交互性,,而無須學(xué)習(xí)(或編寫)大量的代碼,。 ActionScript程序一般由語句、函數(shù)和變量組成,,主要涉及變量,、函數(shù)、數(shù)據(jù)類型,、表達(dá)式,、運(yùn)算符等,他們是ActionScript的基石,。ActionScript可以由單一動(dòng)作組成,,如指示動(dòng)畫停止播放的操作,也可以由一系列動(dòng)作語句組成,,如先計(jì)算條件,,再執(zhí)行動(dòng)作。 (1),、了解ActionScript的語法 語言的語法定義了一組在編寫可執(zhí)行代碼時(shí)必須遵循的規(guī)則,。 A、區(qū)分大小寫 ActionScript是一種區(qū)分大小寫的語言,,只是大小寫不同的標(biāo)識符會(huì)被視為不同,。例如,下面的代碼創(chuàng)建兩個(gè)不同的變量: Var numl:int Var Numl:int,; //注釋:兩個(gè)不同的變量 B,、 點(diǎn)語法 可以通過點(diǎn)運(yùn)算符(.)來訪問對象的屬性和方法。使用點(diǎn)語法,,可以使用后跟點(diǎn)運(yùn)算符和屬性名或方法名來引用對象的屬性或方法,。如: Ball.x=100; //對象ball的X坐標(biāo)為100 Ball.alpha=50,; //對象ball的透明度值為50 C,、 分號 可以使用分號符(;)來終止語句,,如果省略分號字符,,則編譯器將假設(shè)每一行代碼代表一條語句,。但是一般程序員都習(xí)慣使用分號來表示語句結(jié)束,,因此,我們也應(yīng)當(dāng)養(yǎng)成這樣一個(gè)習(xí)慣,,以使自己的代碼更易于閱讀,。 使用分號終止語句可以在一行中放置多個(gè)語句,,但是這樣會(huì)使代碼變得難以閱讀。 D,、小括號 在ActionScript中,,小括號有如下3種用途。 1,、可以使用小括號來更改表達(dá)式中的運(yùn)算順序,、組合到小括號中的運(yùn)算總是最先執(zhí)行。小括號可用來改變代碼中的運(yùn)算順序,,如: trace(2+3﹡4),; //輸出:14 trace ((2+3)﹡4); //輸出:20 2,、可以結(jié)合使用小括號和逗號運(yùn)算符(,,)來計(jì)算一系列表達(dá)式并返回最后一個(gè)表達(dá)式的結(jié)果。例如: var a:int =2,; var b:int =3,; trace((a++,b++,,a+b)): //輸出:7 3,、可以使用小括號來向函數(shù)或方法傳遞一個(gè)或多個(gè)參數(shù),下面的代碼表示向trace函數(shù)傳遞一個(gè)字符串值,。 trace(”helio”); //輸出helio E,、注釋 ActionScript代碼支持兩種類型的注釋:單行注釋和多行注釋。編譯器將忽略標(biāo)記為注釋的文本,。 1,、單行注釋以兩個(gè)正斜杠字符“//“開頭并持續(xù)到該行的末尾。例如,,下面的代碼包含一個(gè)單行注釋,。 var some Number:Number=3 //單行注釋 2、多行注釋以一個(gè)正斜杠和一個(gè)顯號( 二,、了解表達(dá)式和運(yùn)算符 運(yùn)算符是能夠提供對數(shù)值,、字符串、邏輯值進(jìn)行運(yùn)算的關(guān)系符號,,而表達(dá)式是由常量,、變量、函數(shù)和運(yùn)算符按照運(yùn)算法則組成的計(jì)算公式,。在動(dòng)作語言中,,表達(dá)式的結(jié)果將作為參數(shù)值。 在Flash8中,,運(yùn)算符有很多種類,,包括數(shù)值運(yùn)算符,,字符串運(yùn)算符,比較運(yùn)算符,、邏輯運(yùn)算符,、位運(yùn)算符、賦值運(yùn)算符等,。下面介紹一些常用的運(yùn)算符,。 1、算術(shù)運(yùn)算符及表達(dá)式 算術(shù)表達(dá)式是數(shù)值進(jìn)行運(yùn)算的表達(dá)式,,它是由數(shù)值,、以數(shù)值為結(jié)果的函數(shù)和算術(shù)運(yùn)算符組成,運(yùn)算結(jié)果是數(shù)值或邏輯值,。例如:表達(dá)式“(34—2)/4”就是一個(gè)算術(shù)表達(dá)式 下面是Flash中可以使用的算術(shù)運(yùn)算符: (1),、+、—,、*,、/:執(zhí)行加、減,、乘,、除運(yùn)算。 (2),、==,、<>:比較兩個(gè)數(shù)值是否相等、不相等,。 (3),、< 、<= ,、>,、 >=:比較運(yùn)算符前面的數(shù)值是否小于、小于等于,、大于,、大于等于后面的數(shù)值。 2,、字符串表達(dá)式 字符串表達(dá)示是對字符串進(jìn)行運(yùn)算的表達(dá)式,。它是由字符串,以字符串為結(jié)果的函數(shù)和字符串運(yùn)算符組成,,運(yùn)算結(jié)果是字符串或邏輯值,。例如: “中國”﹠“人民” 將字符串“中國”與字符串“人民”連接,結(jié)果是字符串“中國人民”,。 可以參與字符串表達(dá)式的運(yùn)算符如下: 1,、﹠:連接運(yùn)算符兩邊的中鋒串,。 2,、Eq,、Ne:判斷運(yùn)算符兩邊的字符串是否相等。 3,、Lt,、Le、Qt,、Qe:判斷運(yùn)算符左邊字符串的ASCII碼值是否小于,、小于等于、大于,、大于等于右邊字符串的ASCII碼值,。 3、邏輯表達(dá)式 邏輯表達(dá)式是對正誤結(jié)果進(jìn)行判斷的表達(dá)式,,它是由邏輯值,、以邏輯值為結(jié)果的函數(shù)、以邏輯值為結(jié)果的算術(shù)或字符串表達(dá)式和邏輯運(yùn)算符組成,,運(yùn)算結(jié)果是邏輯值,。例如: (“abc”eq“ABC”)and (1<2) 上式進(jìn)行兩個(gè)字符串表達(dá)式的邏輯與計(jì)算,結(jié)果是一個(gè)邏輯值“False”,。 可以參與邏輯表達(dá)式的運(yùn)算符有“And(邏輯與),、Qr(邏輯或)和Not(邏輯非)。 4,、位運(yùn)算符 位運(yùn)算符用來處理浮點(diǎn)數(shù),,運(yùn)算時(shí)先將操作數(shù)轉(zhuǎn)化為32位的二進(jìn)制數(shù),然后對每個(gè)操作數(shù)分別進(jìn)行運(yùn)算,,運(yùn)算后再將二進(jìn)制的結(jié)果按照Flash的數(shù)值類型返回運(yùn)算結(jié)果,。ActionScript的位運(yùn)算符包括﹠(位與)、^(位異或),、∣(位或),、~(位異或),、<<(左移位)、>>(右移位)、>>>(填0右移位)等,。 5、賦值運(yùn)算符 賦值運(yùn)算符的作用就是給變量,、數(shù)組元素或?qū)ο蟮膶傩再x值,。例如: Num1=80; Ball._x=200;
三、了解常用語句 A,、if語句 if語句的作用是根據(jù)條件的成立與否來決定語句的執(zhí)行,,其基本語法格式為: if (條件) { //代碼(可以是多條語句) } 說明:如果條件成立,,就執(zhí)行代碼,否則不執(zhí)行,。 可以使用else子句來控制不滿足條件時(shí)該如何處理,,例如: If (條件) { //代碼1、2,、3… } else { //代碼a,、b、c…. } 說明:如果條件成立,,就執(zhí)行代碼1,、2、3等,,否則,,執(zhí)行代碼a、b,、c等,。 編寫復(fù)雜條件時(shí),可以使用小括號“()”對條件進(jìn)行組合,。例如:下面的代碼判斷年齡是否大于等于20并且小于40,。 If ((age >=20)﹠﹠ (age<40)) { } B、 for語句 for語句提供了一種在給定步長情況下的自然循環(huán),,其基本語法格式為: for (初始值,; 條件; 步長,;{ //代碼 } 說明:1,、首先為變量設(shè)定初始值;2,、判定條件是否成立,;3、若條件成立,,就執(zhí)行代碼,,否則結(jié)束循環(huán);4,、為變量增加一個(gè)步長,,返回2。 下面的for結(jié)構(gòu)用于求0~10的整數(shù)和,。 var sum :Number,; Sum =0; for (var I =0; i<=10; i++) { Sum = sum + I; } C,、 While和do..while語句 這兩種語句都是循環(huán)結(jié)構(gòu),。While語句的基本語法格式為: While(條件) { //代碼 } 說明:當(dāng)條件成立時(shí),執(zhí)行代碼,。 do..while語句的基本語法格式為: do.. { //代碼 } while (條件),; 二者的區(qū)別在于:while語句是先判斷條件是否成立。而do..while語句是先執(zhí)行代碼,,然后再判斷條件是否成立,。這樣,,對于條件不成立的情況,,while語句中的代碼不會(huì)得到執(zhí)行,而do..while中的代碼會(huì)被執(zhí)行一次,。 D,、 switch語句 switch語句是一種分支選擇語句,其基本語法格式為: switch (條件) { case A : //代碼1 break,; //若無此句,,則case將會(huì)“落空” case B : //代碼2 break : default : //代碼3 } 說明:若條件值為“A”,則執(zhí)行代碼1,;若條件值為“B”,,則執(zhí)行代碼B;若條件值為其他值,,則執(zhí)行代碼3,。Break語句的作用是打斷執(zhí)行,重新進(jìn)行條件判斷,。 default case是switch語句中最后一個(gè)case,。defalt case包括一個(gè)break語句,用于在添加其他case時(shí)阻止落空錯(cuò)誤,。 如果case沒有break語句,,case將會(huì)“落空”。這樣,,如果條件符合“A”,,則case A和case B都會(huì)執(zhí)行。 說明:使用空格,,執(zhí)行符和“TAB”縮進(jìn)向代碼中添加空白,,可以提高代碼的可讀性,空白可增強(qiáng)可讀性,,因?yàn)樗行в陲@示代碼的層次結(jié)構(gòu),。 |
|