建站资讯

Flash as3实例教程:13个常见小窍门

作者:admin 发布时间:2021-04-02

4: 尽量应用 Vector 类而并不是 Array 类,Vector 类的读写能力浏览速率比 Array 类快。

5:根据为矢量素材分派特殊长短并将其长短设成固定不动值,可进一步提升。

 

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++) 6 coordinates[i] = Math.random()*1024; 8 trace(getTimer() - started); 9 // output: 48

6:将器重的值储存在变量定义,可对上边案例进一步提升。

 

 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++) 7 coordinates[i] = Math.random()*1024; 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++ )
 6 arraySprite[i] = new Sprite();
 8 var started:Number = getTimer();
 9 for ( i = 0; i lng; i++ )
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;
16 trace( getTimer() - started );
17 // output : 16

下列提升的版本号降低了对中括弧计算符的应用:


 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++ )
 6 arraySprite[i] = new Sprite();
 8 var started:Number = getTimer();
 9 var currentSprite:Sprite;
10 for ( i = 0; i lng; i++ )
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;
18 trace( getTimer() - started );
19 // output : 9

10: 尽量应用内联编码以降低编码中涵数的启用频次。比如:

1 currentValue 0 ? currentValue : -currentValue;

 

比下边这类快

 

1 Math.abs ( currentValue ); 

 

11:防止测算循环系统中的句子。

不计入算循环系统中的句子也可完成提升。下列编码解析xml数字能量数组,但未开展提升,由于在每一次解析xml时都必须测算数字能量数组长短:

 

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

最好储存该值并举复应用:
1 var lng:int = myArray.length;
2 for (var i:int = 0; i lng; i++)
4 }

12:对 while 循环系统应用反过来的次序。

 

以反过来次序开展 while 循环系统的速率比顺向循环系统快:

 

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

13:一般,应用尽量低的帧速度能够提升特性。

收缩