在循环中创建实例会冻结app

时间:2016-12-03 22:31:28

标签: actionscript-3 flash air

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

所以,我问是否有更好的方法可以不冻结? 感谢。

1 个答案:

答案 0 :(得分:3)

提高性能的一种方法是利用object pool pattern重用已经生成的对象:

  

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

Adobe's website上提供了有关“对象池模式”的更多信息和工作示例代码:)