![]() |
Обращение к объекту, созданному через конструктор класса
Здравствуйте! Есть класс InfoWindow, он создает мувиклип в конструкторе класса, т.е. для создания экземпляра класса, надо:
var alrtWnd:InfoWindow = new InfoWindow(parameters, ...); По сути мы можем создать его (вызвать) в методе какого-либо класса, после чего, его локальные переменные уничтожаются, включая и наш alrtWnd. Ссылка на него потеряется. Как реализовать уничтожение конкретного экземпляра такого класса? Вот как выглядит метод closeWindow() класса InfoWindow Код:
public function closeWindow():Void { |
Объект не может удалить сам себя.
|
А как тогда быть?
У меня нет ссылки на созданный объект. Можно alrtWnd.closeWindow(); Потом delete alrtWnd; Но мы же потеряли ссылку на alrtWnd, после выполнения локального метода, откуда и создавался экземпляр. |
closeWindow удалит лишь мувиклип, а мувиклип не является экземляром InfoWindow.
|
А что мешает создавать окно без ссылки?
|
Просто
new InfoWindow(parameters,...); Eclipse отторгает (MTASC). А как к нему потом обратиться? |
А зачем вам к нему обращаться?
|
Я в таких случаях делаю менеджеры. Т.е. класс с набором статических методов, который и следит за тем, какое окно сейчас открыто, какое его открыло, какое нужно активировать когда текущее закроется и т.п. Т.е. в случае с алертом принцип действий был бы приблизительно такой: какой-то класс порывается создать алерт --> обращается к менеджеру --> менеджер исходя из своих соображений открывает/закрывает/активирует чего нужно --> создает и регистрирует окно. Дальше, когда окно захочет закрыться, оно опять же обратится к менеджеру, который позаботится о том, чтобы нужное окно было удалено/получило фокус и т.д.
|
| Часовой пояс GMT +4, время: 10:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.