PDA

Просмотр полной версии : Удаление Твина, нужно ли?


mihael_p
13.06.2013, 11:24
Никогда не задумывался о такой штуке как удаление твина, до сегодняшнего дня - набрел на такую запись:

TweenLite.killTweensOf(mc);

Вот и задумался, есть ли разница для GC и загрузки памяти между таким удалением объекта на котором есть твин:

TweenLite.killTweensOf(mc);
removeChild(mc);


и таким удалением:

removeChild(mc);


Кто знает, подскажите пожалуйста.

MikroAcse
13.06.2013, 14:49
По окончанию твина он удалится сам, а вот если он еще не закончился, то стоит его удалить.

Wolsh
13.06.2013, 14:51
А какое вообще дело GC до removeChild(mc); ?
Удаление из Списка отображения и удаление объекта из памяти — две большие разницы.

Тем не менее, "есть ли разница" — думаю есть, твин скорее всего будет продолжать работать с объектом, даже если последний больше не отображается. Вы же можете задавать объекту ширину или координаты, или прозрачность, и только потом добавить его в СО методом addChild()? Ну так и когда вы вытащите его из СО методом removeChild(), твин точно так же будет продолжать менять его свойства по своей программе.

Ну а для GC убивание твина нужно конечно, если вы собрались удалить сам объект, совсем, из памяти а не из Списка отображения. Твин же хранит на него ссылку, и это не позволит GC забрать такой объект.

mihael_p
13.06.2013, 18:17
Wolsh, Спасибо большое за разъяснение, именно такого подробного ответа я и ждал.