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