黃淑玲


摘 要: 將引導動畫或補間動畫和面向對象腳本編程語言Actionscript3.0、數據標記語言XML制作的類結合起來,創建基于Actionscript3.0自定義路徑動畫類。使制作的路徑可重復使用。而且該方法具有一定的通用性,可適用于任何需要重復使用的動畫或步驟。
關鍵詞: Actionscript3.0; XML; 動畫類; flash
中圖分類號:TP319 文獻標志碼:A 文章編號: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完全是一個面向對象的腳本編程語言。Flash Player API是Flash Actionscript3.0的主要組成部分。Flash Player API是由一系列用于實現特定功能的flash player類組成。除了系統自帶的類,用戶還可以自己編寫類,可以提高代碼的安全性和利用率。
flash是一個制作動畫的軟件[1],所以對象的運動路徑是一個比較重要的部分。Flash中有幾種制作動畫類型,其所制作的運動路徑只能是直線,比如傳統補間動畫、補間形狀動畫。但其實很多動作或運動路徑都不是直線的。而且很多動作或運動路徑是需要重復使用的,比如動漫片中的某個人物或動物的動作及運動路徑。引導動畫和補間動畫雖能夠制作出任意運動路徑,但制作的路徑只能使用一次。將引導動畫或補間動畫和Actionscript3.0、XML制作的類結合起來,創建基于Actionscript3.0自定義路徑動畫類,使制作的路徑可重復使用。
XML作為通用的數據描述語言,可用XML將復雜的動作路徑進行描述,便于實現數據的共享和數據傳輸。而flash能夠方便對XML數據進行加載,并使用Animator類來解析、播放,特別在遇到無法用數學算法進行定義的動畫路徑時,Actionscript3.0 XML動畫是一種簡單的行之有效的方法。
1 動畫類的設計
將一種路徑制作成一個類,所有路徑存放在一個文件夾中封裝成一個包。動畫類結構圖如圖1,動畫類流程圖如圖2。
[動畫類1 動畫類2 ……
][包:]
[加載XML數據][新建Actionscript實例][播放Actionscript實例]
2 實現步驟
⑴ 獲取路徑
可以利用引導動畫或者補間動畫獲取路徑,不像傳統補間動畫或補間形狀動畫的路徑是直線的,引導動畫和補間動畫的路徑可以用任意的繪圖工具畫出各種運動路徑。引導動畫是直接在引導層中畫出運動路徑;而補間動畫允許在該層上編輯修改原來的路徑,但不能直接在上面重新畫出新的路徑。假如需要重新畫出一條新的路徑,則可以在其他層中畫出一條合適的路徑,然后復制粘貼到補間動畫層中,就能夠直接代替原來的路徑。例如,用引導動畫制作出如圖3的運動路徑。
制作完相應的軌跡動畫后,在圖層的時間軸上右擊選擇“將動畫復制為Actionscript3.0……”。并要求輸入實例名稱,比如輸入:lj。那么該運動軌跡動畫就轉換為一段XMl數據。因此只要在flash文件中使用這些Actionscript代碼,就可以使用該運動軌跡。
⑵ 新建類
在Actionscript3.0中,由于遵循面向對象編程的概念,不能直接在時間軸上寫代碼,而是通過相應的類來實現所需的功能。我們將一種運動軌跡制作成一個類[2]。新建一個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文件中應用
只需新建前面自定義路徑動畫類的實例,然后調用go(影片剪輯元件)方法,就能將運動軌跡應用于任一影片剪輯元件中。
將前面的運動路徑應用在云彩中,不管云彩影片剪輯元件放在什么位置,都按照剛才的路徑走。應用效果如圖4所示。
import lujing.*;
var couldmove:lujing1=new lujing1();
couldmove.go(could);
3 結束語
本文介紹的自定義路徑動畫類的設計方法具有一定的通用性,可以很方便地創建自定義動畫類。可將這種方法應用到各種動畫制作中。凡是需要重復使用的動畫或步驟,都可以使用這種方法將其制作為類,再將它應用到所需的對象中,可以一次制作多次使用,提高了設計的效率和應用的統一性。
參考文獻(References):
[1] 劉歡.Flash Actionscript 3.0全站互動設計[M].人民郵電出版
社,2014.
[2] 王亦工.Flash CS6實例教程[M].電子工業出版社,2014.