範例:動畫作品集 (Flash Professional)
這個範例設計的目的,是要讓您有機會一睹 ActionScript 程式碼片段能如何拼湊成一個完整應用程式。「動畫作品集」這個範例會示範如何取用現有的線性動畫,並加入其他次要的互動式元素。例如,為客戶建立的動畫,可以整合為線上作品集。您在動畫中加入的互動式行為,會包含兩個可供觀賞者按下的按鈕:一個用來啟動動畫,另一個用來瀏覽至不同的 URL (如作品集選單或作者的首頁)。
建立這個作品項目的程序可以分成下列幾個主要部分:
準備 FLA 檔以便用來加入 ActionScript 和互動式元素。
建立和加入按鈕。
撰寫 ActionScript 程式碼。
測試應用程式.
準備加入互動性
若能在加入互動式元素至動畫中之前,先建立一些容納新增內容的位置,以設定 FLA 檔,相信會提供很大的幫助。這項工作包括:建立可在「舞台」上放置按鈕的實際空間。它也包括在 FLA 檔中建立可分別保存不同項目的「空間」
設定 FLA 以便加入互動式元素:
建立包含簡單動畫 (如單一移動補間動畫或形狀補間動畫) 的新 FLA 檔。如果您已經有一個內含您在專案中展示的動畫 FLA 檔案,請開啟這個檔案,然後儲存成新的名稱。
決定兩個按鈕要顯示在螢幕上的位置。其中一個按鈕會啟動動畫,另一個按鈕則會連結至作者作品集或首頁。如有必要,請在「舞台」上為這個新內容清除或增加一些空間。如果動畫的位置尚未完成,您可以在第一個影格上建立開頭畫面。在此情況下,您可能需要改變動畫的位置,讓動畫在「影格 2」或之後開始播放。
在「時間軸」中的其它圖層上方加入新圖層,並命名為 buttons。這個圖層就是您新增按鈕的地方。
在這個 buttons 圖層上方加入新圖層,並命名為 actions。這個圖層是您將 ActionScript 程式碼加入應用程式的地方。
建立並加入按鈕
接下來,您會實際建立按鈕並設定位置,形成互動式應用程式的中心。
建立按鈕並將它加入 FLA:
使用繪圖工具,在 buttons 圖層上建立第一個按鈕 (「播放」按鈕) 的視覺外觀。例如,繪製上面有文字的水平橢圓形。
使用「選取」工具選取這一個按鈕的所有圖像部分。
從主選單中選擇「修改 > 轉換成元件」。
在對話方塊中選擇「按鈕」做為元件類型,指定元件的名稱,然後按一下「確定」。
選取按鈕之後,在「屬性」檢測器中將按鈕的實體名稱指定為 playButton。
重複步驟 1 到 5,建立的按鈕會將觀賞者帶往作者首頁。將這個按鈕命名為 homeButton。
撰寫程式碼
這個應用程式的 ActionScript 程式碼可以分成三組功能,但全部都是輸入在同一個位置。程式碼做的三件事分別為:
一旦 SWF 檔載入 (當播放磁頭進入「影格 1」) 時,立即停止播放磁頭。
偵聽事件,以便在使用者按一下「播放」按鈕時開始播放 SWF 檔。
偵聽事件,以便在使用者按一下作者首頁按鈕時,讓瀏覽器進入適當的 URL。
建立程式碼,以便在播放磁頭進入「影格 1」時停止它:
選取 actions 圖層「影格 1」上的關鍵影格。
若要開啟「動作」面板,請從主選單中選擇「視窗 > 動作」。
在 Script 窗格中,輸入下列程式碼:
stop();
撰寫程式碼,以便在按一下「播放」按鈕時啟動動畫:
在上個步驟中輸入的程式碼結尾處,加入兩行空行。
在 Script 底部輸入下列程式碼:
function startMovie(event:MouseEvent):void
{
this.play();
}
這個程式碼會定義名為 startMovie() 的函數。當呼叫 startMovie() 時,就會讓主要時間軸開始播放。
在緊接上個步驟所加入程式碼之後的那一行,輸入下面這行程式碼:
playButton.addEventListener(MouseEvent.CLICK, startMovie);
這行程式碼會將 startMovie() 函數註冊為 playButton 之 click 事件的偵聽程式。換句話說,程式碼會設定成每當按一下 playButton 這個按鈕時,便呼叫 startMovie() 函數。
撰寫程式碼,以便在按一下首頁按鈕時,讓瀏覽器瀏覽至某個 URL:
在上個步驟中輸入的程式碼結尾處,加入兩行空行。
在 Script 底部輸入下列程式碼:
function gotoAuthorPage(event:MouseEvent):void
{
var targetURL:URLRequest = new URLRequest("http://example.com/");
navigateToURL(targetURL);
}
這個程式碼會定義名為 gotoAuthorPage() 的函數。這個函數會先建立一個 URLRequest 實體,代表 URL http://example.com/。然後它會將 URL 傳遞至 navigateToURL() 函數,讓使用者的瀏覽器開啟這個 URL。
在緊接上個步驟所加入程式碼之後的那一行,輸入下面這行程式碼:
homeButton.addEventListener(MouseEvent.CLICK, gotoAuthorPage);
這行程式碼會將 gotoAuthorPage() 函數註冊為 homeButton 之 click 事件的偵聽程式。換句話說,程式碼會設定成每當按一下 homeButton 這個按鈕時,便呼叫 gotoAuthorPage() 函數。
測試應用程式
應用程式現在具有完整功能了。讓我們來進行測試,確定一下情況。
測試應用程式:
從主選單中選擇「控制 > 測試影片」。Flash Professional 便會建立 SWF 檔,並在 Flash Player 視窗開啟它。
試著按一下這兩個按鈕,確定它們會依照您所預期的執行。
如果按鈕沒有作用,則需要檢查下列事項:
按鈕的實體名稱是否彼此不同?
addEventListener() 方法呼叫所用的名稱是否與按鈕的實體名稱相同?
addEventListener() 方法呼叫使用的事件名稱是否正確?
是否為每個函數指定了正確的參數 (兩個方法都需要一個資料類型為 MouseEvent 的參數。)
以上所有錯誤以及其他最常見的錯誤,都會引發錯誤訊息。當您選擇「測試影片」命令,或者您在測試專案時按一下按鈕,都會顯示錯誤訊息。請查看「編譯器錯誤」面板中的編譯器錯誤 (第一次選擇「測試影片」時發生的錯誤)。檢查「輸出」面板有無執行階段錯誤 (當內容播放時發生的錯誤;例如,按一下按鈕時)。