Показать сообщение отдельно
Старый 16.10.2009, 13:36
chabapok вне форума Посмотреть профиль Отправить личное сообщение для chabapok Найти все сообщения от chabapok
  № 1  
Ответить с цитированием
chabapok

Регистрация: Jul 2009
Сообщений: 240
Записей в блоге: 1
По умолчанию Как удалять из памяти потомков UIComponent, c Bindable полями? (утечки памяти)

Обнаружил, что если у нас есть свой компонент в котором используется Binding, то простого removeChild и удаления всех ссылок на него недостаточно - в памяти он остается.

Вот как его грамотно удалить?

Добавлено через 39 минут
поясню на примере
мой компонент такой:

Код AS3:
<mx:Canvas ляляля>
[Bindable]
public var item:myClassName;
 
<mx:TextArea text="{item.name}"
		id="textarea1" editable="false" />
<mx:Label y="55" text="{item.author}" id="label3" />
 
</mx:Canvas>
Если я делаю:
var:myComp = new myComp(); addChild(myComp);
а потом где-то позже делаю
delete this.removeChildAt(0);

и в профилеровщике вижу, что компонент остается в памяти.
причем если закомментировать TextArea, то компонент из памяти удаляется, несмотря на то, что там еще есть Label с забинженым свойством