Flash遊戲開發技術分析(下)
7、開源Flash開發工具
(1) MTASC
MTASC全稱“Motion-Twin ActionScript 2 Compiler”,是第一個開源的 ActionScript 編譯器。可使用它直接生成SWF位元組碼,無需任何Flash工具。
(2) ASDT
ASDT:是Eclipse插件,也是Actionscript開發工具。它是用Java開發的,提供一個具有文法着色顯示、代碼完成、代碼折疊、文法檢查、代碼導航、調用MTASC進行編譯、代碼模闆、内容輔助等功能的編輯器和其它一些用于建立ActionScript2.0和編譯SWF檔案所需要的所有輔助工具。建構器和日記功能可以用來調試和部署完全采用ActionScript2.0編寫的項目。
(3) FlashDevelop
FlashDevelop是Windows平台上的可替代ASDT+Eclipse的開發環境。它支援ActionScript 2和ActionScript 3的開發,提供了與ASDT相同的特征以及版本控制功能。
(4) haXe開發工具
haXe是一種面向Web技術的進階程式設計語言,它可以運作在Flash Player,也可運作到JavaScript的Runtime或是Neko Runtime環境。
也就是說,其它很多語言隻能運作在它們自己的平台,比如Java運作在JVM,C#運作在.Net,ActionsScript運作在Flash Player,而haXe則是一個多平台語言。你可以使用haXe開發多個平台的程式:
· 可以把一個haXe程式編譯成單個的.js檔案。
· 可以把一個haXe程式編譯成一個.swf檔案。
· 可以把一個haXe程式編譯成NekoVM的二進制代碼。
注:Neko是一個本地系統Runtime環境(類似于JRE),它允許haXe程式在本地運作。
(5) swfmill
Swfmill是一個使用SWFML實作的從XML到swf或者從swf到XML轉換的指令行工具。Swfmill也是一個具有XSLT能力的生成swf的工具。
SWFML是一個在SWF檔案格式制定後制定的XML方言。
(6) SWFObject
SWFObject是一套JavaScript庫,是嵌入Flash内容到HTML頁面的最佳實踐技術。
SWFObject可以在HTML中插入Adobe Flash媒體資源子產品(*.swf檔案),這些子產品是互相獨立的、JavaScript子產品。子產品中的JavaScript腳本能夠自動檢測PC、 Mac機器上各種浏覽器對Flash插件的支援情況。它使得插入的Flash媒體資源盡可能簡捷、安全。而且它是符合搜尋引擎優化原則的。此外,它能夠避免HTML、XHTML中出現Object、Embed等非标準标簽,進而使頁面更加符合标準。
(7) Sprouts
Sprouts是一個開源項目,目前是使建立和維護Flash開發環境變得更容易。Sprouts能夠建立和管理ActionScript 2、ActionScript 3以及基于Flex的項目的配置。
8、開源Libraries和Toolkits
(1) Fuse Kit
Fuse Kit,常常也叫Fuse,是Moses Gunesch開發的一個庫,它結合了漸變引擎和定序器,提供了強大的基于ActionScript 2代碼的動畫解決方案。使用Fuse可以輕松地建立動畫,無需回調函數、定時器,或Tween類的擴充調用。
Fuse Kit其實就是一堆AS檔案,可以幫助你利用ActionScript來實作逼真的緩動效果,可以用來動态地添加濾鏡效果,還可以生成一些基于時間的事件。
(2) Papervision3D
Papervision3D是一個開源、基于MIT許可證的、為Flash開發且使用ActionScript 3.0語言編寫的3D引擎。
Papervision3D的目标在于實作更加炫麗美觀、功能強大的Flash 3D Web應用程式。自動ActionScript 3釋出後,ActionScript的效率得到了大幅度提升,基于ActionScript 3的Papervision3D無論是在效率、功能上也有很大提高。随着現在 Web 2.0、Web-Game及休閑類競技網絡遊戲的發展,相信Papervision3D的應用将會越來越廣泛。
(3) Screenweaver HX
Screenweaver用于建立交叉平台的RIDAs(Rich Interfaced Desktop Applications)的軟體。它分離了應用程式邏輯和應用程式接口的聯系。Screenweaver軟體在Neko和Flash這兩個 Runtime環境之間建立了一個橋。
Neko VM:運作haXe應用程式;
Flash Player:運作Flash應用。
9、開源Flash伺服器端的技術
(1) AMFPHP
AMF:Action Message Format,是Flash平台的一種二進制資料交換格式。
AMFPHP是AMF格式在伺服器端的實作之一,AMFPHP提供了遠端過程調用(RPC)功能,允許Flash應用調用伺服器端的功能。
另外,AMFPHP支援AMF格式,他能通過JSON和XML-RPC進行通信。
AMFPHP是基于PHP語言的RPC工具,它可以使PHP與下述技術無縫通信:
* Flash 和 Flex Remoting
* JavaScript JSON 和 Ajax JSON
* XML 和XML-RPC
AMFPHP廣泛用于各種便宜的Web主機環境。它無需任何特定的PHP擴充。
(2) Red5
Red5是一個采用Java開發的開源Flash流媒體伺服器,與AMFPHP類似,它提供了AMF之上的RPC功能。Red5提供了流媒體和伺服器端共享對象支援。視訊和音頻媒體可以串流到用戶端,實作了Flash Media Server(FMS)的很多功能。視訊和音頻還可以用用戶端的webcam和麥克風錄制,并發送會伺服器進行更多的處理或分發。
Red5的主要功能:
· 把音頻(MP3)和視訊(FLV)轉換成播放流;
· 錄制用戶端播放流(隻支援FLV);
· 共享對象;現場直播流釋出;
· 遠端調用。
Red5使用RSTP作為流媒體傳輸協定,在其自帶的一些示例中示範了線上錄制,flash流媒體播放,線上聊天,視訊會議等一些基本功能。
(3) SWX
SWX是由Aral Balkan開發的伺服器端的新技術。它使用SWF格式進行資料交換,還提供了比其它傳輸機制更好的幾個優勢:
· 支援Flash Lite開發
· 原生支援Flash Player,播放器處理時間最短
· 非常易于使用
SWX提供了RPC機制,允許Flash直接調用伺服器内容。與AMFPHP或Red5不同,SWX提供了伺服器端的多種實作:
· SWX PHP
· SWX Ruby
· SWX Java
10、Adobe提供的開源工具
(1) Flex 3 SDK
支援ActionScript 3開發,使用Flex架構,目标是Flash Player 9以上。
(2) BlazeDS
BlazeDS是基于Java的伺服器解決方案,提供了Flash平台的實時通信服務。它由三個主要元件組成:
· 通路伺服器端的方法和對象的遠端服務
· 支援釋出/訂閱消息的消息服務
· 允許Flash應用通路Flash安全沙盒禁止的資料類型的代理服務
(3) ActionScript 3庫
Adobe提供了多個ActionScript 3庫,如下:
· as3ebaylib:通過ActionScript通路eBay的XML API。
· as3corelib:ActionScript開發的類和工具集。
· as3flexunitlib:Flex開發的單元測試架構。
· as3odeolib:從Odeo服務中檢索podcasts的ActionScript庫。
· as3youtubelib:通路YouTube data API的庫。
· as3syndicationlib:提供了處理RSS和Atom訂閱的單個接口。
· as3flickrlib:使用Flickr API的庫。
· as3mapprlib:提供了對Mappr API的通路。
· Cairngorm:開發基于Flex的RIA應用的架構。
11、其它的工具及庫
· AlivePDF:生成PDF的ActionScript庫。
· ARP:輕量級的開發架構。
· AsWing:一個GUI架構,帶ActionScript元件集。
· Degrafa:一個Flex庫,用于在MXML中建立繪畫API。
· FlexLib:一套基于Flex的元件集,帶火的動畫效果。
· GoASAP:一個輕量級架構,建立ActionScript 3動畫的工具。
· ObjectHandles:一個Flex庫,輔助建立界面,允許使用者在螢幕上移動對象和調整對象的大小。
· Pulse Particle System:是一款ActionScript 3.0粒子系統. 可以使用它自定義多種酷炫的粒子效果。
· Sandy:AstionScript 2.0和3.0的3D顯示引擎。
· Prana:IoC容器的應用架構。
· Tweener:ActionScript 3的漸變引擎,用于建立簡單和複雜的動畫。
· http://spicefactory.org上還有數個項目。