☆ 王巨朝
(霍城二中,新疆霍城 835207)
Flash是一種應用最廣泛的動畫制作軟件,它的表現效果絢麗多彩,功能日趨強大,再加上它發布的文件體積小巧,使之成為教師制作動畫的首選軟件。
我們在用Flash軟件制作課件時,經常涉及到物體各種運動問題,如直線運動、拋物線運動、圓周運動等。下面就如何用FlashAS3.0腳本語言實現物體的直線運動、斜線運動、拋物線運動、圓周運動、橢圓運動、正(余)弦運動等幾種常見運動的控制問題進行探討。
AS即ActionScript(動作腳本)的簡稱。在Flash中,用AS控制物體運動便于人機交互,實現許多補間動畫所不能實現的功能,而且用AS編寫的文件體積更小,更有利于課件的流暢運行。隨著2005年Adobe公司對Macromedia公司的收購,為Flash的發展注入了強大的動力,尤其是 ActionScript3.0的發布是ActionScript發展史上的一個里程碑,它實現了真正意義上的面向對象的編程。它摒棄了ActionScript2.0稍顯混亂的語法,完全以類作為腳本程序設計的基礎,使得編程更加規范,功能更加強大。
若要用AS控制物體的運動,需要理解運動的含義。
從本質上來講,所謂運動,指物體位置隨時間變化。所以,要想實現物體的運動,需要解決兩個問題:一是時間的變化問題;二是要確定不同時刻對應的物體位置坐標。對于時間問題,一般是定義一個變量t,利用Event.ENTER_FRAME事件使t均勻增加,以此實現時間的變化。對于位置坐標,要根據物體運動形式來確定平面直角坐標系中x坐標與時間t的函數關系及y坐標與時間t的函數關系。具體分析如下。
根據物理學知識,物體做勻速直線運動時,位移與時間的關系為:x=vt,做勻加速直線運動時,位移與時間的關系為:x=vt+at2/2,如果物體在 x、y 兩個方向上都做勻速直線運動,物體的合運動是斜方向上的勻速直線運動;如果物體在x、y兩個方向上都做初速度為零的勻加速直線運動,物體的合運動是斜方向上的勻加速直線運動;如果物體在一個方向上是勻速直線運動而另一個方向是勻加速直線運動,則物體的運動是拋物線運動。
根據此原理設計代碼如下:

其中,vx是物體在x方向上的速度,vy是物體在y方向上的速度,ax是物體在x方向上的加速度,ay是物體在y方向上的加速度,t是時間,從0開始。

當ax、ay全取零時,物體做直線運動,當ax、ay中有一個取零時,物體做拋物線運動,這種運動形式可以用于平拋物體運動課件的制作。
用AS控制物體做正弦或余弦運動的道理同做直線運動的道理相同,所不同的是,物體在一個方向上是勻速直線運動而另一個方向按正弦或余弦規律運動。
具體代碼如下:


其中,v為x方向做勻速運動的速度,A為y方向上的振幅,ω 為物體做正弦(余弦)運動的圓頻率,它與正弦函數周期T的關系為ω=2π /T,x0、y0為物體開始運動的起點坐標。
代碼設計如下:

當v=0時,物體做簡諧運動。若要讓物體按余弦規律運動,只需要將代碼改為 mc.y=A*Math.cos(ω*t)+y0 即可。
正弦或余弦運動代碼可以用于簡諧運動課件或波的形成與傳播課件的制作。
與直線運動及拋物線運動和正弦或余弦運動不同的是,圓周運動或橢圓運動的x、y坐標用極參數方程表示比較方便。橢圓的極坐標參數方程為:

根據原理設計代碼如下:

其中,a、b為橢圓的半長軸與半短軸的長度,當a=b時,物體做圓周運動。


圓周運動或橢圓運動代碼可用于數學中相關內容的課件制作,也可用于物理中天體運動課件的制作。
下面以物理學中彈簧振子的制作為例來說明。彈簧振子的運動是簡諧運動,所以,要用到第二類代碼,即正弦和余弦類運動代碼。
(1)首先運行 FlashCS4.0(只要是 FlashCS3.0 以上版本都可以),在場景中做好兩個影片剪輯:彈簧和振子,將振子的實例名稱命名為“mc”,彈簧的實例名稱命名為“th”,并對場景做適當布置(如圖1)。

圖1
(2)按F9打開動作面版,在專家模式下輸入以下動作代碼:

其中,變量d是振子所能拖動的最大寬度,rect是定義了一個矩形,用以限制振子的拖動范圍。它的四個參數分別為矩形的頂點坐標及矩形的寬和高。



制作完成后,同時按下“Ctrl”和“Enter”鍵測試影片,用鼠標拖動振子,松開振子后,彈簧振子系統即開始做標準的簡諧運動。