AS3效率優化總結不斷更新

效率就在咱們身邊,提高是如此簡單!數組

    • 優化顯示:透明效果,濾鏡,縮放以及旋轉能夠產生分紅絢麗的效果,可是這些效果同時也吃掉了不少的CPU,因此在遊戲中儘量用位圖代替這些效果。
    • 流暢的邏輯運算:另一個瓶頸是遊戲中的邏輯判斷。儘可能減小沒必要要的判斷,取消程序中的那些臨界近似值的判斷。出來顯示問題,優化邏輯判斷是提升遊戲性能最爲顯著的一個。
    • 使用Vector類存儲一組相同類型的數據:Flash player10引入了Vector類。除了要求存儲數據必須是同一種類型外,它的功能和Array類徹底一致。可是若是當須要存儲不一樣類型的數據時,Array的運行效率還要比Vector勝出一籌的。
    • 用uint代替Math.floor:要對一個小數進行四捨五入,你第一時間可能會想到Math.floor方法,好比Math.floor(9.3213);而將這個數字強制轉換爲uint類型,能夠獲得相同個結果:uint(9.3213);更重要的是Flash Player處理uint的速度要比Math.floor快的多。位運算>>0最快
    • eg:
      trace(64.55>>0); //64
      trace(-64.55>>0); //-64
      trace(8>>0); //8
      trace(-8>>0); //-8
    • 乘法運算要比除法快兩倍:x=(stage.stageWidth/2);與x=(stage.stageWidth*0.5);的結果是同樣的,可是乘法的運算效率要比除法快兩倍。
    • 儘可能使用查找表:查找表實際是就是一個普通的Array,不過它的數組元素在遊戲初始時已經計算好並存儲進去了。很顯然Flash Player在運行過程當中去讀取一個值要比計算出這個值要快的多。
    • 避免頻繁的建立和刪除對象動做:對於要從舞臺中刪除的對象,若是稍後還會再用到這個對象的話,使用visibility=false將其「刪除」,而不是使用removeChild把它從顯示列表中刪除。由於Flash Player中重建對象要比隱藏對象複雜的多。
    • 使用對象池:在遊戲初始化時,把全部須要的對象存放到一個數組中。當須要刪除和重建對象是,只須要聲明一個對象引用數組中的這個對象便可。這比從新new一個對象出來要快多了。
    • 位運算有時候會更快:位運算的計算方法和CPU的處理數據本質上是一致的,跟CPU講它的「母語」,它「理解」起來,作起來天然就更快了!
相關文章
相關標籤/搜索