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

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

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

Регистрация: Nov 2010
Сообщений: 111
По умолчанию Удаление класса из памяти

Задался таким вопросом...
Создаю класс

Код AS3:
var _data_item:DataItem;
_data_item = new DataItem();
далее использую по своему усмотрению.

Каким образом мне удалить его из памяти?

Спасибо

Старый 25.06.2014, 20:52
LifeIsRhythm вне форума Посмотреть профиль Отправить личное сообщение для LifeIsRhythm Найти все сообщения от LifeIsRhythm
  № 2  
Ответить с цитированием
LifeIsRhythm
[+1 22.07.14]
[+4 12.08.14]
[+1 09.02.15]

Регистрация: May 2014
Сообщений: 182
Создаете экземпляр класса-объект, ссылку на который нужно просто занулить -
Код AS3:
_object = null;

Старый 25.06.2014, 20:54
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Это не класс, а экземпляр класса. Это разные вещи, не надо путать понятия.
Никак его нельзя удалить из памяти. Во флеше нельзя управлять памятью. Этим занимается автоматичческий сборщик мусора. Если на этот экземпляр не будет никаких ссылок, то, при необходимости, сборщик мусора его удалит.
В этом случае можно сделать так:
Код AS3:
var _data_item:DataItem;
_data_item = new DataItem();
_data_item = null; // ссылка занулена, никаких других ссылок нет, он доступен для сборки мусора
Но если есть какие-то слушатели событий, добавленные к объекту, или ссылки на него есть в каком-то массиве или еще где-то, то все это тоже нужно удалять. Так же его надо удалить из дисплей листа, если он там есть
__________________
Ко мне можно и нужно обращаться на ты)

Старый 25.06.2014, 20:54
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Удалить в итоге сможет только сборщик мусора (CG), а чтобы помочь ему в этом, не оставьте ссылок на _data_item.
Код AS3:
_data_item=null
Но так же не забывайте, что ссылки остаются и при подписке на события, занесения в массивы и т.п.

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

Регистрация: Nov 2010
Сообщений: 111
Все понял, спасибо !

Добавлено через 15 часов 11 минут
Такой вопрос в продолжение темы.
У меня в 1 кадре лежит класс Preloader. После загрузки он кидает на другой кадр с меню. Соответственно Preloader пропадает автоматически? - не нужно ничего чистить?

Старый 26.06.2014, 14:20
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 6  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Если класс Preloader был подписан на какие-то события, то лучше перед переходом на следующий кадр, отписать Preloader от этих событий.

Старый 26.06.2014, 14:32
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
А с каких пор классы умеют слушать события?
__________________
тут я

Старый 26.06.2014, 14:51
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 8  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от КорДум Посмотреть сообщение
А с каких пор классы умеют слушать события?
Ок) Если экземпляр класса был подписан...

Старый 26.06.2014, 16:20
Aquahawk вне форума Посмотреть профиль Отправить личное сообщение для Aquahawk Посетить домашнюю страницу Aquahawk Найти все сообщения от Aquahawk
  № 9  
Ответить с цитированием
Aquahawk
 
Аватар для Aquahawk

Регистрация: Nov 2010
Адрес: Москва
Сообщений: 915
Записей в блоге: 4
Отправить сообщение для Aquahawk с помощью ICQ Отправить сообщение для Aquahawk с помощью Skype™
Цитата:
А с каких пор классы умеют слушать события?
А что мешает в статике подписывать статический метод на что-нибудь?
__________________
:)

Старый 27.06.2014, 01:32
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Удалить класс из памяти можно при соблюдении некоторых условий. Во-первых, соблюсти все, что относится к удалению экземпляра почти любого класса, т. е. удалить все ссылки на него. А во-вторых, удалить все ссылки на ApplicationDomain, содержащий definition этого класса. Это накладывает определенные условия на загрузку класса. Как ни странно, он должен быть загружен в домен, отличный от ApplicationDomain.currentDomain.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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