Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.04.2010, 18:27
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 1  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
По умолчанию removeChild и сборка мусора

Привет!

Хочу уточнить, как навсегда убрать мувиклип со сцены и из памяти. В учебниках рассказывают, что если нет слушателей и ссылок на обьект, то после removeChild(obj) он уходит в небытие.

у меня такой код:
Код:
var mc:MyMC = new MyMC();
addChild(mc);
mc.play();
removeChild(mc);
при выполнении этого кода mc исчезает, но код внутри него продолжает выполняться (я поставил трейс внутри него, и трейс периодически выводится, показывая, что mc проигрывается). Почему он не удалился? Неужели его нужно остановить перед удалением? Если он подметается сборщиком мусора не сразу, то когда?
__________________
Платон мне друг, но истина в вине.

Старый 08.04.2010, 18:29
random13 вне форума Посмотреть профиль Отправить личное сообщение для random13 Найти все сообщения от random13
  № 2  
Ответить с цитированием
random13
 
Аватар для random13

Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
я думаю как минимум на него ссылаются переменные
__________________
Коллекционирую чужие ActionScript Блоги

Старый 08.04.2010, 18:48
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
блин да из кода же видно все. ты ж сам все правильно написал: если нет ссылок на объект. а сам что? removeChild(mc) сделал, а mc=null нет.
__________________
Поймай яблоко 2!

Старый 08.04.2010, 19:11
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 4  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
гм, а когда мне писать mc = null? Если до removeChild(mc), то он не поймет, что ему ремувить, если после - то сборщик мусора разочаруется, т.к. при removeChild(mc), mc != null. Сам-то пробовал?
__________________
Платон мне друг, но истина в вине.

Старый 08.04.2010, 19:13
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 5  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
после removeChild
__________________
местонахождение

Старый 08.04.2010, 19:27
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 6  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
При таком коде невидимый mc продолжает проигрываться:
Код:
var mc:MyMC = new MyMC();
addChild(mc);
mc.play();
removeChild(mc);
mc = null;
__________________
Платон мне друг, но истина в вине.

Старый 08.04.2010, 19:29
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 7  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Больше кода давайте. Где то там у вас косяк.

Старый 08.04.2010, 19:37
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Все правильно. Даже если нет ссылок, то не факт что ГЦ моментально заберет объект. Нужно вручную остановить его.

Старый 08.04.2010, 19:53
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 9  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Я бы даже сказал, что факт, что ГЦ заберёт его не сразу.

Старый 08.04.2010, 19:57
sinya вне форума Посмотреть профиль Отправить личное сообщение для sinya Посетить домашнюю страницу sinya Найти все сообщения от sinya
  № 10  
Ответить с цитированием
sinya
 
Аватар для sinya

Регистрация: Apr 2003
Адрес: Ukraine, Kiev
Сообщений: 189
Отправить сообщение для sinya с помощью ICQ
Цитата:
Больше кода давайте. Где то там у вас косяк.
Нет, я специально упростил и проверил у себя в том виде, в котором показываю.

Цитата:
Все правильно. Даже если нет ссылок, то не факт что ГЦ моментально заберет объект. Нужно вручную остановить его.
Ну вот я и хочу узнать, когда все-таки срабатывает GC. Я ждал минуту, ничего. )
__________________
Платон мне друг, но истина в вине.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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