Полчаса размышлений, и источник утечки памяти, возникающей при пересоздании 3D-объектов, экспортированных из Prefab3D (версия - 2.124), найден. В классе ASBase, являющимся базовым для всех экспортируемых 3D-моделей, отсутствует корректное переопределение метода dispose(), очищающее занимаемые ресурсы. Переопределив метод так:
public override function dispose():voidмы избавляемся от утечки памяти.
{
super.dispose();
var i:uint;
for(i=0;i<_meshes.length;i++)
_meshes[i].dispose();
_meshes=null;
for(i=0;i<_containers.length;i++)
_containers[i].dispose();
_containers=null;
for(i=0;i<_materials.length;i++)
_materials[i].dispose();
_materials=null;
}
в скобки забыл оформить циклы for
ОтветитьУдалитьа зачем, там ведь всего одно выражение в цикле?
Удалить