- 2007-10-13 (Sat) 23:52
- FlexFramework | Flex3 | Flex2
ポップアップウインドウとか、たまに必要になるのに、そのたびに作り方忘れるのでメモ。
まずはポップアップで開くウインドウをコンポーネントとして作ります。
< ?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から自分自身を削除するようにすると、ポップアップが消せます。
そしたらポップアップを開く側を。
< ?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の説明が微妙にわかりづらいんですよね。
- Newer: [Flex]ViewStackの画面切り替え
- Older: [AS3]zip解凍
Comments:1
- Anonymous 08-06-02 (Mon) 11:51
-
Add Your Comment
Trackbacks:0
- Trackback URL for this entry
- http://www.jinten.net/blog/archives/24/trackback
- Listed below are links to weblogs that reference
- [Flex]ポップアップウインドウの作り方 from Jinten Blog