Flash / Лёгкий способ бросить искать утечки

Самая частая проблема производительности во Flash связана со сбором мусора. По крайней мере, у меня. Сборщики мусора выкидывают объекты из памяти только тогда, когда удалены не только сами объекты, но и слушатели событий, связанные с ними, и всяческие указатели на эти объекты. То есть, чтобы память не текла, нужно постоянно следить за кучей всякой ерунды. Для большинства проектов можно просто забить на оптимизацию, но если у вас куча партиклов, блюры, глоу, всё это под шум Перлина - то после пары минут игры или даже просто после пары рестартов флешка начнёт дико тормозить. Одно из решений проблемы - это создавать кэши для повторяющихся объектов (типа набигающих врагов), но проблемы окончательного удаления это не решит.

Окончательным решением еврейского вопроса для меня стала библиотека CasaLib. Самое главное, что она может - это предоставляет свои классы CasaSprite и CasaMovieClip, которые расширяют стандартные. А в этих кастомных классах есть замечательные методы типа removeAllChildrenAndDestroy(), которые в одиночку способны справиться с главной причиной тормозов большинства флешек. Стоит заметить, что по умолчанию в этих методах дети только удаляются, а не уничтожаются, плюс рекурсивный проход метода по детям выключен. Чтобы исправить ситуацию, надо отправить true и true в качестве аргументов метода или же просто найти в библиотеке эти функции и к чёрту переписать:
 removeAllChildrenAndDestroy(destroyChildren:Boolean = false, recursive:Boolean = false)
на:

  removeAllChildrenAndDestroy(destroyChildren:Boolean = true, recursive:Boolean = true ) 

Библиотека умеет ещё много чего полезного...


Источник:
 но главное - теперь ко мне ночью не придут партиклы, контейнер которых я зверски убил... Потому что все до единого партиклы тоже убиты, муа-ха-ха!!!!11


Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемыми ниже кнопками:


Блог: http://romanlovetext.blogspot.com/