PDA

Просмотр полной версии : List и itemRenderer и звук


lephik
19.04.2007, 09:34
всем привет.
Использую в качестве itemRender для листа в котором создаётся NetConnection с приаттаченым звуком.
Ну так вот значит... ставлю dataProvider = нужный_массив , добавляю в нужный_массив запись, в листе создаётся новый itemRenderer, играется звук, удаляю всё из нужный_массив, из листа удаляется itemRender и..... ОПА - звук продолжает играть тоесть на самом деле объект itemRenderer хоть и пропал из листа но не удалился.
что делать ? :rolleyes:
спасибо.

lephik
19.04.2007, 09:40
может нужно какнить гарбедж коллектор запустить ?
может быть есть какоето событие которое вызывается у объекта когда его удаляют из листа ?
itemRenderer'ы остаются в памяти после удаления из листа !

etc
19.04.2007, 11:19
Ищи ссылки на них, наверняка где-то завалялось.

lephik
19.04.2007, 13:13
Ищи ссылки на них, наверняка где-то завалялось.

а можно хотябы чуть-чуть поподробнее... как это сделать ?

вот в .net например у объекта есть метод dispose, который вызывается при удалении объекта и который можно переопределить.
Есть ли что-либо подобное во Flex и AS3 ?

etc
20.04.2007, 12:38
а можно хотябы чуть-чуть поподробнее... как это сделать ?
Ну тебе виднее, где ты там создаешь ссылки и не удаляешь их.

lephik
20.04.2007, 13:18
это не я удаляю а комопонент - List, а где он это делает не могу найти.

__i
20.04.2007, 14:24
itemRender -> переопределяй метод set data( value : Object )....


Лист не удаляет рендер при прокуртке он просто переустанавливает ему данные. Т.е. фактичеси при скроле он дергает одни и теже рендеры но лепит туда новые данные.

В этом методе ты проверяй, если есть конекшин, или чето то активно у этого рендера, то мочи/останавлива/удаляй... и только после этого лепи новые данные.

lephik
20.04.2007, 15:20
к сожалению при удалении из листа этот метод itemRenderer'а не вызывается :(