ダイアログを出したり閉じたり

参考にさせていただいたのは以下のサイト。

http://aoi-project.com/wiki/flex2book/index.php?cmd=read&page=Tips%2F%A5%C0%A5%A4%A5%A2%A5%ED%A5%B0%A4%CE%A5%DD%A5%C3%A5%D7%A5%A2%A5%C3%A5%D7

PopUpManagerを使って、無事、自分で作ったダイアログ(TitleWindowを継承)が出せました。
ありがとうございました m(._.)m

あとは、OKボタンなどによる処理を実装するのにCloseEventを使用してみます。
# 先週のことなので、どこを見たのか忘れてしまった <備忘録失格

ダイアログ側

// OKボタンをクリックしたときに呼ばれる
private function ok():void {
    // CloseEventを作成してディスパッチ
    var e:CloseEvent = new CloseEvent(CloseEvent.CLOSE, false, false, 1);
    dispatchEvent(e);
}

ダイアログの呼び出し側

    var form:InputForm = PopUpManager.createPopUp(this, InputForm, true) as InputForm;
    // formに色々設定
    form.addEventListener(CloseEvent.CLOSE, closeInputForm);
    PopUpManager.centerPopUp(form);
}
			
private function closeInputForm(ev:CloseEvent):void {
    if (ev.detail != -1) {
        var form:InputForm = ev.currentTarget as InputForm;
        // 処理
    }
}

# InputFormは自作したクラスです

CloseEventのコンストラクタの最終引数がイベントのdetailになるので、それを見て処理を行う例になっています。

細かいですが、TitleWindowのclose="PopUpManager.removePopUp(this)"によりダイアログを閉じると、detailは-1になりますが、直接PopUpManager.removePopUp(this)を呼んだ場合は、CloseEventは飛ばないようです。