在制作Flash動(dòng)畫時(shí),需要對(duì)象不按固定方向運(yùn)動(dòng),而是對(duì)象自己能夠自我控制,如何做到這點(diǎn)呢?下文以化學(xué)課件中的自由分子運(yùn)動(dòng)為例,講解如何通過動(dòng)作腳本讓對(duì)象運(yùn)動(dòng),使自由分子運(yùn)動(dòng)更加形象、逼真。
首先執(zhí)行“插入/新建元件”命令,創(chuàng)建一個(gè)影片剪輯,命名“分子”。然后利用工具箱上的橢圓、顏料桶、填充變形工具,繪制出分子,為方便可以用兩層來表示。利用對(duì)齊工具,使其居于場(chǎng)景的中心點(diǎn)。
回到場(chǎng)景1中,將圖層1重新命名為“分子”。從元件庫中,將“分子”影片剪輯拖放到舞臺(tái)中,命名為“mole-cule”。選中molecule對(duì)象,打開動(dòng)作腳本編輯窗口,賦予其動(dòng)作腳本。當(dāng)molecule對(duì)象被加載時(shí),為方便控制代碼調(diào)用采用全局變量的格式來初始化一些參數(shù)。
onClipEvent (load) {//對(duì)象運(yùn)行速度。_root.speed = 50;//用隨機(jī)函數(shù)random()讓對(duì)象在x、y軸方向上運(yùn)行速度具有隨機(jī)性。_root.dx = random(10)/10;_root.dy = random(10)/10;//表示對(duì)象的運(yùn)動(dòng)狀態(tài),當(dāng)其值為1時(shí),對(duì)象運(yùn)動(dòng);當(dāng)其值為0時(shí),對(duì)象靜止??梢愿鶕?jù)自己的需要,在場(chǎng)景中添加兩個(gè)控制按鈕,一個(gè)按鈕控制停止,另一個(gè)按鈕控制播放,按鈕控制代碼就是通過改變_root.go的值。_root.go = 1;//h1、h2、w1、w2分別表示運(yùn)動(dòng)范圍的上、下、左、右邊沿。_root.h1 = 10;_root.h2 = 470;_root.w1 = 10;_root.w2 = 630;}
控制代碼主要用于控制molecule對(duì)象,使其能夠在預(yù)定范圍內(nèi)運(yùn)動(dòng),在沒有超出范圍時(shí),其運(yùn)動(dòng)軌跡為直線,當(dāng)超出或到達(dá)規(guī)定范圍時(shí),按反方向作直線運(yùn)動(dòng)。執(zhí)行“插入/新建元件”命令,創(chuàng)建一個(gè)影片剪輯,并取名為“action”。在action影片剪輯中,通過執(zhí)行“插入/時(shí)間軸/空白關(guān)鍵幀”命令,創(chuàng)建三個(gè)空白關(guān)鍵幀,并給三個(gè)關(guān)鍵幀分別賦予不同的動(dòng)作腳本,形成完整的控制代碼。
第一幀腳本為://判斷當(dāng)前運(yùn)行狀態(tài),如果狀態(tài)為1,則運(yùn)行到第二幀;反之停止。
if (_root.go==1) {gotoAndPlay (2);} else {stop();}
第二幀腳本為://獲取對(duì)象的當(dāng)前位置。xx = getProperty("_root.molecul