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