2016-12-03 10 views
1

У меня есть клип, экспортированный для ActionScript в качестве класса, и я создаю много экземпляров из него внутри цикла и добавляя его на сцену.
Когда я тестирую приложение на мобильном устройстве, он замерзает на секунду, когда цикл начинается, а затем все работает.
Ниже приведен пример того, как это выглядит:
Создание экземпляров в loop freezes app

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 –