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

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

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

Регистрация: Aug 2009
Сообщений: 134
По умолчанию Деструктор класса

Есть класс:
Код:
public class CBall extends СObject
{
     public var timer:Timer = new Timer(1000, 7);
     public var indBomb:uint = 0;
     .....
     public function Destroy():void 
    { 
         timer = null; // здесь норм.
         this = null; // здесь выдается ошибка: 1050: Cannot assign to a non-reference value.
    }
}

Т.е. чтобы удалить экземпляр класса из памяти нужно обнулить ссылку, сборщик мусора соберет данные, которые находятся без ссылки. Но, как мне внутри функции класса удалить данный класс из памяти?

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

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
никак, надо удалять экземпляр класса, в AS3.0 не реализованы деструкторы, в отличии к примеру от PHP5
__________________
Я просто добрый шутник.

Старый 02.11.2009, 23:32
Denis_ex вне форума Посмотреть профиль Отправить личное сообщение для Denis_ex Найти все сообщения от Denis_ex
  № 3  
Ответить с цитированием
Denis_ex

Регистрация: Aug 2009
Сообщений: 134
Мне скорее нужно узнать, как обнулить ссылку экземпляра функцией внутри класса.

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
this = null; - это бред
__________________
я могу стать всем, если только захочу

Старый 03.11.2009, 02:16
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 5  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
А в каких языках можно сделать
Код:
this = null;
?

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
В функции destroy() (к примеру) вы должны только подготовить объект к удалению, а обнулять на него ссылку должен родитель, предварительно вызвав функцию destroy()

Старый 03.11.2009, 09:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Denis_ex Посмотреть сообщение
как обнулить ссылку экземпляра функцией внутри класса.
Никак.

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Подведем итог. Объект сам себя удалить не может =)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 03.11.2009, 11:25
Vogd вне форума Посмотреть профиль Отправить личное сообщение для Vogd Найти все сообщения от Vogd
  № 9  
Ответить с цитированием
Vogd

Регистрация: Feb 2009
Сообщений: 34
Ну почему же?

Код AS3:
this.parent.removeChild(this);
Очень даже работает.

Старый 03.11.2009, 11:29
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 10  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от Vogd Посмотреть сообщение
Код AS3:
this.parent.removeChild(this);
Очень даже работает.
удаление объекта из списка детей/списка_отображения не есть удаление самого объекта.

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

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

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


 


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


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