Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как правильно удалять экземпляры классов? (http://www.flasher.ru/forum/showthread.php?t=74177)

ksanster 13.01.2006 15:17

как правильно удалять экземпляры классов?
 
не понимаю, как правильно?
Вот, скажем, есть класс,что-то рисующий:
class MyClass {
var _holder:MovieClip;
function MyClass(target:MovieClip) {
_holder = target.createEmptyMovieClip("aa",1);
//потом рисуем что-нить в _holder
}
}

Создаем экземпляр класса:
var aa:MyClass = new MyClass(_root);
Когда надобность в нем отпала - очищаем память:
delete aa;
Так?
А если нам надо сначала удалить результаты работы?
Допустим ли такой метод класса?
function drop() {
_holder.removeMovieClip();
delete this;
}

- чтобы можно было aa.drop() и забыть? :)
Или как-то по-другому надо делать с точки зрения ООП?

silin 13.01.2006 15:59

соображения:
1)delete aa;
убиваем ссылку на объект, объект уберет сборщик (коль скоро на него нет ссылок), но мувик (нарисованый в руте ) останется..
2)function drop() {
_holder.removeMovieClip();
delete this;
}
выгружаем мувик,убиваем объект, ссылка остается..
итого выходит, что надо:
aa.drop();
delete aa;

ksanster 13.01.2006 16:18

Цитата:

Сообщение от silin
aa.drop();
delete aa;

Так и делаю... Просто хотелось узнать, нет ли какого-то более правильного подхода.
И вопрос в тему: где посмотреть про ассоциацию классов с мувиклипами из библиотеки? что-то не понимаю я - какие в этом полезные стороны..

silin 13.01.2006 16:45

>>какие в этом полезные стороны..
да писать/хранить удобнее..
хотя, если нравится Object.registerClass и __proto__, то никто не запрещает..:)
чего посмотреть не знаю..


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

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