Window

Windowはなぜかインスタンスの使い回しができない。closeしたら二度とopenできない。よって、開こうとするたびにインスタンスを作らなければならない。(Flexのバグとか書いてあった気もする)
もちろん半透明化もできるしドラッグもできる。

TestWindow.mxmlにWindowの記述を書くとする。

呼び出し元の記述

インスタンス確保用。Singletonでもいいかもしれない。

var test : TestWindow = null;
表示

コンストラクタでは値を渡せない。座標設定含め、下記のコメントの部分に記述するべし。

test = new TestWindow();
// ここにtestに値を送るコードを書く。
test.open(アクティブで開くかどうか);
削除

確かcloseは非同期だった気がする。closeされたあとはGCが働いて勝手にnullになるようだが、念のため後処理にtest=null;を入れておきたい。

test.close();
test = null;
すでに表示されているかどうか

多分これが一番簡潔。closedはopen前のWindowに使うとエラーになるので使えない。

var showed : Boolean = test != null;

TestWindowの記述

重要なところだけ。closeするとEvent.CLOSINGが呼ばれる。ここに後処理を記述すればよい。closedイベントではもうWindowのメンバにアクセスできない。

<mx:Window
 closing="onClosing()"
>