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()" >