黃淑玲
摘 要: 將引導(dǎo)動(dòng)畫(huà)或補(bǔ)間動(dòng)畫(huà)和面向?qū)ο竽_本編程語(yǔ)言Actionscript3.0、數(shù)據(jù)標(biāo)記語(yǔ)言XML制作的類(lèi)結(jié)合起來(lái),創(chuàng)建基于Actionscript3.0自定義路徑動(dòng)畫(huà)類(lèi)。使制作的路徑可重復(fù)使用。而且該方法具有一定的通用性,可適用于任何需要重復(fù)使用的動(dòng)畫(huà)或步驟。
關(guān)鍵詞: Actionscript3.0; XML; 動(dòng)畫(huà)類(lèi); flash
中圖分類(lèi)號(hào):TP319 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2016)04-68-02
Designing custom path animation classes with Actionscript3.0
Huang Shuling
(School of physics and electronic engineering, Hanshan Normal University, Chaozhou, Guangdong 521000, China)
Abstract: Combining Guide animation or Tween animation with the classes made by Actionscript3.0 or XML, creates the custom path animation classes with Actionscript3.0 and makes the produced path reusable. The method is universal and can be applied to any animation or step that needs to be reused.
Key words: Actionscript3.0; XML; animation class; flash
0 引言
Flash Actionscript3.0完全是一個(gè)面向?qū)ο蟮哪_本編程語(yǔ)言。Flash Player API是Flash Actionscript3.0的主要組成部分。Flash Player API是由一系列用于實(shí)現(xiàn)特定功能的flash player類(lèi)組成。除了系統(tǒng)自帶的類(lèi),用戶還可以自己編寫(xiě)類(lèi),可以提高代碼的安全性和利用率。
flash是一個(gè)制作動(dòng)畫(huà)的軟件[1],所以對(duì)象的運(yùn)動(dòng)路徑是一個(gè)比較重要的部分。Flash中有幾種制作動(dòng)畫(huà)類(lèi)型,其所制作的運(yùn)動(dòng)路徑只能是直線,比如傳統(tǒng)補(bǔ)間動(dòng)畫(huà)、補(bǔ)間形狀動(dòng)畫(huà)。但其實(shí)很多動(dòng)作或運(yùn)動(dòng)路徑都不是直線的。而且很多動(dòng)作或運(yùn)動(dòng)路徑是需要重復(fù)使用的,比如動(dòng)漫片中的某個(gè)人物或動(dòng)物的動(dòng)作及運(yùn)動(dòng)路徑。引導(dǎo)動(dòng)畫(huà)和補(bǔ)間動(dòng)畫(huà)雖能夠制作出任意運(yùn)動(dòng)路徑,但制作的路徑只能使用一次。將引導(dǎo)動(dòng)畫(huà)或補(bǔ)間動(dòng)畫(huà)和Actionscript3.0、XML制作的類(lèi)結(jié)合起來(lái),創(chuàng)建基于Actionscript3.0自定義路徑動(dòng)畫(huà)類(lèi),使制作的路徑可重復(fù)使用。
XML作為通用的數(shù)據(jù)描述語(yǔ)言,可用XML將復(fù)雜的動(dòng)作路徑進(jìn)行描述,便于實(shí)現(xiàn)數(shù)據(jù)的共享和數(shù)據(jù)傳輸。而flash能夠方便對(duì)XML數(shù)據(jù)進(jìn)行加載,并使用Animator類(lèi)來(lái)解析、播放,特別在遇到無(wú)法用數(shù)學(xué)算法進(jìn)行定義的動(dòng)畫(huà)路徑時(shí),Actionscript3.0 XML動(dòng)畫(huà)是一種簡(jiǎn)單的行之有效的方法。
1 動(dòng)畫(huà)類(lèi)的設(shè)計(jì)
將一種路徑制作成一個(gè)類(lèi),所有路徑存放在一個(gè)文件夾中封裝成一個(gè)包。動(dòng)畫(huà)類(lèi)結(jié)構(gòu)圖如圖1,動(dòng)畫(huà)類(lèi)流程圖如圖2。
[動(dòng)畫(huà)類(lèi)1 動(dòng)畫(huà)類(lèi)2 ……
][包:]
[加載XML數(shù)據(jù)][新建Actionscript實(shí)例][播放Actionscript實(shí)例]
2 實(shí)現(xiàn)步驟
⑴ 獲取路徑
可以利用引導(dǎo)動(dòng)畫(huà)或者補(bǔ)間動(dòng)畫(huà)獲取路徑,不像傳統(tǒng)補(bǔ)間動(dòng)畫(huà)或補(bǔ)間形狀動(dòng)畫(huà)的路徑是直線的,引導(dǎo)動(dòng)畫(huà)和補(bǔ)間動(dòng)畫(huà)的路徑可以用任意的繪圖工具畫(huà)出各種運(yùn)動(dòng)路徑。引導(dǎo)動(dòng)畫(huà)是直接在引導(dǎo)層中畫(huà)出運(yùn)動(dòng)路徑;而補(bǔ)間動(dòng)畫(huà)允許在該層上編輯修改原來(lái)的路徑,但不能直接在上面重新畫(huà)出新的路徑。假如需要重新畫(huà)出一條新的路徑,則可以在其他層中畫(huà)出一條合適的路徑,然后復(fù)制粘貼到補(bǔ)間動(dòng)畫(huà)層中,就能夠直接代替原來(lái)的路徑。例如,用引導(dǎo)動(dòng)畫(huà)制作出如圖3的運(yùn)動(dòng)路徑。
制作完相應(yīng)的軌跡動(dòng)畫(huà)后,在圖層的時(shí)間軸上右擊選擇“將動(dòng)畫(huà)復(fù)制為Actionscript3.0……”。并要求輸入實(shí)例名稱(chēng),比如輸入:lj。那么該運(yùn)動(dòng)軌跡動(dòng)畫(huà)就轉(zhuǎn)換為一段XMl數(shù)據(jù)。因此只要在flash文件中使用這些Actionscript代碼,就可以使用該運(yùn)動(dòng)軌跡。
⑵ 新建類(lèi)
在Actionscript3.0中,由于遵循面向?qū)ο缶幊痰母拍睿荒苤苯釉跁r(shí)間軸上寫(xiě)代碼,而是通過(guò)相應(yīng)的類(lèi)來(lái)實(shí)現(xiàn)所需的功能。我們將一種運(yùn)動(dòng)軌跡制作成一個(gè)類(lèi)[2]。新建一個(gè)as文件lujing1.as。將其存放在lujing\目錄下。
package lujing {
import fl.motion.Animator;
import flash.display.MovieClip;
public class lujing1 extends MovieClip {
private var lj_xml:XML;
private var lj_animator:Animator;
public function lujing1 (){};
public function go (target:MovieClip) {
lj_xml =
lj_animator= new Animator(lj_xml, target);
lj_animator.play();
}
}
}
⑶ 在flash文件中應(yīng)用
只需新建前面自定義路徑動(dòng)畫(huà)類(lèi)的實(shí)例,然后調(diào)用go(影片剪輯元件)方法,就能將運(yùn)動(dòng)軌跡應(yīng)用于任一影片剪輯元件中。
將前面的運(yùn)動(dòng)路徑應(yīng)用在云彩中,不管云彩影片剪輯元件放在什么位置,都按照剛才的路徑走。應(yīng)用效果如圖4所示。
import lujing.*;
var couldmove:lujing1=new lujing1();
couldmove.go(could);
3 結(jié)束語(yǔ)
本文介紹的自定義路徑動(dòng)畫(huà)類(lèi)的設(shè)計(jì)方法具有一定的通用性,可以很方便地創(chuàng)建自定義動(dòng)畫(huà)類(lèi)??蓪⑦@種方法應(yīng)用到各種動(dòng)畫(huà)制作中。凡是需要重復(fù)使用的動(dòng)畫(huà)或步驟,都可以使用這種方法將其制作為類(lèi),再將它應(yīng)用到所需的對(duì)象中,可以一次制作多次使用,提高了設(shè)計(jì)的效率和應(yīng)用的統(tǒng)一性。
參考文獻(xiàn)(References):
[1] 劉歡.Flash Actionscript 3.0全站互動(dòng)設(shè)計(jì)[M].人民郵電出版
社,2014.
[2] 王亦工.Flash CS6實(shí)例教程[M].電子工業(yè)出版社,2014.