孫宏龍
摘要:Flash是非常流行的一款多媒體矢量動畫軟件,在互聯(lián)網(wǎng)、多媒體課件制作以及游戲軟件制作領(lǐng)域有廣泛的應用,ActionScript作為Flash的腳本語言,在動畫中應用腳本語言,可以制作出交互性強、動畫效果更加豐富的Flash動畫。目前,F(xiàn)lash軟件的最新版本是cs6,對應的腳本語言是AS3,但現(xiàn)在很多Flash動畫制作教材中,關(guān)于Flash的腳本語言應用的內(nèi)容仍然是AS2,該文結(jié)合多年的Flash動畫制作教學體會,總結(jié)利用AS3進行腳本語言應用的教學探討。
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)21-0162-02
1 Flash軟件及ActionScript的發(fā)展
Flash軟件常用版本經(jīng)歷了Flash 5、Flash mx(6)、Flash mx2004、Flash 8.0、Flash cs3、Flash cs4、Flash cs5、Flash cs6。flash的腳本發(fā)展,從最初發(fā)展到現(xiàn)在經(jīng)歷了三個過程,Actionscript1.0,Actionscript2.0到現(xiàn)在的Actionscript3.0,flash8.0之前的版本都使用的是as2.0以前的腳本,早期的flash 3中采用的是ActionScript 1.0,最簡單、最靈活、比較容易理解,這種狀況一直保持到flash 5,在flash mx (即flash 6)版本中得到的增強;Flash MX2004 (即Flash 7)引入了ActionScript 2.0,ActionScript 2.0則相對比較規(guī)范,是1.0的升級版。首次將OOP(Object Oriented Programming,面向?qū)ο蟮某绦蛟O計)引入Flash。它帶來了兩大改進:變量的類型檢測和新的class類語法。ActionScript 2.0的變量類型會在編譯時執(zhí)行強制類型檢測;從 flash CS3(即flash 9) 開始升級為ActionScript 3.0,更加系統(tǒng)、規(guī)范和完善的OOP。ActionScript 3不光有一個帶有新的版本號的ActionScirpt 語言,還有一個全新的虛擬機。ActionScript 1.0和ActionScript 2.0都使用是AVM1(ActionScript 虛擬機1),因此它們在需要回放時本質(zhì)上是一樣的,在ActionScript2上它增加了強制變量類型和新的類語法,它實際上在最終編譯時變成了ActionScript 1,而ActionScript 3.0運行在AVM2上,一種新的專門針對ActionScirpt 3代碼的虛擬機。在編譯階段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虛擬機采用了OOP思想,在執(zhí)行速度上比起avm1也快了10倍,還提供了異常處理。同時使用AS2時,一旦出錯,AVM1選擇的是靜默失敗,讓人根本不知道什么地方出錯了,會浪費大量的時間去查錯,而AVM2與目前主流的編譯器一樣,會有異常處理,運行出錯會輸出錯誤提示,工作效率大大提高。
2 AS3與AS2的主要區(qū)別
新建一個flash文檔時,會有新建文檔提示,我們可以選擇建立as3文檔或as2文檔。
在ActionScript2.0(AS2)文檔中,代碼可以寫在三個地方,1)寫在幀上;2)寫在影片剪輯上;3)寫在按鈕上。
在ActionScript3.0(AS3)文檔中,代碼只能寫在幀中,不像AS2那么隨意,如果控制按鈕或影片剪輯,那就只能靠實例名來控制了。其實這也是為了規(guī)范,和其他編程軟件一樣,要控制哪個組件,你就得有這個組件的名字。
AS3中帶下劃線的變量不需要下劃線了,如_x, _y,變?yōu)閤,y,其他的如_root、_visible、_width、_height 等都是直接去掉下劃線;_xscale 變?yōu)?scaleX, _yscale 變?yōu)?scaleY,
scale 值的表示方式改變:
AS2 _xscale = 200 表示 200%
AS3 scaleX = 2 表示 200%
3 ActionScript3.0文檔應用例子
3.1 動畫播放停止的腳本
創(chuàng)建一個ActionScript3.0動畫,新建一個按鈕圖層,并拖入兩個按鈕,給單擊實現(xiàn)停止的按鈕實例命名為an1, 給單擊實現(xiàn)播放的按鈕實例命名為an2,為實現(xiàn)動畫測試時停止在第一幀,單擊播放和停止按鈕實現(xiàn)控制動畫,可新建as圖層,并在as圖層第一幀寫入如下腳本:
stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
}
3.2 帶有影片剪輯元件動畫播放停止的實現(xiàn)腳本
如果動畫中應用有影片剪輯元件,會看到開始測試,影片剪輯元件是播放的,單擊停止按鈕,影片剪輯元件不起作用,可以作以下改動實現(xiàn),在屬性面板給影片剪輯實例命名ypjj,腳本更改為:
stop();
ypjj.stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
ypjj.stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
ypjj.play();
}
3.3 利用四個按鈕控制動畫及影片剪輯元件播放停止的實現(xiàn)腳本
在動畫中拖入四個按鈕,給單擊實現(xiàn)動畫停止的按鈕實例命名為an1, 給單擊實現(xiàn)動畫播放的按鈕實例命名為an2,給單擊實現(xiàn)影片剪輯停止的按鈕實例命名為an3, 給單擊實現(xiàn)影片剪輯播放的按鈕實例命名為an4,為實現(xiàn)動畫測試時動畫及影片剪輯停止在第一幀,單擊播放和停止按鈕分別實現(xiàn)控制動畫及影片剪輯的播放和停止,在as圖層第一幀寫入如下腳本:
stop();
ypjj.stop();
an1.addEventListener(MouseEvent.CLICK,a1);
function a1(e:MouseEvent) {
stop();
}
an2.addEventListener(MouseEvent.CLICK,a2)
function a2(e:MouseEvent) {
play();
}
an3.addEventListener(MouseEvent.CLICK,a3);
function a3(e:MouseEvent) {
ypjj.stop();
}
an4.addEventListener(MouseEvent.CLICK,a4)
function a4(e:MouseEvent) {
ypjj.play();
}
教學中可以提供腳本,讓學生輸入,也可以建立好腳本文本文件,讓學生復制相關(guān)腳本,直接應用。
以上是本人在多年的Flash動畫教學中關(guān)于as3應用思考,自己經(jīng)歷了由as2到as3的轉(zhuǎn)變,現(xiàn)在很多Flash cs3、cs4、cs5、cs6的教材,提供的as腳本還是as2的內(nèi)容,在這些內(nèi)容的基礎(chǔ)上,希望能為學習as3腳本提供幫助。