朱珊虹 石慶民
提要通過一個下雨特效的制作,介紹FLASH AS動作腳本的使用,主要是利用 Function、Duplicate-MovieClip、SetProperty、Set Variable、If、SetInterval,實現(xiàn)特效的制作、速度的快慢控制、選擇播放的順序。
關(guān)鍵詞:flash;AS腳本;下雨特效
中圖分類號:TP317.4文獻標(biāo)識碼:A
一、引言
flash是Macromedia公司推出的一種優(yōu)秀的交互式動畫制作軟件,具有體積小、互動性強、兼容性好的特點,一直受到動畫制作者的青睞。如今,因特網(wǎng)上已具有成千上萬個flash站點,讓人盡情地享受這種多媒體技術(shù)所帶來的動感,flash動畫勢必將成為未來網(wǎng)頁的一大主流。在flash動畫制作過程中,AS動作腳本扮演著一個重要的角色,動作腳本是flash動畫中使用的程序腳本,通過動作腳本,可以對動畫進行高級的邏輯控制,能實現(xiàn)時間軸的特殊效果,能幫助用戶按照自己的想法更加準(zhǔn)確地創(chuàng)建電影。效果更加精彩紛呈,但是如何能掌握好flash動作腳本制作技術(shù),已經(jīng)成為廣大學(xué)習(xí)者迫切需要解決的問題。本文通過制作下雨特效實例,讓讀者了解和掌握一些動作腳本的運用。
二、認(rèn)識和理解動作腳本術(shù)語
和任何腳本撰寫語言一樣,flash動作腳本既有和其他語言相同之處,比如數(shù)據(jù)類型、關(guān)鍵字、運算符、表達式、函數(shù)、變量等等,但也有自己的獨特專用術(shù)語,它本身具有獨特的專業(yè)含義,只有準(zhǔn)確地理解術(shù)語,才能讀懂語句,真正地理解腳本的含義,逐步構(gòu)建自己編寫動作腳本的基礎(chǔ)。
1、動作:是在播放SWF文件時指示SWF文件執(zhí)行某些任務(wù)的語句。
2、類:類是可以創(chuàng)建與定義新類型的數(shù)據(jù)類型,若要定義類,需在外部腳本文件中使用class關(guān)鍵字。
3、構(gòu)造函數(shù):構(gòu)造函數(shù)是用于定義類的屬性和方法的函數(shù)。
4、事件:事件是SWF文件播放時發(fā)生的動作。例如,在加載影片剪輯,播放頭進入幀,用戶單擊按鈕或影片剪輯,或者用戶按下鍵盤上的鍵時,會產(chǎn)生不同的事件。
5、實例:實例是屬于某個類的對象,類的每個實例均包含該類的所有屬性和方法。
6、方法:方法是與類關(guān)聯(lián)的函數(shù)。
7、實例名稱:實例名稱是腳本中用來表示影片剪輯和按鈕實例的唯一名稱,可以使用屬性面板為舞臺上的實例指定實例名稱。
8、對象:對象是屬性和方法的集合,每個對象都有其各自的名稱,并且都是特定類的實例。
9、包:包是位于指定的類路徑目錄下,包含一個或多個類文件的目錄。
10、屬性:屬性是定義對象的特性。
11、目標(biāo)路徑:目標(biāo)路徑是SWF文件中影片剪輯實例名稱變量和對象的分層結(jié)構(gòu)地址。
三、制作特效用到的AS腳本
1、Function——用戶自定義函數(shù)。定義一個函數(shù)Function,要后跟函數(shù)名、參數(shù)列表和代碼塊。函數(shù)定義的形式為:
Function函數(shù)名(參數(shù)列表){代碼塊;}
其中,F(xiàn)unction表明函數(shù)的頭部。函數(shù)名,是該函數(shù)的名稱,一般都是選用能夠代表函數(shù)功能的詞或詞組。參數(shù)列表,是用來給函數(shù)傳遞參數(shù),參數(shù)可有可無。代碼塊,放在大括號里面,是執(zhí)行Function函數(shù)的語句,可以有多個語句組成。
2、DuplicateMovieClip——復(fù)制影片剪輯。語法形式為:duplicateMovieClip(目標(biāo)、新名稱、深度)。目標(biāo)是指要復(fù)制的電影剪輯的名稱和路徑,新名稱是指復(fù)制后的電影前輯實例名稱,深度是指新復(fù)制的影片剪輯的唯一深度級別。復(fù)制影片經(jīng)常要與影片屬性控制(特別是_x,_y,_alpha,_rotation,_xscale,_yscale等屬性)結(jié)合才能更好地發(fā)揮復(fù)制效果。復(fù)制影片還經(jīng)常要和循環(huán)語句配合,才能復(fù)制多個影片剪輯。
3、SetProperty——設(shè)置影片剪輯的屬性。語法形式為:setProperty(屬性,目標(biāo),值)。屬性是指你想控制影片剪輯的那些屬性,F(xiàn)lash給我們提供了14個影片剪輯的屬性,我們可以根據(jù)需要來選擇設(shè)置。值是指設(shè)置的隨機函數(shù)值。
4、Set Variable——給變量賦值。與其他動作不同,它并不在腳本中出現(xiàn),而是在編寫腳本時,使用它來創(chuàng)建賦值語句框架,便于填寫變量和變量的值。
5、if——如果。如果條件符合,即true,就執(zhí)行代碼;條件不符合,就不執(zhí)行。語法為:if (條件){//代碼}。
6、setInterval——設(shè)置時間間隔。語法形式為:setInterval(函數(shù)名,間隔時間)。函數(shù)名即為Function已自定義的函數(shù)名,間隔時間以秒為單位。
四、下雨特效的制作過程
通過一個實例,來完成一個雨點飄落過程,且隨機出現(xiàn)大小和速度不同的雨點。通過添加幾句代碼可以省去很多繁雜的動畫處理。
1、打開flash,新建一個文檔,畫布寬550px,高400px,幀頻率默認(rèn),舞臺背景顏色為黑色。
2、新建圖形元件,名稱命名為下雨,在這里可以起中文名稱,在注冊點位置用直線繪制雨點,顏色為白色。新建影片剪輯元件,命名為雨點影片。用直線工具繪制細(xì)長雨點,再在第三十幀處按下快捷鍵 F6插入關(guān)鍵幀,將所在第三十幀的雨點向下方拖動一段距離。在第一幀至第三十幀時間軸添加動畫(運動)變化,然后添加運動引導(dǎo)層,畫一條直線作為雨點飄落的路徑。在第一幀上:把雨點圖形跟曲線頂部對齊,注意要把圖形的中心圓放在線條上;在最后一幀上:把雨點圖形跟曲線底端對齊,形成了一個雨點順著路徑運動的動畫。
3、回到場景中,把庫面板中的雨點影片剪輯元件拖拽到畫布中。在屬性面板上,把影片剪輯名稱命名為rain,這個必須以英文命名。再在第三十幀處按下快捷鍵F5插入幀。此目的是,和影片剪輯元件中的雨點落下的時間保持一致,測試動畫即可。如動畫運動的大小跟畫面尺寸不一致,可在雨點影片剪輯元件中進行調(diào)整。
4、動作面板有兩種編輯模式:標(biāo)準(zhǔn)模式和專家模式,可以在兩種模式之間進行切換。在標(biāo)準(zhǔn)模式的動作面板下,打開目錄雙擊語句,右邊的語句描述框中將顯示它的描述,這種模式比較適合初學(xué)者。在專家模式下,可以在編輯器中直接輸入動作腳本,比較適用于對動作腳本比較熟練的用戶。本文所用的代碼都是在標(biāo)準(zhǔn)模式下完成的。有些動作設(shè)置參數(shù)時,在一些參數(shù)框右邊有一個表達式復(fù)選框。對于這種參數(shù),應(yīng)該根據(jù)你輸入的參數(shù)的類型決定是否要勾選此復(fù)選框。例如,我們使用Set Variable動作,給變量n賦值。如果你給n提供的參數(shù)是一個字符串常數(shù),就不要勾選此復(fù)選框。反之,則要就要勾選該復(fù)選框。新建圖層2,在初始幀上設(shè)置動作。//設(shè)置變量n,值為1,n=1。
5、在第二層的第一幀放上AS腳本,腳本如下:
C=1;
//定義變量C初值為1
在第二幀放上AS腳本,腳本如下:
function aa(){
//定義名稱為aa的function函數(shù)
duplicateMovieClip("mc",c,c);
//執(zhí)行復(fù)制影片剪輯命令,在這里出現(xiàn)的新名稱
setProperty(c,_x,random(550));
//設(shè)置各影片剪輯_X屬性,在550px以內(nèi)的隨機
setProperty(c,_y,random(-100));
//設(shè)置各影片剪輯_Y屬性,在550px以內(nèi)的隨機
updateAfterEvent();
c++;
//設(shè)置變量為遞增
}
kk=setInterval(aa,90);
//最后對aa函數(shù),作周期循環(huán)。比如 90秒執(zhí)行一次(時間可自行設(shè)定),時間的大小可調(diào)節(jié)稀疏度的大小。
按Ctrl+Enter測試文檔,最終效果如圖1所示。(圖1)
(作者單位:新鄉(xiāng)學(xué)院計算機與信息工程學(xué)院)
主要參考文獻:
[1]柴孟華,李勝偉.深入淺出FLASH MX 2004動畫設(shè)計[M].北京:中國鐵道出版社,2006.
[2]方晨.操作與實例FLASH MX 2004中文版[M].上海:上海科學(xué)普及出版社,2004.
[3]齊錦剛,曹麗云等.Flash MX 2004活學(xué)活用300問[M].北京:機械工業(yè)出版社,2005.
[4]李學(xué)進,楊微.Flash在教學(xué)中的應(yīng)用[J].電腦學(xué)習(xí),2006.2.
[5]章精設(shè),繆亮等.Flash ActionScript 2.0編程技術(shù)教程[M].北京:清華大學(xué)出版社,2005.