原文轉自,LayaAir官網技術文件 - LayaAir引擎簡介
LayaAir功能介紹
LayaAir支持ActionScript3、TypeScript、JavaScript三種語言。

LayaAir引擎庫功能
LayaAir引擎支持精靈、矢量圖、文本、富文本、位圖字體、動畫、骨骼、音頻與視頻、濾鏡、事件、加載、緩動、時間、網絡、UI系統、物理系統、TiledMap、prtocol等API ;支持開發2D、3D、VR的產品研發,支持Canvas與WebGL模式,支持同時發佈為HTML5、Flash、APP(IOS、安卓)多種版本。
其中:
laya.core是核心包,封裝了顯示對象渲染,事件,時間管理,時間軸動畫,緩動,消息交互,socket,本地存儲,鼠標觸摸,聲音,加載,顏色濾鏡,位圖字體等。
laya.webgl 包封裝了webgl渲染管線,如果使用webgl渲染,可以在初始化時調用Laya.init(1000,800,laya.webgl.WebGL);
laya.ani.js是動畫模塊,包含了swf動畫,骨骼動畫等。
laya.filter.js包含更多webgl濾鏡,比如外發光,陰影,模糊以及更多。
laya.html.js封裝了html動態排版功能。
laya.ui.js提供了製作UI的各種組件實現。
laya.tilemap.js提供tileMap解析支持。
LayaAir IDE功能
LayaAir IDE主要包括代碼開發編輯器、可視化編輯器、第三方工具鏈支持工具等。
其中主要功能包括:
- 代碼開發
- UI編輯器
- 粒子編輯器
- 時間軸動畫
- 場景編輯器
- 3D支持
- 腳本擴展
- 預設
- APP打包
- Flash發布
- JS混淆與壓縮
- 第三方工具鏈轉換工具(SWF、Unity3D、3Dmax、TiledMap、Spine、龍骨……)
LayaAir引擎特性簡介
LayaAir是Layabox旗下的第二代HTML5開源引擎。是全球唯一支持ActionScript3、JavaScript、TypeScript三種開發語言,並且一次開發同時發布Native APP與HTML5的遊戲引擎,也是全球首款基於HTML5協議的全能型開源引擎。除支持2D\3D\VR\AR的遊戲開發外,引擎還可以用於應用軟件、廣告、營銷、教育等眾多領域。
LayaAir引擎是一套全新設計的精簡API的遊戲引擎,具有極致的性能、輕量易用、支持多語言開發、API功能齊全、工具鏈完善高效、開源免費、支持多版本發布等特點。
極致性能
LayaAir引擎同時支持WebGL與Canvas渲染。優先使用webgl渲染(當WebGL不可用時,自動無縫轉換為canvas渲染)。引擎設計過程中以性能為優先原則進行極致優化,在谷歌等優秀的瀏覽器環境下運行性能媲美Unity3D等APP原生引擎。LayaAir擁有多款APP級的已上線2D遊戲精品和3D遊戲精品,證明LayaAir引擎的流暢性能。
輕量易用
LayaAir引擎API設計上追求精簡,簡單易用,上手容易,引擎本身非常注意自身大小,是目前同等功能最小的HTML5引擎。
支持多語言開發
LayaAir引擎同時支持ActionScript3、TypeScript、JavaScript三種語言開發HTML使用任意一種自己喜歡的語言開發即可。
功能齊全
LayaAir引擎同時支持2D,3D,VR ,AR,時間軸動畫,緩動、UI系統、粒子動畫、骨骼動畫、物理系統等。
工具鏈完善高效
LayaAir引擎除提供可視化的集成式開發環境LayaAirIDE編輯器外,還支持大量主流的第三方工具鏈,如:Unity3D、TiledMap、Spine、DragonBones等。建立了完善的工具鏈生態,可視化的編輯器,清晰的工作流,讓美術,策劃,程序緊密配合,大幅提升開發效率。
開源免費
LayaAir引擎遵循MIT開源協議,源碼免費使用,包括商用。並將引擎源碼全部開源並託管到github(https://github.com/layabox/layaair)。
強力的技術支持
LayaAir引擎提供了強力的技術支持,包括官網文檔、微信公眾號、QQ技術交流群、官網問答社區、在線視頻教育的課堂等。
LayaAir引擎開發者中心:http://ldc.layabox.com/
LayaAir引擎微信公眾號:Layabox
LayaAir引擎問答社區:http://ask.layabox.com/
LayaAir引擎視頻教學課堂:http://layabox.ke.qq.com/
LayaAir開發者綜合交流QQ群:330223972 (已滿)
LayaAir引擎2D交流QQ群:135887157
LayaAir引擎3D&VR交流QQ群:343966316
LayaAir引擎快速上手指南【新手必讀】
對於很多新手開發者而言最大的問題,就是學習思路。面對一項新的技術,如果不知道如何下手,這才是最頭痛的。本文提供一些自學的思路,拋磚引玉以作借鑒,自學能力強的開發者可跳過本文,直接查看官網引擎示例與API。
第一步:選擇開發語言
由於LayaAir引擎支持ActionScript3(AS3)、TypeScript(TS)、JavaScript(JS)三種語言開發,到底用哪種語言更好呢?常常困惑著剛接觸引擎的新手們。其實開發者更熟悉哪種語言就採用哪種語言開發即可,引擎的API與性能都是完全一樣的。
需要大家注意的是JS語言雖然上手更為容易,但是作為一弱類型語言,開發與調試的難度,以及大型項目的管理與多人協作等方面,都不如TS與AS3這種強類型語言。當前來看,AS3語言與TS相比,AS3在當前更友好一些,因為LayaAir引擎也是AS3語言開發,另外如果原本就是AS3程序員,在AS3原有的環境下開發也是非常不錯的選擇。而TS語言在未來的前景方面,由於對JS新特性的支持比較友好,又擁有強類型語言的特性,也是一種不錯的開發語言選擇。
最後,大家不要對語言的選擇有什麼畏懼,因為只需要學一下語言的基本規則即可,語言的學習切換其實是很快的。在遊戲開發的過程中,引擎提供的API能完全滿足開發遊戲的需要,遊戲的開發經驗才是遊戲研發團隊最看重的。所以,各位開發者可根據項目需要,去選擇LayaAir引擎支持的任何一種語言開發。
第二步:準備好開發環境
如果是TS和JS開發者,僅下載LayaAir IDE即可,因為LayaAir IDE集成了代碼編寫調試、UI編輯、動畫編輯、粒子編輯等可視化遊戲開發環境。如果是AS3開發者,在代碼編寫的工具方面,推薦採用更為成熟的FlashDevelop或者是Flash Builder。這兩種工具是主流的AS3代碼編輯器,從語法糾錯等方面Flash Builder更加強大,支持MAC蘋果系統,但是工具安裝包非常大,且屬於收費軟件。FlashDevelop比較輕量,僅有幾十兆,是免費軟件,不過蘋果系統下需要藉助付費軟件CrossOver才可以運行。
由於採用TS或AS3語言開發都需要配置編譯器環境,在發布產品的時候把項目代碼編譯為JS代碼運行,所以這兩種語言的開發者,還需要進行一些額外的準備工作。
第三步:寫第1個LayaAir引擎程序“Hello Layabox”;
學程序寫“Hello world”已成為國際慣例。LayaAir引擎學習也不例外。當看到第一個LayaAir引擎的程序“Hello Layabox”顯示出來的時候,不僅會帶來入門成功的成就感,同時也說明了你的開發環境配置是沒有問題的。
第四步:體驗全部的LayaAir示例
完成Hello Layabox的文本顯示後,我們需要去了解其它的API,但是並不建議新手直接去看API。為什麼呢?光靠看API文檔去腦補使用方法,對新開發者而言會感覺內容多且枯燥。所以,在這裡推薦大家先去官網開發者中心認真體驗並研究LayaAir引擎的全部在線示例。在體驗引擎示例的過程中,再針對示例中出現的API進行深入的了解,打開API文檔進行學習。即便開發者時間有限,暫時不能全部深入研究每一個示例中的API,那也要先把示例看一遍,至少要做到知道有哪些引擎示例,都可以實現哪些功能。因為官網提供的引擎在線示例包含了遊戲開發常用的引擎API。所以當體驗完成全部示例後,會對LayaAir引擎的API有一個基本的認知,在開發遊戲的時候就可以做到心中有數了。
額外提示一下,在引擎示例的代碼區,JavaScript版本提供在線編輯與執行功能。可以直接在瀏覽器中學習與體驗,其它開發語言或者是想在本地開發環境中體驗引擎示例的,也可以前往GitHub上去下載示例源碼,
第五步:學習LayaAir引擎的工具鏈
當體驗和研究完引擎示例和API後後,其實已經可以用代碼工具直接開發遊戲的功能了。但是對於復雜一些的遊戲,工欲善其事必先利其器,學習掌握一些可視化開發工具,是大幅提升開發效率的必經之路。LayaAirIDE作為可視化集成開發環境,除了代碼編寫還包括了UI編輯、動畫編輯、粒子編輯、場景編輯等等功能,是首先給推薦大家的。
其次是第三方對LayaAir引擎的支持,Layabox官網已羅列了一些主流的工具對LayaAir引擎的支持,這些第三方工具與LayaAirIDE形成了強大的工具鏈,讓開發者在使用LayaAir引擎的時候無需對工具鏈產生擔憂,可高效的開發各種類型的遊戲。這裡就不逐一介紹了,重點推薦幾款第三方工具,第一是用於骨骼動畫的編輯器Spine、第二是地圖編輯器TiledMap、第三是3D編輯器Unity3D。
第六步:學習項目調試
項目的調試本身並不是很難的要點,但是一些剛接觸H5開發的開發者常會就項目調試提出各種問題,在LayaAir技術文檔的”2D進階篇“中會針對開發環境與發布環境下的調試方式,進行介紹說明。
第七步:學習並熟記性能優化原則
在當前,移動設備的硬件性能遠不及PC硬件,尤其是中低端機型的市場佔有率並不低。那麼引擎的性能優化將成為很重要的選擇因素。那是不是選擇了性能高的引擎,項目就一定不會出現性能問題呢?並不是這樣。因為引擎的優化僅僅是提供了一個項目性能的天花板。
如果引擎的性能不行,項目再如何優化,也無法突破這個天花板,導致項目開發完了。只能跑在性能特別好的機型上,那時候再去換引擎或者去改引擎,成本和代價就非常的高了。但是,引擎性能明明可以達到APP級的流暢度,如果在項目編寫的過程中並不進行優化或錯誤的使用引擎。那仍然可能出現卡頓問題。因此大家學好引擎的基礎之後,一定要認真閱讀性能優化的文章,把性能優化的方法熟記於心,在項目編寫的過程中熟練的運用。
第八步:用小遊戲或項目實戰驗證學習成果
按以上步驟學習完全部的文檔後,對於有遊戲項目研發經驗的開發者,已經可以用項目實戰來驗證學習的成果了。對於近期還沒有遊戲立項,或者是沒有遊戲研發經驗的開發者,建議先用小遊戲實戰的方式,完整體驗開發流程來驗證學習成果。
關於小遊戲的教程文檔在”實戰開發篇”內,騰訊課堂教學內也有小遊戲實戰開發的視頻教學。
第九步:學習分包與分模塊開發
在與開發者接觸的時候,會碰到反饋大型項目編譯速度變慢的問題。因為涉及大量的代碼與代碼文件,帶來編譯變慢是必然的,這不僅是H5大型項目面臨的問題,是任何一種大型項目研發都會面臨的問題。對於有有大型遊戲項目經驗的開發者大多數會採用分模塊協同開發的方式進行。而分模塊開發後如何整合加載,由於LayaAir引擎支持分包加載。
第十步:如何獲得官方的技術答疑與指導
在開發實踐的過程中,對引擎不是非常熟悉的開發者難免還會遇到各種引擎使用問題,此時如何能盡快獲得解答呢?首先要注意的是,不要直接在QQ群中提問,因為QQ群中留言信息較多時,問題很容易被淹沒,並且會造成類似的問題反复解答。所以,我們建議開發者在問答社區(ask.layabox.com)中進行搜索,是否有類似問題已經提出或被解決。如果沒有類似問題,可以在社區中創建提問並詳細描述問題,把代碼、截圖、問題的現像等信息提供的越細緻越好,盡可能減少溝通成本。官方技術支持人員會優先處理社區中的問題,並保障每一個問題會得到解答,當然也可以在提問後,把社區中的提問鏈接粘貼到開發者群裡並@管理員。
對於已回复,但需要持續跟進的問題,由於社區問題較多時,容易遺漏。這時,需要開發者主動跟進,在社區中的原問題中再次跟帖,或將社區中的提問鏈接粘貼到開發者群裡並@管理員。
在學習過程中,如果有高速網絡條件的,也建議大家查看視頻教程,全程跟隨式操作,會更加直觀和易理解。視頻教程分為免費觀看和付費教學兩種。免費教程可以直接在優酷視頻網站搜索LayaAir關鍵字查看相關視頻。付費教學可以前往騰訊課堂(layabox.ke.qq.com)查看,相對於優酷等視頻網站的免費視頻,騰訊課堂中沒有片頭廣告,教學目錄結構清晰,還有專享的學員QQ群,直接在QQ群中享受超值的課程問題即時答疑,基礎入門課程更是在僅為幾元的超低收費門檻,適合開發者快速入門學習和進階。