摘 要:運(yùn)用Flash動作腳本語言包涵了內(nèi)置對象和函數(shù),并且允許用戶創(chuàng)建自己的對象和函數(shù)。結(jié)合ActionScript 2.0以制作一個星空腳本動畫為例,體現(xiàn)腳本動畫的基本方法和特點(diǎn)。as2.0版本兼容OOP和POP,語法要求規(guī)范寫作,其中所用到的語句力求符合面向?qū)ο缶幊痰恼Z法格式。
關(guān)鍵詞:ActionScript 2.0;動作腳本語言
中圖分類號:TP317.4
用Flash制作動畫,利用時間軸和圖層來演繹畫面,可以讓動畫很精彩,但只能沿著時間線的進(jìn)度被動的欣賞。如果要想動畫具有交互性,根據(jù)觀賞者的選擇來控制播放的順序或者呈現(xiàn)不同的內(nèi)容,是動畫更精彩,就需要依靠Flash的動作腳本語言了。動作腳本英文為ActionScript,簡稱AS。運(yùn)用Flash動作腳本語言,能實現(xiàn)時間軸無能為力的一些特殊效果;運(yùn)用基本技法與動作腳本語言相結(jié)合制做出來的動畫效果,往往更加精彩紛呈;運(yùn)用動作腳本語言,還可以讓一些復(fù)雜繁瑣的制作過程得到有效的簡化。和其他的腳本語言相同,動作腳本包涵了內(nèi)置對象和函數(shù),并且允許用戶創(chuàng)建自己的對象和函數(shù)。動作腳本程序一般由語句、函數(shù)和變量組成,主要涉及數(shù)據(jù)類型、語法規(guī)則、變量、函數(shù)、表達(dá)式和運(yùn)算符等。做好Flash動畫,掌握動作腳本語句是非常重要的。Flash2004內(nèi)嵌as2.0版本的語法規(guī)范要求寫作,其中所用到的語句力求符合面向?qū)ο缶幊痰恼Z法格式。
1 動作腳本
1.1 動作腳本的使用
在Flash中,動作腳本的編寫,都是在“動作”面板的編輯環(huán)境中進(jìn)行,添加腳本可分為兩種:一是把腳本編寫在時間軸上面的關(guān)鍵幀上面,此種腳本必須是關(guān)鍵幀上才可以添加腳本。如何設(shè)置幀動作?影片播放到某一關(guān)鍵幀時,將產(chǎn)生的動作。設(shè)置方法:在幀上單擊右鍵,選擇“動作”,打開“動作”面板,輸入動作腳本即可。二是把腳本編寫在對象身上,比如把腳本直接寫在按鈕件的實例上、影片剪輯元上面等。(1)按鈕一般是通過執(zhí)行動作腳本來對動畫進(jìn)行控制的。按鈕的響應(yīng)函數(shù)通常為on函數(shù)。按鈕能夠響應(yīng)的事件主要有press、release、rollover、rollout等,分別是對應(yīng)鼠標(biāo)按下、釋放、移出、移入等操作。(2)影片剪輯是使用腳本代碼最多的一類對象,它有許多屬性和方法,可以借助與它們編寫一些實用的腳本,從而制作出豐富多彩的影片效果。如:下雨、雪花效果以及電子相冊等。由于它們都是元件,具體制作與按鈕相似。影片剪輯的響應(yīng)函數(shù)通常為onClipEvent,是為特定的影片剪輯實例定義的觸發(fā)動作,括號內(nèi)的參數(shù)是一個稱為事件的觸發(fā)器,常見的有:load、unload、enterframe、mouseMove、mouseDown、keyDown等,分別用于載入、刪除、連續(xù)觸發(fā)、鼠標(biāo)移動、鼠標(biāo)按下、鍵盤按下等動作。本文主要使用對象添加動作腳本來實現(xiàn)星空的效果。
1.2 as2.0的特點(diǎn)
隨著FLASHMX2004的發(fā)布,Macromedia公司推出了一種新的腳本類型語言ActionScript2.0,Macromedia Flash MX 2004和Flash MX Professional 2004是具有專業(yè)水準(zhǔn)的動畫創(chuàng)作工具,結(jié)合ActionScript 2.0您可以開發(fā)出與用戶的交互的web產(chǎn)品。ActionScript 2.0我們簡稱為as2。翻譯成中文呢就是\"動作腳本\"的意思。通俗的講就是通過編程手段利用一系列的代碼來控制FLASH的動畫效果。
計算機(jī)信息技術(shù)的快速發(fā)展,很多的高版本都慢慢的取代了低版本,但是并非所有的低版本都能被取代。As2.0對于一些程序新手,做一些簡單的小AS程序用起函數(shù)比AS3容易。雖然,從結(jié)構(gòu)、性能上都是極大優(yōu)越于2.0。AS3.0完全面向?qū)ο?,對?nèi)置函數(shù)的接口、繼承關(guān)系等做了很大改動,修改了很多全局函數(shù),更改了不少方法。但是,as2.0兼容OOP和POP,程序員和大眾都適用。as3.0是純OOP語言,面向?qū)ο?,程序員適用。所以本文動畫推薦使用As2.0。
1.3 腳本應(yīng)用原則
Flash2004內(nèi)嵌as2.0版本的腳本和語法寫作要求規(guī)范,編寫中主要注意幾個方面:(1)寫代碼時標(biāo)點(diǎn)要用使用英文輸入法半角符號;(2)操作什么就需要添加什么以免出現(xiàn)沒有的;(3)注意代碼的大小寫區(qū)分;(4)動作腳本的效果必須在測試影片中或?qū)С龊蟛拍芸吹?,直接播放不能顯示。如果在編寫中出錯,可以依據(jù)這些,來進(jìn)行調(diào)試。
2 制作腳本動畫-----星空
2.1 動畫效果
影片第一次加載道時間軸時,從文檔的中心發(fā)射出星星,隨機(jī)變化后消失,表現(xiàn)出深邃的宇宙星空。
2.2 設(shè)計步驟
結(jié)合flash的基本功能設(shè)計整體效果,首先,設(shè)計場景深邃的宇宙畫面;其次,制作星星元件,添加元件和時間軸動作。最后,添加星星元件動作腳本。
2.3 動作腳本
利用onClipEvent():這個語句指專門給電影剪輯添加命令的語句,本案例影片剪輯事件load、和enterframe類型。
結(jié)合一些常用自帶函數(shù)和自創(chuàng)函數(shù)制作。如random(40)在0~40中隨機(jī)抽選一個數(shù)。
onClipEvent(load)當(dāng)影片片斷第一次加載道時間軸時,會觸發(fā)本事件一次。根據(jù)文檔總中心位置賦值,對數(shù)據(jù)預(yù)測指數(shù)增長值。根據(jù)現(xiàn)有的x值和y值,GROWTH函數(shù)返回一組新的x值對應(yīng)的y值。
onClipEvent (load) {
this._x = 250;
this._y = 200;
this._xscale = 0;
this._yscale = 0;
xspeed = -25+int((random(40)+1));
yspeed = -25+int((random(40)+1));
growth = 0.20;
}
onClipEvent(enterFrame)當(dāng)影片片斷加載時間軸時,不論是放映或停止?fàn)顟B(tài)或顯示與否,都會不斷觸發(fā)本事件。所以只要此片斷被加載后,此事件會一直不斷地執(zhí)行,直到影片片斷被刪除為止。其中調(diào)用加載的函數(shù)改變初值,用if函數(shù)做判斷,進(jìn)行循環(huán)處理。
onClipEvent (enterFrame) {
this._x += xspeed;
this._y += yspeed;
this._xscale += growth;
this._yscale += growth;
if (this._x>550 or this._x<0 or this._y>400 or this._y<0 or this._xscale>410) {
this._x = 250;
this._y = 200;
xspeed = -20+int((random(40)+1));
yspeed = -20+int((random(40)+1));
this._xscale = 0;
this._yscale = 0;
}
}
3 結(jié)束語
隨著計算機(jī)信息產(chǎn)業(yè)的發(fā)展,F(xiàn)lash被廣泛應(yīng)用于網(wǎng)頁設(shè)計、網(wǎng)頁廣告、網(wǎng)絡(luò)動畫、多媒體教學(xué)軟件、游戲設(shè)計、企業(yè)介紹、產(chǎn)品展示和電子相冊等領(lǐng)域。Flash憑借本生的技術(shù)優(yōu)勢不斷的發(fā)展,ActionScript的應(yīng)用,能很大程度的提高動畫的效果,合理的使用動作腳本,達(dá)到自己設(shè)計的效果也很重要。
參考文獻(xiàn):
[1]周德云.Flash動畫制作與應(yīng)用[M].北京:人民郵電出版社,2009.
[2]王菊.基于AS3.0的flash腳本動畫制作[J].電大理工,2013(01).
[3]余強(qiáng).flash MX2004中文版實訓(xùn)教程[M].北京:電子工業(yè)出版社,2005.
[4]汗剛,薛芬.Flash mx動畫設(shè)計[M].北京:清華大學(xué)出版社,2004.
作者簡介:張曉艷(1983-)女,云南麗江人,講師,軟件工程碩士,主要研究現(xiàn)代教育技術(shù)及信息管理。
作者單位:云南經(jīng)濟(jì)管理職業(yè)學(xué)院,昆明 650106