邢 俊 李紅巖 周 霞 張海倫
(南京信息職業(yè)技術學院 計算機與軟件學院,江蘇 南京210023)
Flash作為一款強大的動畫制作工具,自面世以來就受到許多動畫制作者的喜歡。ActionScript作為Flash的內(nèi)置語言,具有強大的交互功能,可以實現(xiàn)對動畫流程的控制,動畫中的元件的控制,并能制作出豐富的動畫特效,并為動畫添加交互性操作,大大地豐富了設計者的設計空間。因此Flash被廣泛的用于動畫演示、課件、導航、游戲等領域。
Flash演示動畫即是通過動畫的形式全方位地對物品,事件或概念性理論地進行生動的展示或演示。便于人們更好地去理解和認識。本文以一個隊列演示動畫的制作,來講解ActionScript在演示動畫制作中的應用。
隊列是一種特殊的線性表,它只允許在表的前端進行刪除操作,而在表的后端進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊首。隊列中沒有元素時,稱為空隊列。在隊列這種數(shù)據(jù)結(jié)構中,最先插入的元素將是最先被刪除的元素;反之最后插入的元素將是最后被刪除的元素,因此隊列又稱為“先進先出”(FIFO—first in first out)的線性表。
為了模擬出數(shù)據(jù)元素的入隊、出隊以及在隊列中的存儲狀況??梢栽贔lash中將數(shù)據(jù)元素制作成元件。利用ActionScript腳本語言,通過點擊按鈕來控制元件的移動達到入隊、出隊的演示效果。除了元件的運動之外,為更好的說明整個過程,在運動的不同時段添加文字性的說明以及提示,并設置了相應的音效效果。整個過程要求動畫和用戶具有良好的交互性。
為模擬隊列的操作,首先假設待入隊、出隊的有四個元素,分別對應四個控制元件A.B.C.D;針對元素的入隊、出隊兩類操作分別對應入隊、出隊兩個按鈕元件;另有一個重新播放按鈕元件用以控制該動畫重播。在隊列模擬場景中,用戶將通過對按鈕元件的點擊來控制四個控制元件的出隊、入隊變化,同時對各個過程配合以適當提示性文字及聲音,使整個隊列中各元素運動更易讓人理解。
依據(jù)上述設計思路,首先制作A.B.C.D四個數(shù)據(jù)元素元件,入隊、出隊、重新播放三個按鈕元件,文字提示元件若干,其次是場景元件cj,最后是按鈕聲音元件(back2.wav,warning.wav,click1.wav,moveon2.wav,next.wav,out click.wav)。
Flash場景大小設置為800*600,背景設置為白色,將之前制作完成的各個元件拖入到舞臺上,按照之前的整體設計部署并調(diào)整好他們的大小和位置關系。其中位置可通過元件屬性的x和y坐標精確的定位,同時在“屬性”面板對有關實例命名:
將四個圖形元件 A、B、C、D 分別命名為 A、B、C、D; 三個按鈕入隊、出隊、重新播放分別命名為Rd、Cd、Restart;將各種元件按圖1進行布局:
圖1 元件布局圖
ActionScript是Flash中內(nèi)嵌的腳本程序,使用ActionScript可以實現(xiàn)對動畫流程以及動畫中的元件的控制,從而制作出非常豐富的交互效果以及動畫特效。從添加腳本的對象來分,ActionScript主要有以下幾種:為時間軸中的關鍵幀添加的腳本,為影片剪輯元件實例添加的腳本,為按鈕添加的腳本。
1.4.1 為按鈕添加腳本
當點擊 “入隊”控制按鈕后,A元素需要進行入隊操作到達0位置。因此必須在入隊按鈕上添加相應的ActionScript腳本。
先右擊入隊按鈕元件,在彈出的菜單中單擊動作命令。彈出現(xiàn)動作添加窗體,如圖2所示。
圖2 動作添加窗體
最后將代碼鍵入便可。
1.4.2 onEnterFrame函數(shù)的運用
為了使A元件緩慢地移動至0位置。
實現(xiàn)方法如下:利用函數(shù)onEnterFrame。
onEnterFrame是循環(huán)執(zhí)行的意思。當你需要一個動作不斷循環(huán)重復發(fā)生的時候,就要用到它。onEnterFrame函數(shù)的加入使原先瞬間移動的A元件的移動過程,變得緩慢起來。令整個動畫變得更加的有視覺感。
1.4.3 變量和條件語句的結(jié)合運用
利用變量和條件的語句if…else…可使在不同情況下點擊“入隊”控制按鈕,使相應的元素達到正確的入隊位置。
當然為了實現(xiàn)入隊和出隊的良好配合,代碼中還需要添加swither,i,j等變量,通過對 swither進行 true或 false的賦值,來使得按單擊出隊后單擊入隊按鈕仍能正確執(zhí)行出隊操作。因為隊列的出入隊原則是按照先入先出的原則。所以入隊和出隊的操作可以看作是兩個獨立的事件。只要單獨的記錄下進行了幾次入隊和幾次出隊操作就行了。分別用i,j來記錄。當然還需要設置邊界條件,在隊列中沒有元素的時候是不能進行出隊操作的。
為使動畫更為完美,并能從聽覺上進一步給出提示,還增加了按鈕聲音元件。實現(xiàn)將事先選好的聲音導入到庫中步驟如下:在雙擊需要添加聲音的按鈕,為使得圖層含義更為明朗,將原有放置聲音的圖層重新命名為按鈕。并新建一個圖層取名為按鈕聲音。并在按鈕和按鈕聲音層分別插入4個關鍵幀。選中按鈕聲音圖層,彈起下面的關鍵幀。然后將庫中彈起動作相對應的聲音元件拖入場景中便可以了。指針停留,按下,點擊操作類似。如圖3所示:
圖3 添加聲音界面
在本演示動畫的制作的過程中,通過對swither,i,j等變量的賦值和大量的條件判斷語句if…else..,使得用戶可以依據(jù)自己的想法任意的進行出隊和入隊的操作;對元件進行了大量的橫縱坐標的變化,來達到元件移動的目的;運用了函數(shù)onEnterFrame,讓元件得以緩慢的移動,使整個過程更具動畫感;為了顯示提示語句還用到了flash的動態(tài)文本。Flash腳本語言的加入,改變了動畫順序逐幀播放的原貌,使得動畫具備了交互、思考、答疑等功能,做到了動畫和用戶之間的交互。讓抽象的理論概念通過Flash動畫演示生動的表現(xiàn)出來,用戶自由通過按鈕來控制動畫的播放,進而更好地去理解和把握。
[1]章精設,繆亮,白香芳.Flash ActionScript 2.0編程技術教程[M].清華大學出版社,2005.
[2]繆亮,賈朝蓉.Flash MX2004課件制作百例[M].清華大學出版社,2004.
[3]韓文虹,張巍.Flash腳本在多媒體課件開發(fā)中的應用[J].