日韩av爽爽爽久久久久久,嫩草av久久伊人妇女超级a,久久精品a亚洲国产v高清不卡,久久成人国产精品一区二区

知識學堂
  • ·聯(lián)系電話:+86.023-75585550
  • ·聯(lián)系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 網站建設知識
Flash as3教程:13個常用小技巧
更新時間:2012-05-09 | 發(fā)布人:本站 | 點擊率:598

1:String轉換成Boolean

1 var s:String="true";
2 var b:Boolean = (s=="true");

2:清除所有子對象
1  while(container.numChildren > 0)
2  {
3      container.removeChildAt(0);
4  }

3:對于不需要 鼠標交互的對象 設置屬性 mouseChildren , mouseEnabled。

4: 盡可能使用 Vector 類而不是 Array 類,Vector 類的讀寫訪問速度比 Array 類快。

5:通過為矢量分配特定長度并將其長度設為固定值,可進一步優(yōu)化。

 

1     // Specify a fixed length and initialize its length
2 var coordinates:Vector.<Number> = new Vector.<Number>(300000, true); 3 var started:Number = getTimer(); 4 for (var i:int = 0; i< 300000; i++) 5 { 6 coordinates[i] = Math.random()*1024; 7 } 8 trace(getTimer() - started); 9 // output: 48

6:將重用的值存儲在常量,可對上面實例進一步優(yōu)化。

 

 1     // Store the reused value to maintain code easily
2 const MAX_NUM:int = 300000; 3 var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true); 4 var started:Number = getTimer(); 5 for (var i:int = 0; i< MAX_NUM; i++) 6 { 7 coordinates[i] = Math.random()*1024; 8 } 9 trace(getTimer() - started); 10 // output: 47

7:使用BitmapData的 lock() 和 unlock() 方法加快運行速度。

8:對于 TextField 對象,請使用 appendText() 方法,而不要使用 += 運算符。

9: 使用中括號運算符可能會降低性能。將您的引用存儲在本地變量中可避免使用該運算符。以下代碼示例演示了使用中括號運算
符的效率很低:

 

 1 var lng:int = 5000;
 2 var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
 3 var i:int;
 4 for ( i = 0; i< lng; i++ )
 5 {
 6 arraySprite[i] = new Sprite();
 7 }
 8 var started:Number = getTimer();
 9 for ( i = 0; i< lng; i++ )
10 {
11 arraySprite[i].x = Math.random()*stage.stageWidth;
12 arraySprite[i].y = Math.random()*stage.stageHeight;
13 arraySprite[i].alpha = Math.random();
14 arraySprite[i].rotation = Math.random()*360;
15 }
16 trace( getTimer() - started );
17 // output : 16

以下優(yōu)化的版本減少了對中括號運算符的使用:

 1 var lng:int = 5000;
 2 var arraySprite:Vector.<Sprite> = new Vector.<Sprite>(lng, true);
 3 var i:int;
 4 for ( i = 0; i< lng; i++ )
 5 {
 6 arraySprite[i] = new Sprite();
 7 }
 8 var started:Number = getTimer();
 9 var currentSprite:Sprite;
10 for ( i = 0; i< lng; i++ )
11 {
12 currentSprite = arraySprite[i];
13 currentSprite.x = Math.random()*stage.stageWidth;
14 currentSprite.y = Math.random()*stage.stageHeight;
15 currentSprite.alpha = Math.random();
16 currentSprite.rotation = Math.random()*360;
17 }
18 trace( getTimer() - started );
19 // output : 9

10: 盡可能使用內聯(lián)代碼以減少代碼中函數(shù)的調用次數(shù)。例如:

1 currentValue > 0 ? currentValue : -currentValue;

 

比下面這種快

 

1 Math.abs ( currentValue );   

 

11:避免計算循環(huán)中的語句。

不計算循環(huán)中的語句也可實現(xiàn)優(yōu)化。以下代碼遍歷數(shù)組,但未進行優(yōu)化,因為在每次遍歷時都需要計算數(shù)組長度:

 

1 for (var i:int = 0; i< myArray.length; i++)
2 {
3 }

最好存儲該值并重復使用:
1 var lng:int = myArray.length;
2 for (var i:int = 0; i< lng; i++)
3 {
4 }

12:對 while 循環(huán)使用相反的順序。

 

以相反順序進行 while 循環(huán)的速度比正向循環(huán)快:

 

1 var i:int = myArray.length;
2 while (--i > -1)
3 {
4 }

13:通常,使用盡可能低的幀速率可以提高性能。