AS3 小技巧 效能優化(不斷更新中)

2022-07-08 16:09:33 字數 2520 閱讀 1625

1:string轉換成boolean

1

var s:string="true";

2var b:boolean = (s=="true");

2:清除所有子物件

1

while(container.numchildren > 0)

2

3:對於不需要 滑鼠互動的物件 設定屬性 mousechildren , mouseenabled。

4:

盡可能使用 vector 類而不是 array 類,vector 類的讀寫訪問速度比 array 類快。

5:通過為向量分配特定長度並將其長度設為固定值,可進一步優化。

1

//specify a fixed length and initialize its length

2var coordinates:vector. = new vector.(300000, true);

3var started:number = gettimer();

4for (var i:int = 0; i< 300000; i++)

5

8 trace(gettimer() - started);9//

output: 48

6:將重用的值儲存在常量,可對上面例項進一步優化。

1

//store the reused value to maintain code easily

2 const max_num:int = 300000;

3var coordinates:vector. = new vector.(max_num, true);

4var started:number = gettimer();

5for (var i:int = 0; i< max_num; i++)

6

9 trace(gettimer() - started);

10//

output: 47

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

9:使用中括號運算子可能會降低效能。將您的引用儲存在本地變數中可避免使用該運算子。以下**示例演示了使用中括號運算

符的效率很低:

1

var lng:int = 5000;

2var arraysprite:vector.= new vector.(lng, true);

3var i:int;

4for ( i = 0; i< lng; i++ )5 8

var started:number = gettimer();

9for ( i = 0; i< lng; i++ )

10 16 trace( gettimer() - started );

17//

output : 16

以下優化的版本減少了對中括號運算子的使用:

1

var lng:int = 5000;

2var arraysprite:vector.= new vector.(lng, true);

3var i:int;

4for ( i = 0; i< lng; i++ )5 8

var started:number = gettimer();

9var currentsprite:sprite;

10for ( i = 0; i< lng; i++ )

11 18 trace( gettimer() - started );

19//

output : 9

10: 盡可能使用內聯**以減少**中函式的呼叫次數。例如:

1  currentvalue > 0 ? currentvalue : -currentvalue;

比下面這種快

1 math.abs ( currentvalue );

11:避免計算迴圈中的語句。

不計算迴圈中的語句也可實現優化。以下**遍歷陣列,但未進行優化,因為在每次遍歷時都需要計算陣列長度:

1

for (var i:int = 0; i< myarray.length; i++)

2

最好儲存該值並重複使用:

1

var lng:int = myarray.length;

2for (var i:int = 0; i< lng; i++)

3

12:對 while 迴圈使用相反的順序。

以相反順序進行 while 迴圈的速度比正向迴圈快:

1

var i:int = myarray.length;

2while (--i > -1)

3

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

Python技巧 不斷更新中

1.讀取檔案的內容 filepath 檔案路徑 lambda f f.read f.close file filepath 0 2.將內容寫入到檔案中 lambda f,d f.write d f.close file r d a.txt w 要寫入的資料 3.根據正規表示式過濾資料夾中的檔案 im...

GDB 除錯技巧(不斷更新中 )

方法 在函式前面加類名以及作用域運算子 eg break a func break 到類a的func函式 程式如下 除錯過程如下 kiosk localhost mess gdb gdb test gnu gdb gdb red hat enterprise linux 7.6 1 94.el7 l...

小知識彙總 不斷更新中

目錄 1.在應用中拖拽檢視新增彈簧效果!2.storyboard開發中退出登入的操作 3.一步移除控制器的所有子檢視 4.自定義cell 5.給tableview的最下面與手機最底端增加乙個間距 詳情1.在應用中拖拽檢視新增彈簧效果!如圖 2.storyboard開發中退出登入的操作 2.1 直接找...