flash動畫設計第8章.ppt
《flash動畫設計第8章.ppt》由會員分享,可在線閱讀,更多相關(guān)《flash動畫設計第8章.ppt(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第8章,交互式動畫基礎知識,8.1撰寫腳本8.2動作腳本的語法8.3數(shù)據(jù)類型8.4變量的使用8.5表達式與運算符8.6條件語句和循環(huán)語句8.7事件,本章小結(jié),8.1撰寫腳本,動作腳本就是在動畫運行過程中起到控制和計算作用的程序代碼。理解和掌握好腳本的基本元素和編程技巧是學習深層次動畫制作的根本。,8.1.1腳本概述自從Flash5之后,編程變得越來越被重視,特別是推出了Actionscript之后。作為用戶不必非常了解每一個Actionscript的元素,只要有一個清晰的目標就可以開始簡單的編程了。當然,動作腳本也有它的語法和規(guī)則,這些語法和規(guī)則用來確定哪些字符和單詞可以用于產(chǎn)生什么樣的交互效果。,8.1.2使用動作面板動作面板有兩種模式:標準模式和專家模式。標準模式:是將命令已經(jīng)分好了類別,可以直接進行選擇。專家模式:是讓用戶直接輸入命令,就像平時的編程。,,,,8.1.3為對象添加動作要為對象添加動作,可以通過在動作面板中編寫語句來完成,比如,要指定當用戶按“L”鍵時,鏈接到一個網(wǎng)頁,則可以給按鈕“L”附加以下動作:on(keyPress”L”){getURL(“”);}在動作面板中的程序,如圖所示:,,8.2動作腳本的語法,8.2.1點語法點語法的結(jié)構(gòu)如下所述:點的左側(cè)可以是動畫中的對象、實例或時間軸。點的右側(cè)可以是與左側(cè)元素相關(guān)的屬性、目標路徑、變量或動作。下面是三種不同的形式:,myClip.visible=0;,名為myClip的MovieClip通過使用點語法將_visible屬性設置為0,使得它變透明。,menuBar.menu1.item5;,顯示了變量item5的路徑,它位于動畫menu1中,menu1又嵌套在動畫menuBar中。,_root.gotoAndPlay(5);,使用_root參考命令,主時間軸跳轉(zhuǎn)到第5幀并進行播放。,,,,,8.2.2大括號ActionScript使用大括號符號({})來組織腳本元素(這些字符也叫做波形括號)。在下面的程序中,當鼠標被按下時,在大括號之間的所有語句將被執(zhí)行。on(release){dots_color.setRGB(0 x00cc00);},8.2.3分號在Actionscript中使用分號作為結(jié)束標志。例如,下面的語句中就使用了分號作為結(jié)束標志:gotoAndplay();row=0;如果忽略了分號,F(xiàn)lash也能正確編譯腳本。但是,最好還是使用分號作為結(jié)束標志。,,,8.2.4括號當用戶定義函數(shù)時,所有參數(shù)都放置在括號內(nèi)。例如:functionmyFunction(name,age){…}當用戶調(diào)用函數(shù)時,又需要使用括號將參數(shù)傳遞給函數(shù)。例如:myFunction(”Linda”,16);使用括號還可以越過Actionscript的優(yōu)先級順序,使Actionscript語句更容易閱讀。,8.2.5大寫和小寫字母在Actionscript中,關(guān)鍵字、類名、變量等都區(qū)分大小寫的,其他則無所謂。例如,下面的語句是等價的:cat.hill=true;CAT.hill=true;但是,最好統(tǒng)一大小寫的規(guī)則,這樣有助于使Actionscript代碼中的函數(shù)和變量名等更容易識別。,,,,,8.2.6注釋在動作面板中,使用comment動作可以給腳本添加注釋信息,以使代碼更容易閱讀。在動作列表中,注釋以粉紅色顯示。用戶可以添加任意長度的批注而不會影響導出文件的大小。,8.2.7關(guān)鍵字Actionscript在語言中保留了若干關(guān)鍵字以做特殊用途。用戶不能使用它們作為變量名、函數(shù)或標簽名。,8.2.8常數(shù)常數(shù)就是一種屬性,這種屬性的值永遠都不會發(fā)生變化。,,,,8.3數(shù)據(jù)類型,數(shù)據(jù)類型是描述變量或動作腳本元素可以包含的信息的種類。數(shù)據(jù)類型包含了兩類:原始類和引用類。原始類數(shù)據(jù)類型又包括字符串、數(shù)值和布爾值,它們都有一個常數(shù)值,因此可以包含它們所代表的元素的實際值。引用類數(shù)據(jù)類型包括動畫和對象,它們的值是可變的,因此它們包含對該元素的實際值的引用。每種數(shù)據(jù)類型都有自己的規(guī)則。,,,,,,8.3.1字符串“字符串”就是包括字母、數(shù)字和標點符號等在內(nèi)的字符序列。在動作腳本中,用戶可以在單引號或雙引號內(nèi)輸入字符串。字符串被當作字符,而不是變量進行處理。還有一些必須用特殊的轉(zhuǎn)義碼才能表示的字符。,8.3.2數(shù)值數(shù)值數(shù)據(jù)類型是雙精度浮點數(shù)??梢允褂眉樱ǎ?、減(-)、乘()、除()、余數(shù)(%)、遞增(++)和遞減(--)來控制數(shù)值。也可以使用內(nèi)置的Math和Number類來處理數(shù)字。,8.3.3布爾值布爾值只有兩種選擇:true和flase。有時動作腳本也會將它們轉(zhuǎn)換為1和0,布爾值經(jīng)常和邏輯運算符一起用于控制腳本的程序中。,8.3.4對象對象是屬性的集合。每個屬性都有自己的名稱和值。屬性的值可以是任何的Flash數(shù)據(jù)類型,甚至是對象數(shù)據(jù)類型。這樣就可以使對象相互包含或嵌入其他對象。要指定對象及其屬性,可以使用點運算符。,8.3.5影片剪輯影片剪輯是Flash電影中可以播放動畫的元件。它們是惟一引用圖形元素的數(shù)據(jù)類型??梢岳命c運算符來指定對象及其屬性。通過動作腳本的MovieClip對象包含的方法可以對舞臺上的影片剪輯符號進行控制。,8.3.6空值與未定義數(shù)據(jù)類型空值數(shù)據(jù)類型只有一個值,即null,此值代表“沒有值”,但不為0。null可以用在各種情況中,例如指示變量尚未接收到值、指示變量不再包含值、指示函數(shù)沒有可以返回的值、指示省略了一個參數(shù)等。未定義數(shù)據(jù)類型有一個值,即undefined,被用于尚未指定值的變量。,8.4變量的使用,變量實際是一個包含信息的空間。此空間不會改變,但其中的內(nèi)容是可以變化的。在動畫播放的過程中修改變量中的值,可以記錄和保存用戶操作的信息。變量可以存放任何數(shù)據(jù)類型。包括數(shù)值型、字符串型、布爾型、對象或動畫等。每個動畫和動畫片斷都有自己的一組變量,每個變量都有獨立于其他變量的值。,,8.4.1命名變量與輸入變量命名變量要遵守下面的規(guī)則:(1)必須是標識符。(2)不能是關(guān)鍵字、布爾值。(3)在其范圍內(nèi)一定是惟一的。,輸入變量時,用戶不必明確定義變量包含的數(shù)據(jù)類型。Flash可以根據(jù)變量被賦值的情況自動確定變量的數(shù)據(jù)類型。,,,,(1)局部變量:在自身代碼塊中有效的變量(在大括號內(nèi))。(2)全局變量:即使沒有使用目標路徑指定,也可以在任何時間軸內(nèi)有效。(3)時間軸變量:可以在使用目標路徑指定的任何時間軸內(nèi)有效。,8.4.2確定變量范圍所謂確定變量的范圍,就是指變量被認可和可以被引用的區(qū)域。在動作腳本中有3種類型的變量范圍:,使用局部變量可以防止命名沖突,減少動畫中可能發(fā)生的錯誤。因為局部變量只能在其自身的代碼塊中修改,所以較好的做法是在函數(shù)的主體中使用局部變量。如果在函數(shù)的表達式中使用了全局變量,則當全局變量的值在函數(shù)外被修改時,函數(shù)也將被修改。,8.4.3變量聲明不同的變量類型聲明的形式有所不同,要聲明時間軸變量,可以使用setvariable動作或賦值運算符(=),兩種方法可獲得的結(jié)果一樣。要聲明局部變量,可以在函數(shù)主體內(nèi)使用var語句。局部變量只在自身的代碼塊中有效,超出該代碼塊即無效。要聲明全局變量,可以在變量名前面使用_global標識符。例如:創(chuàng)建一個全局變量myBook,_global.myBook=”China”;要測試變量的值,可以使用trace動作將變量的值發(fā)送到輸出窗口。,trace語句類似我們經(jīng)常用到的print語句。,8.4.4在腳本中使用變量在腳本中使用變量,則必須先聲明變量。如果使用了一個未聲明的變量,則變量的值將是undefined,腳本也因此產(chǎn)生錯誤。在程序中,變量的值可以被多次修改。變量所包含的數(shù)據(jù)類型將影響到變量修改的方式和時間。原始數(shù)據(jù)類型都是通過值進行傳遞的,這意味著變量的實際內(nèi)容被傳遞到變量中。比如下例:varx=15;vary=x;varx=30;輸出的結(jié)果是x=30,y=15。,8.5表達式與運算符,flash中表達式是指可以取得返回值的任何語句。用戶可以通過運算符、求值、調(diào)用函數(shù)等方法創(chuàng)建表達式。如果在動作面板的普通模式下編寫表達式,則請確認已經(jīng)選中了表達式復選框,否則在參數(shù)框中包含的就只是文本字符串。運算符是指定如何合并、比較或修改表達式中值的字符。運算符所操作的元素被稱為運算項。,,,,,,8.5.1運算符和表達式的輸入可以在動作屬性面板中將表達式和運算符輸入,如圖8.6所示:其中上面就是表達式,中間用的+、*就是運算符。,8.5.2運算符的優(yōu)先級當同一個語句中使用兩個或兩個以上的運算符,一些運算符就會優(yōu)于其他的運算符。動作腳本語言嚴格按照運算符的優(yōu)先級順序來執(zhí)行語句。例如,乘除優(yōu)于加減,括號優(yōu)于乘法。當兩個或兩個以上的運算符具有相同的運算優(yōu)先級時,它們將按照從左到右的原則運算。,,,,,8.5.3算術(shù)運算符算術(shù)運算符可以執(zhí)行加、減、乘、除和其他數(shù)學運算。最常見的是遞增或遞減的用法,如:i++、k--。,8.5.4比較運算符比較運算符用于比較表達式的值,然后返回一個布爾值true或false。常見用于條件語句和循環(huán)語句。,8.5.5字符串運算符字符串運算符(+)可以將兩個字符串連在一起。例如:“好好”+“學習”得到的結(jié)果是“好好學習”。如果相加的項目中只有一個是字符串,則flash會自動將另一個操作數(shù)轉(zhuǎn)換為字符串。比較運算符>、>=、<和<=在處理字符串時也有特殊的效果。這些運算符會比較兩個字符串,以確定哪一個字符串按字母數(shù)字順序排在前面。只有在兩個操作數(shù)都是字符串時,比較運算符才會執(zhí)行字符串比較。如果只有一個操作數(shù)是字符串,動作腳本會將兩個操作數(shù)都轉(zhuǎn)換為數(shù)字,然后執(zhí)行數(shù)值比較。,8.5.6邏輯運算符邏輯運算符對布爾值(true或false)進行比較,然后返回第三個布爾值。比如,兩邊的邏輯值都是true,則邏輯“與”運算符(&&)將返回true。如果其中一邊或兩邊的邏輯值為true,則邏輯“或”運算符(||)將返回true。邏輯運算符通常與比較運算符結(jié)合使用。,8.5.7位運算符按位運算符在內(nèi)部處理浮點數(shù),將它們轉(zhuǎn)換為32位整型。執(zhí)行的確切運算取決于運算符,但是所有的按位運算都會分別評估32位整型的每個二進制位,從而計算新的值。,8.5.8賦值運算符程序中使用賦值運算符(=)為變量賦值,例如:varx=5;用戶還可以使用賦值運算符給同一個表達式中的多個變量賦值。用戶還可以使用復合賦值運算符聯(lián)合多個運算:復合運算符可以對兩個操作數(shù)都進行運算,然后將新值賦給第一個操作數(shù)。,8.5.9點運算符和數(shù)組訪問運算符用戶可以使用點運算符(.)和數(shù)組運算符([])訪問任何內(nèi)置或自定義的程序中對象屬性。點運算符在左邊使用對象,在右邊使用屬性或變量。屬性或變量名不能是從字符串獲取的字符或變量,而必須是標識符。點運算符和數(shù)組訪問運算符是一樣的,但點運算符將標識符作為其屬性,而數(shù)組訪問運算符則從其內(nèi)容中獲取名稱,然后讀取命名屬性的值。用戶可以使用數(shù)組訪問運算符動態(tài)設置和檢索實例名稱和變量,也可以被用在賦值運算符的左邊,這時允許用戶動態(tài)設置實例、變量和對象的名稱。,8.6條件語句和循環(huán)語句,腳本程序的結(jié)構(gòu),按照結(jié)構(gòu)化語言的特點,一般都按照執(zhí)行的方式分為順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。其中順序結(jié)構(gòu)最為簡單,就是在語句執(zhí)行的時候,程序?qū)凑枕樞驁?zhí)行語句。,8.6.1條件語句條件語句,也叫選擇語句,可以根據(jù)條件的判斷結(jié)果來執(zhí)行相應的代碼。條件語句包括兩個類型,即if型和switch型。其中形式如下:(1)if語句if(條件表達式){…}//條件成立的情況下,執(zhí)行{}中的語句,否則跳過{}執(zhí)行后面的語句,,(2)if…else語句if(條件表達式){①…}//條件成立,執(zhí)行①內(nèi)的語句else{②…}//條件不成立時,執(zhí)行②內(nèi)的語句另,if語句可以嵌套,實現(xiàn)多重判斷。(3)switch-case語句switch(表達式){case表達式1:語句1;break;case表達式2:語句2;break;…case表達式n:語句n;break;//根據(jù)switch的表達式執(zhí)行相應的case語句,利用break跳出分支,若沒有相匹配的表達式則執(zhí)行default語句組。default語句組:},,,8.6.2循環(huán)語句如果要多次執(zhí)行相同的語句,可以利用循環(huán)語句簡化程序。在flash中有3種循環(huán)語句:(1)for語句。for語句的格式:for(表達式1;表達式2;表達式3){循環(huán)體}//條件成立時,執(zhí)行的語句。其中:表達式1為開始循環(huán)的初始條件;表達式2為循環(huán)判斷的條件;表達式3為每次循環(huán)后計算的表達式,通常為遞增或遞減。,,(2)forin語句。這個語句,僅僅和數(shù)組以及對象數(shù)據(jù)類型一起使用。使用此語句可以在不知道數(shù)組里面有多少個元素,或元素一直在變化的情況下遍歷所有的數(shù)組元素。for(nin數(shù)組名或?qū)ο髷?shù)據(jù)類型){…}//遍歷數(shù)組或輸出對象數(shù)據(jù)類型,,(3)while語句。while循環(huán)在條件成立的時候,一直循環(huán)到條件不成立。while(條件表達式){…}//條件為真時,執(zhí)行{}中的語句,在循環(huán)過程中,也可以使用break語句跳出循環(huán)。,,,,,8.7事件,事件就是動畫中程序根據(jù)外部發(fā)生的事情,做出的相應響應。在flash中有3種事件:(1)關(guān)鍵幀事件。(2)鼠標(按鈕)事件。(3)電影剪輯事件。這3種事件都對應著可以在flash中放腳本代碼的位置。也就是說,將3種事件分別放置在對應的關(guān)鍵幀、按鈕和電影剪輯實例中。用鼠標右鍵點擊這些地方,如果菜單中的動作選項是可以選擇的,則意味著是可以添加腳本動作的,否則為灰色不可用。,,8.7.1關(guān)鍵幀事件當把程序放在關(guān)鍵幀里面的時候,只要flash到達所在關(guān)鍵幀,程序就開始執(zhí)行。因為關(guān)鍵幀事件只是在影片運行到相應的關(guān)鍵幀時,才會被激發(fā),所以一般只把關(guān)鍵幀作為一個放置通用代碼的地方。,,8.7.2鼠標事件鼠標事件,也叫按鈕事件。是指一種基于鼠標指針位置和移動產(chǎn)生的交互性事件。鼠標事件只能在場景里的按鈕實例中放置,而不是在按鈕的4個狀態(tài)關(guān)鍵幀中放置。放置在這4個狀態(tài)關(guān)鍵幀里的所有動作將被忽略。鼠標事件用到on()語句。使用方法如下:on(mouseEvent){…}//所執(zhí)行的語句mouseEvent的參數(shù)如下:(1)press在鼠標指針經(jīng)過按鈕時按下鼠標按鈕。(2)release在鼠標指針經(jīng)過按鈕時釋放鼠標按鈕。,,,,,(3)releaseOutside鼠標指針在按鈕之內(nèi)時按下按鈕后,將鼠標指針移到按鈕之外,此時釋放鼠標按鈕。(4)rollout鼠標指針滑出按鈕區(qū)域。(5)rollover鼠標指針滑過按鈕區(qū)域。(6)dragOut在鼠標指針滑過按鈕時按下鼠標按鈕,然后滑出此按鈕區(qū)域。(7)dragOver在鼠標指針滑過按鈕時按下鼠標按鈕,然后滑出此按鈕,再滑回此按鈕。(8)keyPress(“key”)按下指定的鍵。,8.7.3電影剪輯事件電影剪輯事件用法如下:onClipevent(movieEvent){…}//執(zhí)行的語句其中movieEvent的參數(shù)如下:(1)load電影剪輯裝載時被激發(fā)。(2)unload電影剪輯卸載時被激發(fā)。(3)enterFrame當進入一幀時激發(fā),先處理與enterFrame剪輯事件關(guān)聯(lián)的動作,然后才處理附加到受影響幀的所有幀動作。(4)mouseMove當鼠標移動時激發(fā)。,(5)mouseDown當按下鼠標左鍵時激發(fā)。(6)mouseUp當釋放鼠標左鍵時激發(fā)。(7)keyDown當按下某個鍵時激發(fā)。使用Key.getCode()獲取有關(guān)最后按下的鍵的信息。(8)keyUp當松開某個鍵時啟動。使用Key.getCode()獲取有關(guān)最后按下的鍵的信息。(9)date當使用loadVariables(載入變量)或loadMovie(載入影片)時接收數(shù)據(jù)時激發(fā)此動作。,第八章小結(jié),l要正確使用Actionscript的術(shù)語;l一個大程序可以將它們分成多個小程序段,隨時加以測試;l使用trace函數(shù)隨時跟蹤變量和屬性的變化情況;l使用自動換行功能可以使工作更輕松;l使用注釋代碼。,- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- flash 動畫設計
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://m.zhongcaozhi.com.cn/p-11496153.html