2004動(dòng)畫(huà)的交互功能new_第1頁(yè)
2004動(dòng)畫(huà)的交互功能new_第2頁(yè)
2004動(dòng)畫(huà)的交互功能new_第3頁(yè)
2004動(dòng)畫(huà)的交互功能new_第4頁(yè)
2004動(dòng)畫(huà)的交互功能new_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGE320網(wǎng)頁(yè)設(shè)計(jì)與制作教程PAGE319第13章FlashMX2004動(dòng)畫(huà)的交互功能第13章FlashMX2004動(dòng)畫(huà)的交互功能教學(xué)提示:Flash動(dòng)畫(huà)的交互性設(shè)計(jì),令網(wǎng)頁(yè)動(dòng)畫(huà)多了幾分靈氣。訪問(wèn)者可以通過(guò)鍵盤或鼠標(biāo)操作從一個(gè)動(dòng)畫(huà)跳轉(zhuǎn)到另一個(gè),可進(jìn)行移動(dòng)對(duì)象、輸入信息或進(jìn)行其他形式的交互操作,實(shí)現(xiàn)人機(jī)對(duì)話。本章介紹了一些FlashMX2004動(dòng)畫(huà)的交互功能和基本的Flash編程技術(shù)。教學(xué)目標(biāo):通過(guò)本章的學(xué)習(xí),要求讀者了解FlashMX2004編程語(yǔ)言的基礎(chǔ)知識(shí),掌握動(dòng)作的基本語(yǔ)言和設(shè)置、按鈕應(yīng)用及控制影片剪輯等。13.1語(yǔ)言編程的基礎(chǔ)Flash把人和計(jì)算機(jī)交流的語(yǔ)言叫作“動(dòng)作(Actions)”,這實(shí)質(zhì)上是一種編程語(yǔ)言,編程語(yǔ)言是把人們的想法轉(zhuǎn)化成計(jì)算機(jī)能夠識(shí)別的語(yǔ)言,從而進(jìn)行人機(jī)交流。在Flash中,可以利用編程設(shè)置的動(dòng)作語(yǔ)言與計(jì)算機(jī)進(jìn)行對(duì)話。動(dòng)作是Flash的腳本語(yǔ)言,使用動(dòng)作建立導(dǎo)航和交互的組件,使Flash可以創(chuàng)建更高級(jí)、更精彩的交互電影和Web應(yīng)用。13.1.1編程語(yǔ)言的基本概念Flash編程是指利用Flash內(nèi)置的“動(dòng)作”腳本語(yǔ)句進(jìn)行程序設(shè)計(jì),Macromedia公司在FlashMX2004中增添了幾十條非常有用的“動(dòng)作”腳本語(yǔ)句。FlashMX2004的腳本語(yǔ)言是面向?qū)ο?Object-Oriented)的,從概念上來(lái)說(shuō),對(duì)象是開(kāi)發(fā)系統(tǒng)中任何可見(jiàn)的實(shí)例,在FlashMX2004中面向?qū)ο蟮母拍畋缓芮擅畹亟Y(jié)合在了Flash的符號(hào)里面。所謂面向?qū)ο?,就是指將所有一類物品的相關(guān)信息組織起來(lái),放在一個(gè)稱作類的集合里面,這些信息被稱作屬性和方法,然后為這個(gè)類創(chuàng)建實(shí)例,這些實(shí)例被稱作是對(duì)象。這樣的實(shí)例就擁有了它所有類的屬性和方法。舉個(gè)例子來(lái)說(shuō)明,如果定義動(dòng)物是一個(gè)類,那么這個(gè)類的單獨(dú)的實(shí)例就是猴子、大象、老虎這樣單獨(dú)的動(dòng)物形體;我們描述動(dòng)物總有一些單獨(dú)的語(yǔ)言,比如高度,性別,年齡等,這就是類的屬性;這些動(dòng)物們能夠覓食,繁衍后代,這就是動(dòng)物這個(gè)類的方法??傊?,一句話概括,動(dòng)物這個(gè)類有高度、年齡、性別等這些類的屬性;有覓食、繁衍、打斗的方法;有大象、猴子這些類的實(shí)例;它們都有動(dòng)物這個(gè)類的屬性和方法,這就是面向?qū)ο蟮乃枷?,這樣做的目的是為了重用動(dòng)作,而且能夠更好地模擬真實(shí)的世界環(huán)境。Flash對(duì)象不僅僅是一般自定義地用來(lái)裝載各種數(shù)據(jù)的類,以及Flash自帶的一系列對(duì)象,如Sound,Color等,還可以是每一個(gè)定義在場(chǎng)景中的影片剪輯(簡(jiǎn)稱影片剪輯)的實(shí)例,實(shí)例影片剪輯是屬于Flash預(yù)定義的一個(gè)名叫影片剪輯的類,這個(gè)預(yù)定義的類有_totalframe,_height,_visible等一系列的屬性,同時(shí)也有g(shù)otoAndPlay,nextframe等方法,所以每個(gè)單獨(dú)的實(shí)例影片剪輯都有這個(gè)類的屬性和方法。

13.1.2Flash的編程語(yǔ)言與JavaScript的區(qū)別和聯(lián)系FlashMX2004的腳本編程語(yǔ)言由于整合了很多新的語(yǔ)法,使它在一定程度上看起來(lái)很像JavaScript,這是因?yàn)镕lashMX2004的“動(dòng)作”采用了和JavaScript一樣的ECMA-292的語(yǔ)法標(biāo)準(zhǔn),如果讀者熟悉JavaScript,理解FlashMX2004的動(dòng)作就容易多了。但是這兩者間又有區(qū)別,它們之間的區(qū)別和聯(lián)系如下:動(dòng)作不支持瀏覽器相關(guān)的對(duì)象,如Document,Anchor,Window……動(dòng)作不支持全部的JavaScript預(yù)定義對(duì)象。動(dòng)作不支持JavaScript的函數(shù)構(gòu)造。動(dòng)作只能用eval語(yǔ)句來(lái)處理變量,從而直接得到變量的值。在JavaScript中,如果把一個(gè)沒(méi)有定義的變量轉(zhuǎn)換成字符串string類型,會(huì)得到一個(gè)未定義的變量,在動(dòng)作中則將返回一個(gè)空字符串。動(dòng)作不支持Unicode動(dòng)作。13.1.3編程動(dòng)作的書(shū)寫(xiě)方法動(dòng)作語(yǔ)言是Flash的腳本語(yǔ)言,使用動(dòng)作語(yǔ)言建立導(dǎo)航和交互的組件,使Flash可以創(chuàng)建更高的交互電影和Web應(yīng)用。選擇【窗口】|【動(dòng)作】命令,或者直接按F2鍵即可打開(kāi)【動(dòng)作】面板,如圖13.1所示,用鼠標(biāo)將其拉長(zhǎng)可以顯示全部動(dòng)作的類型。圖13.1【動(dòng)作】面板Flash的【動(dòng)作】面板全部拉開(kāi)后,出現(xiàn)左右兩個(gè)窗格,左邊是用來(lái)選擇用哪一種動(dòng)作的,右邊用來(lái)顯示具體的動(dòng)作語(yǔ)句,F(xiàn)lashMX2004提供了兩種模式:普通模式和專家模式。在普通模式中,不能直接對(duì)動(dòng)作列表進(jìn)行操作,只能在左邊選擇使用的動(dòng)作,然后在面板的右中部選擇相關(guān)參數(shù),這樣,單擊選中的動(dòng)作之后,在右邊才能顯示正確的動(dòng)作語(yǔ)句,如圖13.2所示。圖13.2選擇命令以設(shè)定簡(jiǎn)單的play命令為例,我們選中的是動(dòng)作“幀動(dòng)作腳本1圖層名稱圖層1”,選擇【全局函數(shù)】|【時(shí)間軸控制】命令,然后雙擊play,就設(shè)置了動(dòng)作表達(dá)式,如圖13.3所示。如圖13.4所示,在設(shè)置的【動(dòng)作】面板中,場(chǎng)景標(biāo)簽是當(dāng)前場(chǎng)景,類型是幀數(shù),幀的數(shù)量是1,這表示跳轉(zhuǎn)并播放第一幀,當(dāng)Flash動(dòng)畫(huà)播放到設(shè)置動(dòng)作的幀時(shí),就會(huì)執(zhí)行這個(gè)動(dòng)作語(yǔ)句而改變播放順序。圖13.3從菜單中選擇命令圖13.4動(dòng)作語(yǔ)句在FlashMX2004中,我們可以直接輸入動(dòng)作命令,這時(shí)我們?nèi)绻由螱otoAndPlay()命令,就可以直接用鍵盤輸入,如圖13.5所示。動(dòng)作語(yǔ)句都是按照排列的順序,從上到下一行行地執(zhí)行的。

圖13.5輸入命令Flash中的動(dòng)作命令有一百多種,F(xiàn)lashMX2004新增了很多的命令,因此,有關(guān)Flash動(dòng)作語(yǔ)言的部分是一個(gè)大的專題,我們不能在此對(duì)動(dòng)作語(yǔ)言每一個(gè)語(yǔ)句的用法作詳細(xì)地講述,如果讀者在這方面有興趣,可以參閱此專題的相關(guān)書(shū)籍,在此我們只對(duì)一些基本的使用功能作一下闡述。下面我們來(lái)解釋【動(dòng)作】面板中一些菜單的用法。單擊【動(dòng)作】面板右上角的按鈕,在彈出的菜單中,可以看到其他很多關(guān)于編程環(huán)境設(shè)置的命令選項(xiàng),其中有一些文字編輯的命令選項(xiàng),如圖13.6所示?!巨D(zhuǎn)到行】:執(zhí)行后會(huì)把光標(biāo)跳到指定的那一行。【查找】:尋找字符或字符串?!驹俅尾檎摇浚涸俅尾檎易址蜃址??!咎鎿Q】:找到后用制定的語(yǔ)句替換。【語(yǔ)法檢查】:檢查語(yǔ)法錯(cuò)誤。還可以從其他文本中導(dǎo)入腳本,也可以將腳本導(dǎo)出成文本文件,也就是說(shuō),在用Flash編寫(xiě)腳本時(shí),可以用其他第三方的編輯器編輯好腳本,然后導(dǎo)入,如圖13.7所示。圖13.6菜單(一)圖13.7菜單(二)【導(dǎo)入腳本】:表示對(duì)象是從文件中導(dǎo)入。【導(dǎo)出腳本】:把當(dāng)前的編程語(yǔ)言導(dǎo)出?!敬蛴 浚簩⑽谋敬蛴〕鰜?lái)。

13.1.4為幀書(shū)寫(xiě)腳本在Flash中,有兩個(gè)地方書(shū)寫(xiě)腳本動(dòng)作,一個(gè)是在時(shí)間軸上的關(guān)鍵幀里;另一個(gè)在對(duì)象的事件里,比如按鈕的觸發(fā)事件、影片剪輯的Loading事件等,下面將簡(jiǎn)單地介紹兩種動(dòng)作的書(shū)寫(xiě)方法。如果一個(gè)影片的時(shí)間軸上沒(méi)有任何的關(guān)鍵幀設(shè)置動(dòng)作語(yǔ)言,那么這個(gè)電影將從第1幀開(kāi)始“平鋪直敘”地播放到最后一幀,如果需要電影進(jìn)行到某一個(gè)關(guān)鍵幀時(shí)執(zhí)行一些特定的動(dòng)作,就需要給這個(gè)關(guān)鍵幀加上特定的動(dòng)作語(yǔ)言。舉個(gè)例子來(lái)說(shuō),如果需要實(shí)現(xiàn)電影播放到第10幀時(shí),跳轉(zhuǎn)到第5幀開(kāi)始播放,就需要在第10幀加上如圖13.8所示的語(yǔ)句。這樣當(dāng)影片播放到第10幀的時(shí)候,就會(huì)返回來(lái)從第5幀開(kāi)始重新播放,這種類型的幀上會(huì)顯示一個(gè)字母“a”。分配一個(gè)動(dòng)作給關(guān)鍵幀的具體操作步驟如下:(1) 在時(shí)間軸上選擇要賦予動(dòng)作的關(guān)鍵幀,并選擇Window菜單中的動(dòng)作。如果該關(guān)鍵幀沒(méi)有被選中,動(dòng)作將被賦予前面的關(guān)鍵幀。(2) 選中動(dòng)作標(biāo)簽,單擊“+”號(hào),然后從彈出的菜單中選擇一個(gè)動(dòng)作。(3) 可以設(shè)置當(dāng)運(yùn)行到此幀時(shí)的更多響應(yīng),F(xiàn)lash按照順序執(zhí)行這些設(shè)置的動(dòng)作,用上下按鈕可以改變其順序。圖13.8加入幀語(yǔ)句13.1.5為對(duì)象書(shū)寫(xiě)動(dòng)作Flash可以給按鈕和影片剪輯加上動(dòng)作,下面來(lái)介紹加入動(dòng)作的兩種方法。1.給按鈕加上動(dòng)作按鈕主要響應(yīng)的是鼠標(biāo)事件,比如說(shuō)鼠標(biāo)單擊、滑過(guò)、滑出、拖動(dòng)……也就是說(shuō)當(dāng)鼠標(biāo)在按鈕上單擊、滑過(guò)、滑出……時(shí)會(huì)觸發(fā)和執(zhí)行相應(yīng)的動(dòng)作語(yǔ)言,按鈕的觸發(fā)事件如圖13.9所示。圖13.9定義按鈕觸發(fā)事件當(dāng)鼠標(biāo)在一個(gè)按鈕上按下或經(jīng)過(guò)按鈕上方時(shí),產(chǎn)生一個(gè)響應(yīng)動(dòng)作,而且又不會(huì)影響其他的按鈕響應(yīng)。定義按鈕事件,我們要用到實(shí)例,前面我們介紹過(guò),如果我們將某個(gè)常用對(duì)象加到元件庫(kù)中,每當(dāng)從中引用一次,被引用的這一次就是一個(gè)實(shí)例,如果說(shuō)元件是一個(gè)子程序,那么實(shí)例就是一次調(diào)用。下面是制作一個(gè)按鈕交互的具體步驟:(1) 從庫(kù)中選擇一個(gè)按鈕實(shí)例拖拽到場(chǎng)景中,然后在菜單中選擇動(dòng)作標(biāo)簽。(2) 單擊“+”號(hào),然后從彈出菜單中選擇一個(gè)動(dòng)作,如果該標(biāo)簽不可用,說(shuō)明你選擇的不是一個(gè)按鈕實(shí)例。(3) 選擇了一個(gè)動(dòng)作后,F(xiàn)lash自動(dòng)插入一個(gè)On|EndOn語(yǔ)句,并設(shè)置Release為默認(rèn)的按鈕狀態(tài)。任何時(shí)候你都可以通過(guò)選擇OnMouseEvent來(lái)插入一個(gè)On|EndOn語(yǔ)句。在事件選項(xiàng)中,On(Release)突出顯示,選擇一個(gè)激活動(dòng)作的鼠標(biāo)或鍵盤事件。下面是每個(gè)選項(xiàng)的具體響應(yīng)含義:press(按):當(dāng)指針經(jīng)過(guò)一個(gè)按鈕并按下鼠標(biāo)左按鈕時(shí)激活。release(釋放):當(dāng)指針在按鈕上,按下的鼠標(biāo)按鈕被釋放時(shí)激活。releaseOutside(外部釋放):當(dāng)鼠標(biāo)指針在按鈕范圍之外被按下后釋放時(shí)激活。rollOver(滑過(guò)):當(dāng)鼠標(biāo)指針從按鈕上方經(jīng)過(guò)時(shí)激活。rollOut(滑離):當(dāng)鼠標(biāo)指針經(jīng)過(guò)按鈕區(qū)域之外時(shí)激活。dragOver(拖過(guò)):當(dāng)按住鼠標(biāo)從按鈕對(duì)象中向外拖拽出來(lái)后,不要松開(kāi)鼠標(biāo)重新返回按鈕,事件將被激活,就如同拉開(kāi)槍栓再打回去,子彈被激活一般。dragOut(拖離):當(dāng)從按鈕對(duì)象中向外拖拽出對(duì)象范圍時(shí),事件將被激活。keyPressLefts“<>”(按鍵):當(dāng)指定的鍵盤按鍵被按下時(shí)激活事件。(4) 單擊“+”號(hào)按鈕并從打開(kāi)的菜單中選擇一個(gè)需要的動(dòng)作,系統(tǒng)會(huì)給出一些默認(rèn)的內(nèi)容,如果對(duì)各項(xiàng)參數(shù)比較熟悉的話,還可以輸入一些參數(shù)加以控制。(5) 測(cè)試按鈕,具體步驟是在控制菜單中選擇啟用簡(jiǎn)單按鈕,然后選擇測(cè)試影片。與給幀寫(xiě)腳本一樣,可以選中一個(gè)按鈕,打開(kāi)動(dòng)作的編程環(huán)境,然后給每個(gè)按鈕寫(xiě)上觸發(fā)事件和腳本。2.給影片剪輯加上動(dòng)作對(duì)于影片剪輯來(lái)說(shuō),觸發(fā)事件比較復(fù)雜一些,不過(guò)影片剪輯是相應(yīng)很有用的,如果利用得好,可以省去很多的麻煩,影片剪輯的觸發(fā)事件如圖13.10所示。對(duì)影片剪輯事件的說(shuō)明如下:load(加載):當(dāng)一個(gè)影片剪輯在主場(chǎng)景中載入的同時(shí)觸發(fā)。enterFrame(進(jìn)入幀):當(dāng)影片剪輯每一幀運(yùn)行的時(shí)候都觸發(fā)(即使只有一幀也會(huì)不停地執(zhí)行)。unload(卸載):和Unload影片剪輯搭配使用,在影片剪輯被此語(yǔ)句移除時(shí)觸發(fā)。mouseDown(鼠標(biāo)向下):當(dāng)鼠標(biāo)按下時(shí)觸發(fā)。mouseUp(鼠標(biāo)向上):當(dāng)鼠標(biāo)放開(kāi)時(shí)觸發(fā)。mouseMove(鼠標(biāo)移動(dòng)):當(dāng)鼠標(biāo)移動(dòng)時(shí)觸發(fā)。keyDown(向下鍵):鍵盤上特定鍵按下時(shí)觸發(fā),一般和Key對(duì)象中的getCode()函數(shù)連用。keyUp(向上鍵):鍵盤上特定鍵放開(kāi)時(shí)觸發(fā),類似于KeyDown。data(數(shù)據(jù)):當(dāng)數(shù)據(jù)接收到時(shí)觸發(fā),通常和loadvarible及l(fā)oadmovie搭配,當(dāng)數(shù)據(jù)傳輸完成時(shí)觸發(fā)。圖13.10定義影片剪輯觸發(fā)事件13.2動(dòng)作的基本語(yǔ)言Flash中的交互由行為和結(jié)果兩部分組成。行為的實(shí)現(xiàn)是由動(dòng)作來(lái)完成的,首先我們應(yīng)該來(lái)學(xué)習(xí)最基本的動(dòng)作語(yǔ)句。13.2.1跳轉(zhuǎn)語(yǔ)句使用goto語(yǔ)句跳轉(zhuǎn)到動(dòng)畫(huà)中另一個(gè)指定的幀或場(chǎng)景。你會(huì)得到下面一個(gè)選項(xiàng):停在跳轉(zhuǎn)到的幀呢,還是運(yùn)行后返回從此幀繼續(xù)運(yùn)行。跳轉(zhuǎn)語(yǔ)句的兩種形式的格式分別如下所示:gotoAndPlay(scane,frame);或gotoAndStop(scane,frame);它們的區(qū)別在于跳轉(zhuǎn)到目標(biāo)幀以后是繼續(xù)播放還是停止播放,比如用戶在松開(kāi)按鈕時(shí),跳轉(zhuǎn)到第1幀并且停止播放,其動(dòng)作編寫(xiě)如下:on(release){ gotoAndStop(1);}動(dòng)作設(shè)定如圖13.11所示。圖13.11設(shè)定動(dòng)作13.2.2跳轉(zhuǎn)到URLgetURL用于建立Web頁(yè)面鏈接,該命令不但可以完成超文本鏈接,而且還可以鏈接FTP地址、CGI腳本和其他Flash影片的內(nèi)容。使用getURL語(yǔ)句來(lái)裝入另一個(gè)URL,或傳送變量到另一個(gè)應(yīng)用的URL,要測(cè)試這個(gè)動(dòng)作,文件必須在指定的位置,并且絕對(duì)路徑可以可靠地連接,例如:http://www.,如圖13.12所示。圖13.12使用getURL語(yǔ)句在測(cè)試影片時(shí)URL連接的效果并不能表現(xiàn)出來(lái),只有在瀏覽器中或者是Flash播放器中才能看到連接的地址。13.2.3監(jiān)測(cè)某幀是否下載使用framesloaded屬性(包含IF語(yǔ)句)或IfFrameIsLoaded語(yǔ)句來(lái)監(jiān)測(cè)指定幀中的內(nèi)容在本機(jī)上是否可用,利用這一條件來(lái)啟動(dòng)一個(gè)簡(jiǎn)短等待動(dòng)畫(huà),免得訪客等得心焦。二者的主要區(qū)別是If(_framesloaded)語(yǔ)句引導(dǎo)你加入一個(gè)Else或ElseIf語(yǔ)句到你的動(dòng)作事件中,非常快捷。而IfFrameIsLoaded語(yǔ)句引導(dǎo)你在語(yǔ)句中指定一個(gè)幀的數(shù)值。下面是一些具體應(yīng)用的介紹:(1)當(dāng)所有的幀都已下載并開(kāi)始播放,使用IfFrameIsLoaded建立一個(gè)動(dòng)作事件跳出動(dòng)畫(huà)循環(huán)。例如一個(gè)循環(huán)的動(dòng)畫(huà)只有2幀,需要下面的語(yǔ)句才能在第2幀下載后條件滿足時(shí)正確跳出:If(framesloaded){gotoandPlay(3);}else{GotoandPlay(1);}動(dòng)作設(shè)定如圖13.13所示。圖13.13動(dòng)作語(yǔ)句(2)如果一個(gè)30幀的動(dòng)畫(huà)下載完畢之前循環(huán)播放一個(gè)一兩幀的動(dòng)畫(huà),當(dāng)下載完畢時(shí)需要跳出,設(shè)置下面的語(yǔ)句才能正確匹配到第1幀:ifFrameLoaded(30){GotoandPlay(3)}動(dòng)作設(shè)定如圖13.14所示。當(dāng)我們插入一個(gè)IfFrameLoaded語(yǔ)句時(shí),F(xiàn)lash會(huì)自動(dòng)在結(jié)尾處插入一個(gè)EndIfFrameisLoaded作為結(jié)束標(biāo)記。在上述循環(huán)播放的小動(dòng)畫(huà)的第2幀應(yīng)匹配一個(gè)動(dòng)作事件,重新回到第1幀,以實(shí)現(xiàn)循環(huán):GotoandPlay(1)當(dāng)在IfFrameisLoaded語(yǔ)句中指定的幀成功裝入時(shí),動(dòng)畫(huà)就會(huì)播放完第2幀后從第3幀接著開(kāi)始繼續(xù)播放,而退出循環(huán)。這種技巧一般在下載一個(gè)大的圖片或聲音文件時(shí)被采用。圖13.14動(dòng)作語(yǔ)句13.2.4發(fā)送信息到動(dòng)畫(huà)主程序使用FSCommand語(yǔ)句來(lái)傳送一個(gè)信息到任何一個(gè)FlashPlayer中的動(dòng)畫(huà)程序。如果你不熟悉JavaScript或buildingprojectors,你將不得不使用FSCommand。FSCommand有“命令”和“參數(shù)”兩個(gè)參數(shù),在命令對(duì)話框中輸入你要傳送的字串,如果該字串需要參數(shù),在參數(shù)對(duì)話框中輸入即可。在Flash動(dòng)畫(huà)中加入FSCommand語(yǔ)句,可定義影片播放的一些參數(shù),例如可以使用“FSCommand("fullscreen","true");”讓影片全屏幕播放,或者使用“FSCommand

("allowscale","false");”令影片在設(shè)定好的比例播放。下面是一些特別有用的FSCommand語(yǔ)句,可以實(shí)現(xiàn)對(duì)動(dòng)畫(huà)的靈活控制:fullscreen:參數(shù)是true/false,功能是設(shè)置是否全屏幕播放。allowscale:參數(shù)是true/false,功能是設(shè)置動(dòng)畫(huà)下載總是完全且圖像不變形。showmenu:參數(shù)是true/false,功能是允許使用右擊菜單,F(xiàn)alse隱藏菜單條。Quit:參數(shù)無(wú),功能是關(guān)閉放映。13.2.5編輯動(dòng)畫(huà)片段1.復(fù)制或移走一個(gè)動(dòng)畫(huà)片段使用DuplicateMovieClip語(yǔ)句,當(dāng)一個(gè)動(dòng)畫(huà)正在播放時(shí),可以建立一個(gè)該動(dòng)畫(huà)片段的調(diào)用,并且不管從原始動(dòng)畫(huà)片段運(yùn)行到何時(shí)調(diào)用,復(fù)制出的動(dòng)畫(huà)片段都從第1幀開(kāi)始播放。使用RemoveMovieClip語(yǔ)句刪除這樣的一個(gè)調(diào)用,以下兩個(gè)語(yǔ)句有下面幾個(gè)主要參數(shù):目標(biāo):指定要復(fù)制或刪除的動(dòng)畫(huà)片段。新名稱:給復(fù)制出的片段一個(gè)名稱。深度:決定復(fù)制出的對(duì)象的顯示深度,每一個(gè)復(fù)制出的對(duì)象都在原始動(dòng)畫(huà)片段的上方。2.可拖動(dòng)的動(dòng)畫(huà)片段使用startDragMovieClip語(yǔ)句可以讓動(dòng)畫(huà)片段播放時(shí)被允許移動(dòng),該語(yǔ)句可以設(shè)置開(kāi)始或停止拖動(dòng)操作,直到被StopDrag制止或另一個(gè)動(dòng)畫(huà)被允許拖動(dòng),因?yàn)橥瑫r(shí)只能有一個(gè)動(dòng)畫(huà)被允許拖動(dòng)。startDragMovieClip有下面幾個(gè)參數(shù):目標(biāo):指定要拖動(dòng)的動(dòng)畫(huà)片段。限制為矩形:設(shè)置允許拖動(dòng)的區(qū)域。鎖定鼠標(biāo)到中央:設(shè)置動(dòng)畫(huà)片段的中心直接在用戶鼠標(biāo)指針處。當(dāng)此項(xiàng)未被選取時(shí),拖動(dòng)時(shí)會(huì)保持一個(gè)相對(duì)的偏移位置。比如說(shuō)這個(gè)事件強(qiáng)迫動(dòng)畫(huà)片段m在一個(gè)200像素×200像素的框中:On(release){startDrag("m",true,100,100,300,300);}動(dòng)作的設(shè)置如圖13.15所示。圖13.15動(dòng)作設(shè)置3.改變動(dòng)畫(huà)片段的位置和顯示外觀使用SetProperty語(yǔ)句來(lái)改變一個(gè)動(dòng)畫(huà)片段的位置、比率、透明度、旋轉(zhuǎn)等顯示屬性,如圖13.16所示。SetProperty有下面一些參數(shù):_alpha(Alpha):設(shè)置透明度。_heigh(高度)和_width(寬度):指定要改變對(duì)象的寬度和高度。_x(X位置)和_y(Y位置):指定相對(duì)于父動(dòng)畫(huà)片段的偏移量。_xScale(X縮放系數(shù))和_yScale(Y縮放系數(shù)):指定水平和垂直方向的比率。visible(可見(jiàn)性):指定動(dòng)畫(huà)是否可見(jiàn)。_rotation(旋轉(zhuǎn)):設(shè)置一個(gè)動(dòng)畫(huà)的旋轉(zhuǎn),可以輸入旋轉(zhuǎn)的度數(shù)。_name(名稱):指定你要設(shè)置的動(dòng)畫(huà)片段。圖13.16參數(shù)比如說(shuō)我們用下面的語(yǔ)句設(shè)置一個(gè)動(dòng)畫(huà)m的Y位置為100:On(release){SetProperty("m",_y,"100");}動(dòng)作設(shè)置如圖13.17所示。圖13.17設(shè)置命令4.插入動(dòng)畫(huà)片段Load/UnloadMovie提供了插入一個(gè)或者多個(gè)外部的SWF文件到一個(gè)Flash影片的方法,它可以用不同的影片替換當(dāng)前的影片或者同時(shí)顯示多個(gè)影片。比如說(shuō)一個(gè)Flash影片制作了四個(gè)部分,如果想看最后一個(gè)部分,就必須要等待前三個(gè)部分全部下載完畢,這無(wú)疑是非常浪費(fèi)時(shí)間的,一個(gè)好的辦法就是把這個(gè)影片分成四個(gè)SWF文件,然后根據(jù)用戶的要求下載需要的部分。將外部的SWF文件加載到當(dāng)前的影片中的步驟如下:(1) 在主場(chǎng)景上放置一個(gè)按鈕。(2) 為這個(gè)按鈕的Release事件增加LoadMovie動(dòng)作,在URL里設(shè)置SWF的文件地址,在Location后面的數(shù)字欄中輸入影片片段的位置,如圖13.18所示。圖13.18設(shè)置按鈕動(dòng)作(3) 單擊【確定】按鈕確定,這樣,當(dāng)用戶單擊按鈕時(shí),就會(huì)自動(dòng)下載并播放這個(gè)外部的影片片段。當(dāng)不再需要從外部加載影片時(shí),為了減輕對(duì)系統(tǒng)資源的占用,應(yīng)該使用Unload命令將它卸載。13.2.6條件語(yǔ)句條件語(yǔ)句是最基本的控制語(yǔ)句之一,它根據(jù)表達(dá)式的邏輯值執(zhí)行不同的操作,條件語(yǔ)句的一般格式如下所示:if(condition){statement;}else{statement(s)};Flash里沒(méi)有select語(yǔ)句,要實(shí)現(xiàn)多個(gè)并列的判斷時(shí),可以使用if…else…if語(yǔ)句,它的格式如下所示:if(condition(1){

statement(1);

}elseif(condition(2){

statement(2);

}elseif(condition(3){

statement(3);

}例如,要根據(jù)考試成績(jī)來(lái)評(píng)定等級(jí),可以使用下面的動(dòng)作:if(result<60){grade="D";}elseif(result<70){grade="C";}elseif(result<90){ grade="B";}elseif(result<=100){ grade="A";在【動(dòng)作】面板的普通模式中輸入條件語(yǔ)句的方法是首先輸入if語(yǔ)句,然后根據(jù)情況在if語(yǔ)句后面輸入elseif語(yǔ)句或者else語(yǔ)句。13.3按鈕控制影片實(shí)例與Flash動(dòng)畫(huà)交互的主要方法是通過(guò)各種風(fēng)格的按鈕。當(dāng)單擊按鈕時(shí),它可以傳送命令來(lái)觸發(fā)各種表演的動(dòng)作,比如開(kāi)始或者是停止動(dòng)畫(huà)的播放,以及不經(jīng)過(guò)播放從一處跳到另一處。13.3.1制作按鈕動(dòng)畫(huà)按鈕元件是用來(lái)創(chuàng)建影像中的鼠標(biāo)事件,在Flash動(dòng)畫(huà)中一般用于【開(kāi)始】按鈕或【重播】按鈕的制作,按鈕組件有與其他組件不同的幀結(jié)構(gòu),按鈕組件的時(shí)間軸可分為四個(gè)幀,每一幀代表按鈕組件的一種狀態(tài)。我們來(lái)制作一個(gè)小動(dòng)物的按鈕,當(dāng)鼠標(biāo)移到上面會(huì)改變顏色,按下時(shí)會(huì)發(fā)出聲音。具體制作步驟如下:(1) 打開(kāi)Flash,建立一個(gè)新文件。選擇【插入】|【新建元件】命令,在出現(xiàn)的對(duì)話框中選擇按鈕類型,命名為【按鈕】,然后單擊【確定】按鈕。(2) 在按鈕編輯窗口,時(shí)間軸【彈起】處會(huì)有一個(gè)空心小圓點(diǎn),表示你現(xiàn)在可以在彈起處進(jìn)行繪圖,在工作區(qū)用繪圖工具中的圓形工具畫(huà)上一個(gè)圈,這就是按鍵的最外圈。(3) 選取圓,然后再選取顏料桶工具(PaintBucket),在下方會(huì)出現(xiàn)填充顏料的工具,選中它,會(huì)彈出一個(gè)調(diào)色板,直接在最底層選取一個(gè)黑白色的圓形漸變顏色,然后調(diào)整漸變色的中心點(diǎn),注意,要讓中心點(diǎn)偏左上,這樣立體感更強(qiáng),如圖13.19所示。(4) 選擇【插入】|【圖層】命令新建一個(gè)圖層,再如步驟(2)那樣畫(huà)一個(gè)圓,要比前一個(gè)圖形小一些,它的大小決定了按鈕邊緣的寬度。注意,在填色時(shí)要讓中心點(diǎn)偏右下,如圖13.20所示。(5) 再新建一個(gè)圖層,再畫(huà)一個(gè)圓,不過(guò)這次用藍(lán)的漸變色來(lái)填充,中心點(diǎn)偏左上,如圖13.21所示。(6) 再新建一個(gè)圖層,繪制一個(gè)動(dòng)畫(huà)圖形,如圖13.22所示。(7) 現(xiàn)在我們要完成【按鈕】的其他狀態(tài),即“指針經(jīng)過(guò)”和“按下”的狀態(tài),在時(shí)間軸上“指針經(jīng)過(guò)”欄中,每一個(gè)層都按F6鍵插入關(guān)鍵幀,這樣就把“彈起”時(shí)的狀態(tài)全都復(fù)制到“指針經(jīng)過(guò)”狀態(tài)了。(8) 接下來(lái)要改變“卡通形象”層和“按鈕”層的圖案,用其他的漸變色來(lái)代替藍(lán)色的漸變色填充,如圖13.23所示。(9) 在時(shí)間軸上“按下”欄中,每一個(gè)層都按F6鍵插入關(guān)鍵幀,選取按鈕的漸變圖形,將其縮小些,然后填以紅色的漸變色,但要將中心點(diǎn)偏右下。把按鈕上面的圖形同樣也縮小一些,如圖13.24所示。圖13.19繪制圖形(一)圖13.20繪制圖形(二)圖13.21繪制按鈕圖13.22繪制圖案圖13.23指針經(jīng)過(guò)狀態(tài)的按鈕圖13.24按下?tīng)顟B(tài)的按鈕(10) 新增一層,在“按下”幀插入空幀,從庫(kù)中拖出能發(fā)出按鍵效果的聲音文件到工作區(qū),如圖13.25所示。這樣,有形有色有聲的按鈕就大功告成,你還可以充分發(fā)揮你的才能,做出更好的效果。圖13.25插入聲音(11) 我們可在編輯狀態(tài)檢測(cè)按鈕。切換至主場(chǎng)景,將做好的按鈕從庫(kù)中拖到工作區(qū),選擇【控制】|【啟用簡(jiǎn)單按鈕】命令,這時(shí)按鈕就能感應(yīng)你的鼠標(biāo)動(dòng)作。我們把音樂(lè)加載“按下”狀態(tài)下,這表示我們單擊鼠標(biāo)會(huì)發(fā)出聲音,同樣我們也可以把音樂(lè)加在“指針經(jīng)過(guò)”狀態(tài)下,鼠標(biāo)經(jīng)過(guò)按鈕時(shí)會(huì)發(fā)出聲音,但是千萬(wàn)不要把音樂(lè)加在“單擊”幀上,“單擊”是隱藏的,它只是代表鼠標(biāo)的感應(yīng)區(qū)域,如果加在它上面的話,就永遠(yuǎn)也聽(tīng)不到音樂(lè)聲音了。而第1幀的“彈起”是表示一般狀態(tài)的,把音樂(lè)加在它上面的話,即使我們不去碰按鈕,它也會(huì)響個(gè)不停。13.3.2設(shè)置按鈕控制命令在Flash中,按鈕是非常有用的一種東西,如果對(duì)動(dòng)畫(huà)不加干涉,動(dòng)畫(huà)一經(jīng)加載就會(huì)立即播放,通常我們需要加入一個(gè)停止命令來(lái)阻止動(dòng)畫(huà)在加載完畢時(shí)立即播放,下面我們就來(lái)給按鈕添加命令,用按鈕來(lái)控制影片的播放。以卡通魚(yú)游動(dòng)的動(dòng)畫(huà)為實(shí)例,用在上一節(jié)完成的按鈕來(lái)控制這段動(dòng)畫(huà)。(1) 打開(kāi)我們?cè)诘?2章做好的實(shí)例,如圖13.26所示。在這段動(dòng)畫(huà)中一共有兩個(gè)圖層,當(dāng)我們測(cè)試動(dòng)畫(huà)時(shí),它會(huì)不停地播放。圖13.26動(dòng)畫(huà)(2) 下面來(lái)給動(dòng)畫(huà)添加腳本,動(dòng)畫(huà)腳本可以被包含在任何一個(gè)關(guān)鍵幀中,但是將動(dòng)畫(huà)的動(dòng)作放在單獨(dú)的圖層中是一個(gè)很好的辦法,這方便動(dòng)作以后的查找和編輯。新建一層,命名為“動(dòng)作”,我們?cè)谶@一層給影片添加命令,選中第1幀,打開(kāi)【動(dòng)作】面板。(3) 單擊并且按住按鈕,從彈出的命令列表中選擇【全局函數(shù)】|【時(shí)間軸控制】|stop命令,如圖13.27所示,可以看見(jiàn),stop的命令出現(xiàn)在動(dòng)作腳本的窗口中。圖13.27添加命令動(dòng)作圖層中位于第1幀的關(guān)鍵幀上面有一個(gè)“a”的標(biāo)記,如圖13.28所示。(4) 按Alt+Enter組合鍵測(cè)試動(dòng)畫(huà)效果,可以發(fā)現(xiàn),動(dòng)畫(huà)畫(huà)面停止下來(lái)了,看上去就像是一幅靜止的畫(huà)。(5) 現(xiàn)在動(dòng)畫(huà)停下來(lái)了,還需要讓動(dòng)畫(huà)重新開(kāi)始播放,所以需要給它添加一個(gè)按鈕,新建一層,命名為“按鈕”,將我們做好的按鈕拖放到第1幀上,如圖13.29所示,在第2幀按F7鍵插入空白關(guān)鍵幀。圖13.28動(dòng)作圖層中有“a”標(biāo)記圖13.29添加按鈕(6) 現(xiàn)在給按鈕設(shè)置動(dòng)作,選中按鈕,打開(kāi)【動(dòng)作】面板。(7) 單擊并且按住按鈕,從彈出的命令列表中選擇【全局函數(shù)】|【時(shí)間軸控制】|play命令,如圖13.30所示。(8) 按Alt+Enter組合鍵測(cè)試動(dòng)畫(huà)效果,可以發(fā)現(xiàn),動(dòng)畫(huà)畫(huà)面停止下來(lái)了,當(dāng)單擊畫(huà)面中的按鈕以后,畫(huà)面開(kāi)始播放。(9) 在命令窗口中選擇play命令,然后單擊按鈕,將命令刪除,下面再來(lái)設(shè)置goto命令。(10) 單擊并按住按鈕,從彈出的命令列表中選擇【全局函數(shù)】|【時(shí)間軸控制】gotoAndPlay命令,如圖13.31所示。圖13.30添加命令圖13.31設(shè)置gotoAndPlay命令(11) 在命令窗口中,我們可以看到各種鼠標(biāo)事件,如圖13.32所示,其中release是默認(rèn)的鼠標(biāo)事件。當(dāng)你選擇了一個(gè)動(dòng)作,F(xiàn)lash自動(dòng)插入一個(gè)On/EndOn語(yǔ)句,并設(shè)置release為默認(rèn)的按鈕狀態(tài)。任何時(shí)候你都可以通過(guò)選擇OnMouseEvent來(lái)插入一個(gè)On/EndOn語(yǔ)句。(12) 在命令窗口中選擇gotoAndPlay((1)命令,這時(shí)在【命令】面板上可以看到各種屬性設(shè)置選項(xiàng),如圖13.33所示。(13) 確?!緢?chǎng)景】列表中選擇【當(dāng)前場(chǎng)景】,【類型】下拉列表中選擇【類型】,在【幀】下拉列表中輸入2。圖13.32鼠標(biāo)事件圖13.33屬性設(shè)置選項(xiàng)(14) 按Ctrl+Enter組合鍵測(cè)試動(dòng)畫(huà)效果,如圖13.34所示,單擊按鈕釋放以后,動(dòng)畫(huà)進(jìn)入到第2幀播放。圖13.34測(cè)試動(dòng)畫(huà)13.4影片片段活用實(shí)例影片片段在Flash的動(dòng)畫(huà)和游戲制作中起主要的作用,哪怕不使用按鈕,利用影片片段也能夠代替所有的功能。影片片段以時(shí)間軸的形式存在,并且包含所有的要素,在制作游戲時(shí),關(guān)鍵點(diǎn)就是如何設(shè)計(jì)和控制一段影片片段。13.4.1控制卡通魚(yú)隨機(jī)運(yùn)動(dòng)這次我們讓小魚(yú)兒自由地游來(lái)游去。先要了解Random函數(shù),Random也叫隨機(jī)數(shù)發(fā)生函數(shù),簡(jiǎn)單地說(shuō)就是任意選出一個(gè)來(lái)發(fā)生的函數(shù)。舉例來(lái)說(shuō),我們平時(shí)玩皮球,把紅色、藍(lán)色、綠色的皮球放進(jìn)同一個(gè)袋子,然后再?gòu)闹腥∫粋€(gè)皮球,這樣就可能隨時(shí)選擇三個(gè)皮球當(dāng)中的任意一個(gè)。(1) 選擇【文件】|【新建】命令建立一個(gè)新文件。(2) 選擇【插入】|【創(chuàng)建新元件】命令,創(chuàng)建一個(gè)名稱為“魚(yú)”的影片剪輯,單擊【確定】按鈕。(3) 在元件編輯區(qū),調(diào)入我們繪制好的魚(yú)兒的圖像,如圖13.35所示。(4) 單擊Scene1回到主場(chǎng)景當(dāng)中,然后在元件庫(kù)里找到“魚(yú)”的影片剪輯,將它拖拽到場(chǎng)景中央。(5) 用鼠標(biāo)選取該電影剪輯,打開(kāi)【動(dòng)作】面板,如圖13.36所示。圖13.35制作影片剪輯圖13.36選取動(dòng)作命令(6) 在打開(kāi)的【動(dòng)作】面板,并輸入下列語(yǔ)句:onClipEvent(enterFrame){//使魚(yú)從各個(gè)方向出現(xiàn)this._x=random(450)+100;this._y=random(300)+100;}如圖13.37所示。圖13.37輸入語(yǔ)句(7) 到此為止,我們的隨機(jī)函數(shù)動(dòng)畫(huà)就制作完成了,然后按Ctrl+Enter組合鍵預(yù)覽動(dòng)畫(huà)效果,可以看到魚(yú)來(lái)回不定地在屏幕里游動(dòng)。下面解釋一下實(shí)例中的動(dòng)作命令,首先發(fā)生在EnterFrame事件時(shí)調(diào)出onClipEvent(),而且_x和_y是在影片片段中已將實(shí)例定義好的默認(rèn)屬性,_x代表橫向位置,_y代表縱向位置,random(450)的含義是當(dāng)0~499之間的某個(gè)數(shù)值發(fā)生時(shí)就在那個(gè)數(shù)值上增加100。13.4.2利用鍵盤控制魔鬼頭影片在制作游戲的時(shí)候會(huì)發(fā)現(xiàn)有時(shí)候需要用鍵盤來(lái)輸入或控制對(duì)象,這時(shí)候就要利用“Key.getCode()”或者是“Key.isDown()”等,Key.getCode()是返回最后輸入鍵值的方法,所以在使用影片片段命令的情況下,往往只有在發(fā)生keyDown事件或keyUp事件時(shí)才能執(zhí)行,下面我們使用命令讓魔鬼頭的影片剪輯動(dòng)起來(lái)。(1) 選擇【文件】|【新建】命令建立一個(gè)新文件。(2) 選擇【插入】|【創(chuàng)建新元件】命令,創(chuàng)建一個(gè)名稱為“魔鬼”的影片剪輯,單擊【確定】按鈕。(3) 在元件編輯區(qū),繪制好魔鬼先生的圖像,如圖13.38所示。(4) 返回主場(chǎng)景,在元件庫(kù)里找到“魔鬼”的元件,將它拖拽到場(chǎng)景中央,用鼠標(biāo)右鍵單擊魔鬼元件,在彈出的菜單中選擇【動(dòng)作】命令,打開(kāi)【動(dòng)作】面板。(5) 在【動(dòng)作】面板然后輸入下列語(yǔ)句:onClipEvent(keyDown){ //移動(dòng)速度 speed=5; //獲取keyCode keyIn=Key.getCode(); //根據(jù)方向移動(dòng) if(Keyin==Key.LEFT){ this._x–=speed; }elseif(Keyin==Key.RIGHT){ this._x+=speed; }elseif(Keyin==Key.DOWN){ this._y+=speed; }elseif(keyIn=Key.UP){ this._y–=speed; }}如圖13.39所示。該語(yǔ)句表示的意思是在onClipEvent中插入了KeyDown事件,按下按鍵時(shí)執(zhí)行相應(yīng)的動(dòng)作。將速度設(shè)置為“speed=5”,使一次移動(dòng)5像素;keyIn=Key.getCode();是利用Key.getCode()來(lái)讀最后按下的鍵,根據(jù)每個(gè)KeyCode利用sp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論