在循环中创建实例冻结应用程序
问题描述:
我有一个导出为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 :)
由于工作示例代码,一个差不多就是我一直在寻找 –
非常有用的参考,'性能优化'文章,TNX –