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

Majus 14.07.2008 17:55

Как предотвратить удаление объекта?
 
Доброго времени суток.

Передо мной задача: создать объект, который должен существовать несмотря на отсутствие ссылок на него. Код класса:

Код:

class SomeClass {
  private var button:Button = new Button();
  SomeClass(onBtnPress:Function) {
    button.addEventListener(MouseEvent.CLICK, onBtnPress);
  }
}
...
function CreateSomeObject():void {
  eventHandler = function():void {
    // Do something
    removeEventListener(MouseEvent.CLICK, eventHandler);
  }
  var tmp:SomeClass = new SomeClass(eventHandler);
}

Будет ли помечен объект на удаление после выхода из функции CreateSomeObject?
Будет ли помечен объект на удаление после вызова removeEventListener в обработчике eventHandler?

flash33 14.07.2008 18:14

Не будет, при выходе из CreateSomeObject() будет потерянна ссылка на tmp. И вообще, зачет такая извратная конструкция?

Majus 14.07.2008 18:57

Цитата:

Сообщение от flash33 (Сообщение 752015)
И вообще, зачет такая извратная конструкция?

Не хочу создавать отдельную переменную для ссылки на этот объект, она не нужна.

wvxvw 14.07.2008 19:00

мама... что это? зачем?..
может проще объяснить зачем это нужно?.. а то то, что есть - это что-то за пределами добра и зла...

Majus 16.07.2008 11:51

Я вижу код вызывает удивление. Вообще на C++ я часто пользуюсь таким приемом - создаю объект и поручаю ему работать и удалять себя самостоятельно. Здесь же... Здесь так не принято, по всей видимости.

terbooter 16.07.2008 12:21

Относительно недавно была длинная тема почему объект не может удалить сам себя.
По-моему даже в этом разделе, сходу не нашел


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

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