電影剪輯動(dòng)作的編寫
電影剪輯在flash中可以說是使用最多的一種元件了,那么對(duì)于它的AS也是不少。
在講解之前,我還是要重新說一下電影剪輯AS的編寫規(guī)則,和上次講按鈕一樣,分為兩種,一種是寫在電影剪輯本身上,一種是寫在時(shí)間軸上面。
一、首先咱們先來做個(gè)簡(jiǎn)單的小例子。
或許你不用AS就能做出一個(gè)小球的移動(dòng)動(dòng)畫。但是如果讓你用AS來實(shí)現(xiàn)小球的移動(dòng)呢?下面來看看如何用AS來實(shí)現(xiàn)吧。
在這個(gè)例子里,你首先會(huì)了解到如何在電影剪輯本身上編寫AS,以及編寫規(guī)則。
1、 新建立一個(gè)電影剪輯元件,里面你就隨便畫一個(gè)圓吧。之后把這個(gè)影片剪輯拖放到舞臺(tái)之中(也就是創(chuàng)建一個(gè)此影片剪輯的實(shí)例)。
2、 現(xiàn)在開始編寫腳本,選中這個(gè)MC,按F9打開動(dòng)作面板,按照?qǐng)D01顯示選擇onClipEvent,之后在顯示的事件中選擇enterFrame,然后在里面編寫腳本如下:
this._x+=5
圖01
這個(gè)腳本編寫之后應(yīng)該是:
onClipEvent (enterFrame) {// enterFrame的意思四以影片幀頻不斷地觸發(fā)此動(dòng)作
this._x += 5; //this代表這個(gè)影片剪輯自身。_x表示影片剪輯的X軸坐標(biāo)。
}
圖02
呵呵,按下你的ctrl+回車測(cè)試一下吧,一個(gè)簡(jiǎn)單的移動(dòng)動(dòng)畫就搞定了。
從這個(gè)例子咱們不難看出,如果把AS寫在影片剪輯本身上,那么它是有自己的書寫格式的。正確的書寫格式就是:
onClipEvent (事件) {
//需要執(zhí)行的腳本程序
}
這個(gè)可以看成是公式,你記住就行了,是寫在影片剪輯身上的。括號(hào)里的“事件”其實(shí)是個(gè)觸發(fā)器,當(dāng)事件發(fā)生時(shí),執(zhí)行該事件后面花括號(hào)中的語句。,具體有哪些事件,我把它們都列出來。
- load 影片剪輯一旦被實(shí)例化并出現(xiàn)在時(shí)間軸中時(shí),即啟動(dòng)此動(dòng)作。
- unload 在從時(shí)間軸中刪除影片剪輯之后,此動(dòng)作在第一幀中啟動(dòng)。處理與 Unload 影片剪輯事件關(guān)聯(lián)的動(dòng)作之前,不向受影響的幀附加任何動(dòng)作。
- enterFrame 以影片幀頻不斷地觸發(fā)此動(dòng)作。
- mouseMove 每次移動(dòng)鼠標(biāo)時(shí)啟動(dòng)此動(dòng)作。_xmouse 和 _ymouse 屬性用于確定當(dāng)前鼠標(biāo)位置。
- mouseDown 當(dāng)按下鼠標(biāo)左鍵時(shí)啟動(dòng)此動(dòng)作。
- mouseUp 當(dāng)釋放鼠標(biāo)左鍵時(shí)啟動(dòng)此動(dòng)作。
- keyDown 當(dāng)按下某個(gè)鍵時(shí)啟動(dòng)此動(dòng)作。使用 Key.getCode 方法獲取最近按下的鍵的有關(guān)信息。
- keyUp 當(dāng)釋放某個(gè)鍵時(shí)啟動(dòng)此動(dòng)作。使用 Key.getCode 方法獲取最近按下的鍵的有關(guān)信息。
- data 當(dāng)在 loadVariables 或 loadMovie 動(dòng)作中接收數(shù)據(jù)時(shí)啟動(dòng)此動(dòng)作。當(dāng)與loadVariables 動(dòng)作一起指定時(shí),data 事件只發(fā)生一次,即加載最后一個(gè)變量時(shí)。當(dāng)與loadMovie 動(dòng)作一起指定時(shí),獲取數(shù)據(jù)的每一部分時(shí),data 事件都重復(fù)發(fā)生。
了解了事件之后,你可以自己試著修改一下腳本,如果讓你們點(diǎn)一下鼠標(biāo),舞臺(tái)上的圓就移動(dòng)一下,該怎么做呢?
關(guān)于把AS寫在影片剪輯本身的例子先講到這,下面來看看如果把AS寫在時(shí)間軸上面的話,應(yīng)該怎么寫。
首先你把剛才的腳本去掉。然后需要為這個(gè)影片剪輯實(shí)例起一個(gè)名字,比如起名為mc
在選中時(shí)間軸的第一楨,打開動(dòng)作面板,輸入以下腳本:
mc.onenterframe = function() {
this._x += 5; //你也可以把這句改為mc._x+=5 自己想一下為什么。
};
顯而易見,在時(shí)間軸上的寫法就應(yīng)該套用以下公式:
實(shí)例名.事件名稱=function(){
//腳本程序
}
需要注意的是,這種寫法的事件名稱不要忘了在前面加一個(gè)on,比如,事件如果是enterframe的話,你就應(yīng)該寫成onenterframe
下面簡(jiǎn)單說一下影片剪輯的屬性。比如,影片剪輯有自己的X、Y軸坐標(biāo),有自己的透明度(_alpha),這些都是它的屬性。
那么如何使用這些屬性呢?你可以使用“點(diǎn)”語法來對(duì)屬性進(jìn)行設(shè)置。
把上面的腳本修改一下。
mc.onenterframe = function() {
mc._x += 5;
mc._alpha = random(100);
};
這里我加了一句this._alpha = random(100),它是設(shè)置影片剪輯的透明度的,使用的語句就是_alpha。后面的random()函數(shù)是隨機(jī)選取一個(gè)100以內(nèi)的數(shù)字作為它的透明度。從這個(gè)句子可以看出,“點(diǎn)”語法使用方法就是:實(shí)例名.屬性(mc._alpha),你甚至可以簡(jiǎn)單理解為“點(diǎn)”就是“的”,那么this._alpha這句你就可以理解為:影片剪輯mc的透明度
上面的腳本mc._alpha = random(100)也可以改為_root. mc._alpha = random(100)
那么,你就可以理解為:舞臺(tái)上的影片剪輯mc的透明度是隨機(jī)選擇100內(nèi)的值。
關(guān)于影片剪輯的AS基本編寫規(guī)則就說到這里,以后在具體的例子當(dāng)中相信會(huì)更深刻的理解。 :)