Flexでは、ダイアログをPopUpManagerを使って作成することができる。
また、作成時に画面の中央にダイアログを表示したい場合には

[AS]
private function createDialog():void{
var popup:IFlexDisplayObject = PopupManager.createPoopup([親画面],[Dialogのクラス],true);
PopupManager.centerPopup(popup);
}
[/AS]

のようにすればよい。
ここで、[Dialogのクラス]は、通常MXMLのようなものをさすと思う。

でも、小さい画面で開いていたが、ダイアログが見えないので画面を最大にしたとしても、
このままではダイアログは中央には移動しない。

ここで、親画面のリサイズとともにダイアログも中央の移動してほしい場合には
画面の更新とともに、以下のようなメソッド(関数)を作成しておき実行する。

[AS]

private function updateEnd():void{
if(_curPopup){
PopUpManager.centerPopUp(_curPopup);
}
}
[/AS]
ここで、_curPopupは先の作成時の処理を

[AS]
private var _curPopup:IFlexDisplayObject = null;
private function createDialog():void{
_curPopup = PopupManager.createPoopup([親画面],[Dialogのクラス],true);
PopupManager.centerPopup(_curPopup);
}
[/AS]

のように変えておけばよい。

また、画面の更新時の処理はMXMLであれば、

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
	updateComplete="updateEnd()" >

のように、updateCompleteのプロパティ(イベント)を使うのが楽だ。
ちなみに、このイベントは正確にはmx.events.FlexEvent.UPDATE_COMPLETEになるので、AS内であればこのイベントで処理をする。

関連記事

Leave a Reply

Spam protection by WP Captcha-Free

ソフトウェア&ライブラリ



ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2009年10月
« 9月   11月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

カスタム検索
RSS
Add to Google
にほんブログ村 IT技術ブログへ