Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как грамотно убить мувик? (http://www.flasher.ru/forum/showthread.php?t=143997)

kayn 31.08.2010 05:29

Как грамотно убить мувик?
 
Как убить мувик, чтобы он исчез бесследно и не засорял память? При этом переменную, ссылающуюся на него, не удалять, а просто приравнять null.

Psycho Tiger 31.08.2010 09:41

Удалить его из дисплай листа и заnullить на него все ссылки.

Приравнивание ссылки к null равнозначно удалению этой самой ссылки, ровно как и приравнивание к какой-нибудь другой ссылки. Короче, если переменная перестал на него ссылаться по любой из причин - ссылка от этой переменной на него удалена.

kayn 31.08.2010 16:26

Да нефига, и диспетчер задач тому подтверждение, плеер грузит память как мула. И не ссылку надо удалить, а сам клип.

in4core 31.08.2010 16:28

Да что вы? Считаете что null объект может грузить память? вы ошибаетесь. Тигра прально написал

kayn 31.08.2010 16:33

Да я не против, но с каждым s=new mov(); память нагружается очередной сотней килобайт.

Dragosha 31.08.2010 16:35

и будет нагружаться до тех пор, пока GC не соизволит ее почистить.
все тут верно написали.

random13 31.08.2010 16:37

Цитата:

Сообщение от kayn (Сообщение 932661)
Да я не против, но с каждым s=new mov(); память нагружается очередной сотней килобайт.

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

artcraft 31.08.2010 16:37

- удалить из дисплей листа
- обнулить все ссылки
- удалить все евент листнеры
- остановить таймеры
И после этого объект удалится не мгновенно а только когда у виртуальной машины дойдут до этого руки.
Если все условия выполнены, а флэшка продолжает жрать память, то надо запустить флэшбилдерпро и воспользоваться профайлером

nldr 31.08.2010 21:15

Вопрос в тему, а что если у мувика есть вложенные мувики? Их нужно каждый убивать или достаточно убить родительский мувик?

Psycho Tiger 31.08.2010 21:20

Достаточно убить родительский.


Часовой пояс GMT +4, время: 04:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.