## 來自官方的優化建議
詳見:http://edn.egret.com/cn/article/index/id/287
(1) 少使用Alpha混合。
(2) 顯式停止計時器,讓它們準備好進行垃圾回收。
(3)使用事件偵聽器并在不需要時删除這些偵聽器。
(4) 在不需要觸摸互動性時顯式禁用觸摸互動性。
(5) 合理使用dispatchEvents 函數。
(6) 盡可能重用對象,建立對象池,而不建立對象并對其執行垃圾回收。
(7)多次調用類屬性時,避免直接使用this.att,建立局部變量指派。
(8)Event.ENTER_FRAME數量控制。
(9)減少不必要的引用。
(10)減少顯示對象的旋轉縮放。
(11)使用SpriteSheet合并的圖檔尺寸要優于單張圖檔的總尺寸,尤其是帶透明通道的。
(12)在Http請求中,加載單個檔案速度要優于加載多個檔案
##個人總結
1) 滑動清單盡量使用資料綁定的方式(詳見 eui.Scroller + eui.List 的使用),這樣的做法減少Draw ,最多為選項個數+1
2)顯示移除不需要的面闆,不用的盡量removeChild 而不是設定visiable
3) 顯式停止計時器,不要每次都進行 egret.getTimer(),應做為全局資料
4)顯式 删除對象的所有引用確定被垃圾回收器回收。
5) 盡量不要在使用方法内建立函數,一個函數内不要嵌套另一個函數的定義。
6) 盡量使用let 代替 var 避免閉包導緻的BUG
7) 将this指派給另一個臨時變量self,let self = this
8) 不要在聲明的時候初始化對象,需要指派基本類型。可選擇使用前初始化。
9) 初始化數組 =[] 比new 效率高 , = {} 比new 效率高
10) exml檔案注意通過可視化編輯會産生小數,去掉小數
11)盡可能複用對象,或建立對象池,建立對象時,将對象建立在循環外部并在循環内反複重用。這是許多面向對象程式設計常用的方法。
12)禁用不必要顯示對象的觸摸互動,預設touchEnabled =true ,需要手動設定為false,在禁用時注意touchChildren = false 才能徹底禁止touch
13) 靜态的UI 使用建議使用cacheAsBitmap減少重繪次數,動态的不要使用該方法
14) 少用mask,特别是Rectangle 每回都要去計算消耗性能較大
15)盡量将配置檔案合并到一個大檔案裡,減少下載下傳次數。在Http請求中,加載單個檔案速度要優于加載多個檔案。配置檔案去掉格式化,利用線上Json格式化工具(如bejson,sojson)處理Json資料。Json資料可以去掉一些不必要的小數和冗長命名
16)TextField減少對于描邊(stroke)的使用,用圖檔代替,因為描邊是需要先通過計算邊界渲染
17)配置檔案盡量使用key :value的方式,直接通過key取值減少查詢
18)資料查詢多的,使用key:value結構
19) ScrollerBar 的資料,如果單個更改,盡量通過updataItem() 去更改,避免重新綁定資料