2016-12-03 101 views
1

我有一個導出爲ActionScript的影片剪輯作爲類,我在循環內創建了許多實例並將其添加到舞臺上。
當我在手機上測試應用程序時,它會在循環開始時凍結一秒,然後一切都會恢復。
下面是它的外觀的例子:
在循環中創建實例凍結應用程序

for(var i:int = 0; i < 20; i++) 
{ 
    var mc:MC = new MC(); 
    mc.textField.text = "mc"+i; 
    mc.y = i * mc.height; 
    addChild(mc); 
} 

所以,我詢問是否有更好的辦法做到這一點不結冰?
謝謝。以提高性能

回答

3

一種方法是利用object pool pattern重用隨着時間的推移已經生成的對象:

它是使用一套 初始化對象的軟件創建型設計模式隨時準備使用 - 一個「池」 - 而不是 按需分配和銷燬它們。池中的客戶端將從池中請求一個對象並在返回的對象上執行操作 。當客戶端完成時,它將對象返回到 池而不是銷燬它;這可以手動完成,或者自動執行 。

更多的信息和對「對象池模式」可在Adobe's website :)

+1

由於工作示例代碼,一個差不多就是我一直在尋找 –

+1

非常有用的參考,'性能優化'文章,TNX –