![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Есть визуальный класс, который делает некоторую работу, по окончании которой его нужно удалить. ссылка на экземпляр созданного класса хранится как свойство экземпляра класса "менеджера" (может сложно выражаюсь). Удаляю следующим образом:
1. removeChild 2. удаляю все события связанные с экз. визуального класса (или проще использовать useWeakRefence = true) 3. делаю свойство экземпляра класса "менеджера" = null Все ли верно? Удалит ли после этих событий "сборщик мусора" ненужный визуальный класс в памяти? C уважением. |
|
|||||
|
думаю первое нужно сделать последним... если уж на то пошло)
может я ошибаюсь) |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ошибаетесь.
firsoff, примерного кода отсюда не видно, а по терминологии ясности нет. |
|
|||||
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Master extends Sprite
{
private var _slave:Slave;
// CONSTRUCTOR
// КЛасс хозяин
public function Master()
{
_slave = new Slave();
// используем мягкие ссылки
_slave.addEventListener(Event.ADDED_TO_STAGE, handleAdded, false, 0, true);
addChild(_slave);
someWork();
// удаление из памяти
removeChild(_slave);
_slave = null;
// ну все сборщик милости просим (вызываем известный хак для GarbageCollector)
};
private function someWork():void
{
/*
* какая то работа с _slave
* */
};
private function handleAdded(event:Event):void
{
// обработчик просто для примера
};
};
public class Slave extends Sprite
{
// CONSTRUCTOR
public function Slave()
{
// визуальный класс
};
};
};
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
меня больше интересует если _slave = null не сделать, то экземпляр класса останется в памяти? ведь получается на него остается ссылка в экз. класса Master, иными словами присвоение null обязательно?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|