Форум 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=132039)

Denis_ex 02.11.2009 22:46

Деструктор класса
 
Есть класс:
Код:

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.
    }
}


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

scarbo 02.11.2009 22:55

никак, надо удалять экземпляр класса, в AS3.0 не реализованы деструкторы, в отличии к примеру от PHP5

Denis_ex 02.11.2009 23:32

Мне скорее нужно узнать, как обнулить ссылку экземпляра функцией внутри класса.

Felicast 03.11.2009 00:07

this = null; - это бред

incoob 03.11.2009 02:16

А в каких языках можно сделать
Код:

this = null;
?

alatar 03.11.2009 05:18

В функции destroy() (к примеру) вы должны только подготовить объект к удалению, а обнулять на него ссылку должен родитель, предварительно вызвав функцию destroy()

etc 03.11.2009 09:29

Цитата:

Сообщение от Denis_ex (Сообщение 862975)
как обнулить ссылку экземпляра функцией внутри класса.

Никак.

dimarik 03.11.2009 10:45

Подведем итог. Объект сам себя удалить не может =)

Vogd 03.11.2009 11:25

Ну почему же?

Код AS3:

this.parent.removeChild(this);

Очень даже работает.

switcher! 03.11.2009 11:29

Цитата:

Сообщение от Vogd (Сообщение 863028)
Код AS3:

this.parent.removeChild(this);

Очень даже работает.

удаление объекта из списка детей/списка_отображения не есть удаление самого объекта.


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

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