Кто должен удалить всплывающее окно, вызывающее приложение или само всплывающее окно? - PullRequest
0 голосов
/ 28 февраля 2011

Вот сценарий ... У меня есть приложение с кнопкой «Открыть».Когда вы нажимаете кнопку «Открыть», открывается окно TitleWindow (через PopUpManager) диалоговое окно, позволяющее выбрать запись.В этом окне вы можете либо нажать «ОК» после выбора записи, либо отменить диалоговое окно, которое должно закрыть окно.

Каков наилучший способ справиться с этим, зная, что мне нужно вернутьномер записи в основное приложение?Прямо сейчас у меня есть главное приложение, открывающее пользовательское окно TitleWindow.В TitleWindow у меня есть событие, которое срабатывает, когда пользователь нажимает «Ok» и выбирается запись.Вот как основное приложение прослушивает recordId.Что мне интересно, так это то, могу ли я сделать что-то вроде этого:

private function RecordSelected():void
{
    this.selectedRecord = someControl.selectedIndex;

    this.dispatchEvent(new Event("RecordSelected"));

    PopUpManager.removePopup(this);
}

Будет ли экземпляр TitleWindow оставаться активным до тех пор, пока событие не будет обработано основным приложением, или он может быть удален до основногоприложение полностью обрабатывает событие (таким образом, заканчивая исключением нулевой ссылки)?

В качестве альтернативы, лучше ли закрыть окно в обработчике событий следующим образом:

private function titleWindow_RecordSelected(event:Event)
{
    var openDialog:CustomTitleWindow = CustomTitleWindow(e.currentTarget);

    this._selectedRecord = openDialog.selectedRecord;

    PopUpManager.removePopup(openDialog);
}

Я тожеИнтересно, если отправка выбора в мероприятии это лучший способ сделать это тоже.Любое понимание будет оценено.Заранее спасибо.

1 Ответ

1 голос
/ 28 февраля 2011

Каков наилучший способ справиться с этим, зная, что мне нужно вернуть номер записи в основное приложение?

Лучшее всегда субъективно, но я обычно занимаюсь закрытием окнав компоненте окна;а затем отправить событие с соответствующими данными (в этом случае Record No) обратно в приложение.Похоже, ваши 90% там.Вместо того, чтобы отправлять событие Event, создайте пользовательский класс Event с вашим recordID.Тогда не имеет значения, находится ли всплывающее окно в памяти или нет, когда вам нужно использовать идентификатор записи.

...