陳雨婕
(甘肅工業職業技術學院,天水 741025)
基于ActionScript 3.0的Flash游戲開發探討
陳雨婕
(甘肅工業職業技術學院,天水 741025)
隨著Flash軟件的發展和強大的ActionScript 3.0面向對象語言的推出,大大地提高游戲開發的效率。針對目前Flash游戲開發存在的問題,設計基于ActionScript 3.0的游戲開發流程,并對游戲開發中的關鍵問題即ActionScript 3.0代碼設計和游戲封裝進行詳細的設計,使得開發過程清晰快捷,代碼易于維護便于擴展,從而提高游戲的開發效率。
ActionScript 3.0;Flash;游戲開發
Flash游戲又稱Flash小游戲,由于它體積小、傳播快、畫面美觀、操作方便等優點,已逐漸被廣大網友所喜愛。近年來,Flash小游戲已成為大家休閑娛樂的方式之一,同時它也吸引了大量游戲開發者投身其中。Flash被稱為是“最靈活的前臺”,同時它也是最小的前臺,其憑借靈活的界面設計和強大的ActionScript 3.0(簡稱AS3)腳本語言,使得交互式網頁游戲的開發變得簡便而快捷。但是目前在Flash游戲的開發中仍然存在許多問題,尤其是對于初學者,如果在開發中沒有一個清晰的流程,不僅會使游戲的開發變得復雜還會使代碼的維護變得困難,因而設計一個合理的開發流程在整個游戲的開發中顯得尤為重要。
Flash游戲開發的核心問題是用AS3代碼去控制Flash游戲中的交互對象,因而AS3代碼的設計和編寫是整個開發中的難點,筆者認為在開發中應做好頂層設計,由小到大逐個完成模塊的基本邏輯功能,由簡單到復雜逐步完善作品的擴展功能和特殊效果,一般來講會遵循以下流程:
素材的準備→主類文件的設計→文檔的鏈接→邏輯功能的測試→封裝游戲→添加游戲擴展功能→添加游戲效果→修改游戲→發布完成。
(1)素材的準備。指游戲中需要的圖片、聲音、可交互的影片剪輯等,素材可以自己動手制作也可以通過網絡資源尋找。
(2)主類文件的設計。將用于控制游戲中交互元素的AS3代碼單獨放在一個類文件中,該文件的代碼可實現交互元素在場景中的放置和整個游戲的邏輯功能。
(3)文檔的鏈接。是指將Flash文檔與類文件通過Flash屬性窗口進行鏈接。
(4)邏輯功能的測試。是指文檔鏈接后,在Flash文件中對AS3代碼的測試,測試時應分別對功能模塊的各種可能性進行逐一測試,不斷地修改語法錯誤和邏輯錯誤,直到實現整個游戲的邏輯功能。最后要檢測游戲結束,這也是完成游戲的出口。
(5)封裝游戲。當游戲的整個邏輯功能完成后,就有了一個完整的Flash游戲影片,這時通過封裝游戲來創建游戲的開始、載入和結束界面。
(6)添加游戲擴展功能。在完成游戲的基本功能之后,為了使其功能盡可能的全面,往往會用AS3代碼添加游戲的擴展功能,例如在游戲中添加時間、得分、交互對象移動的步數等。
(7)添加游戲效果。為了使游戲看起來更炫,往往會添加一些動畫的觸摸效果、響應聲音、時間限制等,這樣不會改變游戲的基本配置,但會讓游戲對玩家更有吸引力。
(8)修改游戲。是指在完成整個游戲之前對游戲的改進,例如光標的設置、幀頻的修改、游戲元素的改進,代碼中參數的設置等。
(9)發布完成。最后通過Flash的“發布設置”和“發布”命令對游戲進行發布完成。
以上就是Flash游戲的開發流程與規劃方法,如果在開發游戲的過程中能夠遵守這樣的程序和步驟,可以使得開發過程清晰而快捷,不過上面的步驟也不是一成不變的,可以根據實際情況來調整。
2.1 AS3代碼的設計
在游戲開發中,最為重要的就是AS3程序代碼的設計。AS3代碼可以寫在單獨的類文件中,也可以寫在時間軸上。一般用于控制舞臺上的游戲元素和影片剪輯元件動畫的代碼往往放在單獨的類文件中,而用于控制界面之間跳轉的代碼會放在主時間的幀上。在游戲設計中除了有為影片剪輯寫的元件類文件之外,還必須要有一個主類文件,它用于和Flash文檔連接,能夠完成游戲的所有邏輯功能。類文檔構架設計如下:

這里需要注意以下幾點:
(1)類文件名、類名與構造函數名應同名,當程序運行時會首先執行構造函數中的代碼,構造函數一般會進行變量的初始化和在舞臺放置游戲元素,并添加用于交互對象的偵聽。當偵聽事件響應后會調用相應的事件處理函數。
(2)在事件處理函數中會實現相應的游戲邏輯功能。
(3)在代碼的編寫中要盡可能的模塊化,用函數完成相應功能,以提高代碼的可重用性。
(4)代碼應編寫、測試同步進行。完成一個功能測試一個功能,一個功能完成后再編寫下一個功能,而不是所有的代碼寫完后才進行測試,這樣就能夠避免當程序代碼很長時,一旦出現邏輯錯誤卻搞不清楚錯誤出現在什么位置,從而延長了開發的時間。
(5)在代碼的測試中,可以在相應的位置中使用trace語句來顯示結果,從而判斷邏輯結果是否正確,例如當滿足游戲結束的條件時,可用trace(“Game Over”);來判斷游戲結束邏輯功能是否正確。
2.2 游戲的封裝
當主類文件MyGame.as完成游戲所有的邏輯功能后,就有了一個完整的游戲影片,當影片運行時,游戲初始化并啟動,但這并不符合游戲的設計要求。通常Flash游戲至少需要三個界面,即游戲的介紹界面、游戲的載入界面和游戲的結束界面,這時就需要封裝游戲。我們可以在主時間軸上用三幀來分別設置這三個界面。
(1)第一幀為游戲的介紹界面。在這一幀上除了設計好介紹界面的場景之外,還應放置一個“開始游戲”的按扭play_btn,單擊該按扭可以將界面跳轉到第二幀即游戲界面。設置一個專門的代碼圖層,在該圖層的第一幀上寫如下代碼:

(2)第二幀為游戲界面。在這一幀上需要解決的問題是如何鏈接主類文件MyGame.as文件,在這里可使用兩種方法來實現。
方法一:首先取消類文件MyGame.as與Flash文檔之間的鏈接,然后在第二幀最左上角即坐標原點放置一個空的影片剪輯,通過設置該影片剪輯的屬性,使其鏈接到類文件MyGame.as上。
方法二:保持類文件MyGame.as與Flash文檔之間的鏈接,取消主類文件中的構造函數即將構造函數MyGame更名,如startGame(),在代碼層的第二幀即游戲界面中調用該函數,即在第二幀寫代碼:startGame();,這時主類文件中沒有了構造函數因而程序運行時不會自動運行startGame()函數,而是進入游戲介紹界面執行主時間軸上第一幀的代碼,當單擊“開始游戲”按扭跳轉到第二幀,在第二幀調用startGame()函數來啟動游戲,進入游戲界面。
無論使用哪種方法,都實現了Flash與Action-Script類文件的鏈接,也保證了代碼的獨立性,便于代碼的維護。
(3)第三幀是游戲結束界面。在類文件中如果滿足游戲結束條件,通過游戲的出口跳轉到這一幀,該幀會提示游戲結束,顯示游戲成績、時間等信息,另外還要有一個“重玩游戲”的按扭replay_btn,單擊該按扭會重新跳轉到第二幀進行游戲。在代碼層的第三幀寫如下代碼:

合理的開發流程和框架設計不僅能使開發過程清晰簡單,而且保證了AS3代碼的獨立性,使得代碼易于維護便于擴展,從而提高了游戲的開發效率。
[1] (美)Gary Rosenzweig.ActionScript 3.0游戲編程(第2版)[M].胡蓉,張東寧,朱栗華譯.北京:人民郵電出版社,2013
[2] 孫穎.Flash Action 3殿堂之路[M].北京:電子工業出版社,2007
[3] 徐浙君,俞淑燕.基于ActionScript 3.0的游戲設計框架探索[J].計算機與現代化,2010(3):84~86
Research on the Flash Game Development Based on ActionScript 3.0
CHEN Yu-jie
(Gansu Industry Polytechnic College,Tianshui 741025)
With the development of Flash software and powerful object oriented language of ActionScript 3.0,greatly improves the efficiency of game development.Aims at the problems existing in the Flash game development,designs the process of game development based on Action-Script 3.0,and offers the detail design of the key problems which are ActionScript 3.0 code design and game package in game development,makes the development process fast and clear,the code is easy to maintain and expand,thereby increases the efficiency of the development of the game.
ActionScript 3.0;Flash;Game Development
1007-1423(2015)01-0016-03
10.3969/j.issn.1007-1423.2015.01.004
陳雨婕(1974-),女,四川成都人,副教授,碩士,研究方向為網絡安全、語言編程、動畫技術
2014-11-25
2014-12-05