在循环中创建实例冻结应用程序

问题描述:

我有一个导出为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); 
} 

所以,我询问是否有更好的办法做到这一点不结冰?
谢谢。以提高性能

一种方法是利用object pool pattern重用随着时间的推移已经生成的对象:

它是使用一套 初始化对象的软件创建型设计模式随时准备使用 - 一个“池” - 而不是 按需分配和销毁它们。池中的客户端将从池中请求一个对象并在返回的对象上执行操作 。当客户端完成时,它将对象返回到 池而不是销毁它;这可以手动完成,或者自动执行 。

更多的信息和对“对象池模式”可在Adobe's website :)

+1

由于工作示例代码,一个差不多就是我一直在寻找 –

+1

非常有用的参考,'性能优化'文章,TNX –