ポップアップウインドウとか、たまに必要になるのに、そのたびに作り方忘れるのでメモ。
まずはポップアップで開くウインドウをコンポーネントとして作ります。
1 2 3 4 5 6 7 8 9 10 11 12 | < ?xml version="1.0" encoding="utf-8"?> < mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" showCloseButton="true" close="closePopup()" width="400" height="300"> < mx:Script> < ![CDATA[ import mx.managers.PopUpManager; private function closePopup():void{ PopUpManager.removePopUp(this); } ]]> < /mx:Script> < /mx:TitleWindow> |
簡単に作るならTitleWindowがいいかな?
showCloseButtonで閉じるボタンができるので楽チンです。
closeイベントを取得して、PopupManagerから自分自身を削除するようにすると、ポップアップが消せます。
そしたらポップアップを開く側を。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < ?xml version="1.0" encoding="utf-8"?> < mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> < mx:Script> < ![CDATA[ import mx.managers.PopUpManager; public function doPopup():void{ var popup_window:PopupWindow = new PopupWindow(); // PopupManagerにインスタンスを登録 PopUpManager.addPopUp(popup_window, this); // 画面中央へ表示 PopUpManager.centerPopUp(popup_window); } ]]> < /mx:Script> < mx:Button label="Popup" click="doPopup()"/> < /mx:Application> |
とりあえずサンプルなので、ポップアップを開くためのボタンだけ配置。この辺は適宜ですね。
addPopUpの引数は、
第一引数がwindow:IFlexDisplayObject。
ポップアップさせるインスタンス
第二引数がparent:DisplayObject。
ポップアップ表示の親となるDisplayObject。次のcenterPopUpのときの中心座標を計算する基準になるっぽい。
第三引数がmodal:Boolean = false 。
trueだと、ポップアップ表示中は、ポップアップ以外が操作不能になります。
第四引数はchildList:String = null 。
与えられる引数は以下の三種。
PopUpManagerChildList.APPLICATION
PopUpManagerChildList.PARENT
PopUpManagerChildList.POPUP
APPLICATIONはSTAGE以下に、PARENTは第二引数のparent以下に、POPUPはSystemManager以下にDisplayObjectを追加します。
他の方法としては、
centerPopUp(popUp:IFlexDisplayObject):void
このメソッドでは、クラスネームを引数で渡します(インスタンスではなく)。
ん~、リファレンスのPopupManagerの説明が微妙にわかりづらいんですよね。
Add Your Comment
a
ign on Purple Sili
therUnique Jeans