欧美激情网,国产欧美亚洲高清,欧美屁股xxxxx,欧美群妇大交群,欧美人与物ⅴideos另类,区二区三区在线 | 欧洲

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

1:String轉(zhuǎn)換成Boolean

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

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

3:對(duì)于不需要 鼠標(biāo)交互的對(duì)象 設(shè)置屬性 mouseChildren , mouseEnabled。

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

5:通過(guò)為矢量分配特定長(zhǎng)度并將其長(zhǎng)度設(shè)為固定值,可進(jìn)一步優(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:將重用的值存儲(chǔ)在常量,可對(duì)上面實(shí)例進(jìn)一步優(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() 方法加快運(yùn)行速度。

8:對(duì)于 TextField 對(duì)象,請(qǐng)使用 appendText() 方法,而不要使用 += 運(yùn)算符。

9: 使用中括號(hào)運(yùn)算符可能會(huì)降低性能。將您的引用存儲(chǔ)在本地變量中可避免使用該運(yùn)算符。以下代碼示例演示了使用中括號(hào)運(yùn)算
符的效率很低:

 

 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)化的版本減少了對(duì)中括號(hào)運(yùn)算符的使用:

 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: 盡可能使用內(nèi)聯(lián)代碼以減少代碼中函數(shù)的調(diào)用次數(shù)。例如:

1 currentValue > 0 ? currentValue : -currentValue;

 

比下面這種快

 

1 Math.abs ( currentValue );   

 

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

不計(jì)算循環(huán)中的語(yǔ)句也可實(shí)現(xiàn)優(yōu)化。以下代碼遍歷數(shù)組,但未進(jìn)行優(yōu)化,因?yàn)樵诿看伪闅v時(shí)都需要計(jì)算數(shù)組長(zhǎng)度:

 

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

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

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

 

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

 

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

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