Flash 動作腳本之:資料速查(16)_Flash教程
推薦:Flash 動作腳本之:資料速查(15)使用ActionScript編寫腳本二、腳本的規劃和調試當你為整個動畫編寫腳本時,腳本的數量和種類可能很大。決定使用哪些動作,怎樣有效地構造腳本,腳本應該放在
解剖一個腳本范例解剖一個腳本范例
為了讓大家對動作腳本有個大概的熟悉,本講對一個腳本進行了剖析。
在下面這個動畫范例中,當用戶把小蟲拖到捕殺器上時,小蟲變黑并掉下去,捕殺器閃動。此動畫的長度是一幀,包含兩個對象:小蟲電影剪輯實例和捕殺器電影剪輯實例。每個電影剪輯也包含一幀。
本動畫中僅有一個腳本,被附加給小蟲實例。在Object Actions(對象動作)面板中的情況如下所示:
兩個對象都是電影剪輯,這樣你才能在實例面板中賦給它們實例名,并用動作腳本處理他們。小蟲的實例名是bug,捕殺器的實例名是zapper。因為腳本是附加給bug的,因此,在腳本中bug可以用this來引用。要害字this是指調用腳本的對象。
在這個腳本中,有兩個onClipEvent事件處理程序和兩個不同的事件:load和enterFrame。 onClipEvent(load) 語句中的動作在動畫載入時僅執行一次。onClipEvent(enterFrame)語句中的動作每當播放頭進入一幀時都執行。即使是在單幀動畫中,播放頭仍然重復進入那一幀,腳本也就被重復執行。下面的動作發生在每個onClipEvent事件處理程序中:
onClipEvent(load) :一個startDrag動作使小蟲電影剪輯可以拖放。在本事件處理程序中,使用new操作符和Color(顏色)構造函數創建了一個 Color(顏色)對象的實例,并被賦給變量zap:
onClipEvent (load) {
startDrag (this, true);
zap = new Color(this);
}
onClipEvent(enterFrame) :一個條件if語句執行hitTest動作,以檢查小蟲實例(this)是否碰到捕殺器實例(_root.zapper)。 有兩種可能的計算結果,true(真)或false(假):
onClipEvent (enterFrame) {
if (this.hitTest(_root.zapper)) {
zap.setRGB(0);
setProperty (_target, _y, _y 50);
setProperty (_root.zapper, _alpha, 50);
stopDrag ();
} else {
setProperty (_root.zapper, _alpha, 100);
}
}
假如hitTest動作返回true,load事件創建的zap對象被用來把小蟲的顏色設置為黑色。小蟲的y屬性(_y)被設置為本身加上50,使小蟲往下掉。捕殺器的透明度(_alpha)被設置為50,使它變暗。stopDrag動作停止小蟲被拖動。
假如hitTest動作返回false,else語句下面的動作被執行,捕殺器的_alpha值被設置為100。它的_alpha值從初始狀態(100)變為捕殺到小蟲狀態(50),然后又恢復到初始狀態,這就使得捕殺器象閃爍一樣。在小蟲被捕殺和掉下來之后,hitTest動作返回false,else語句被執行。
分享:Flash 動作腳本之:資料速查(14)創建智能剪輯(2)三、設置剪輯參數你可以在智能剪輯中編寫動作腳本,用已定義的參數來改變智能剪輯的行為。舉一個簡單的例子,假如你用Frame定義了一個剪輯參
- 相關鏈接:
- 教程說明:
Flash教程-Flash 動作腳本之:資料速查(16)
。