PopUpManager 类主要是用来弹出新的窗口或者对话框。我们主要使用它的一些方法来创建UI窗口,并设置窗口的弹出方式,以及删除窗口。
PopUpManager 类弹出窗口的2种方式如下:
1 使用 addPopUp 。(先new出来对象,设置好表现形式,然后在选择弹出来的方式。一定要注意new对象与弹出方式的先后顺序),核心代码如下:
var label:Label = new Label();
label.text = "Hello world";
titleWindow = new TitleWindow();
titleWindow.title = "Custom title";
titleWindow.showCloseButton = true;
titleWindow.width = 240;
titleWindow.height = 180;
titleWindow.addEventListener(CloseEvent.CLOSE, titleWindow_close);
titleWindow.addChild(label);
PopUpManager.addPopUp(titleWindow, this, true);
PopUpManager.centerPopUp(titleWindow);
//如下代码。居中弹出。
titleWindow.x=FlexGlobals.topLevelApplication.stage.stageWidth/2- titleWindow.width/2;
titleWindow.y=FlexGlobals.topLevelApplication.stage.stageHeight/2- titleWindow.height/2;
addPopUp方法的一些参数说明:
parent一个引用,引用弹出Flex窗口所在的Flex窗口。
class一个引用,引用要创建的对象的类。
modal一个布尔值,它表明该Flex窗口是(true)否(false)是模式的。
initobj一个包含初始化属性的对象。此参数是可选的。
outsideEvents一个布尔值,指明在用户单击Flex窗口以外的区域时是(true)否(false)触发事件。此参数是可选的。
其中,前三个参数是必须的,后两个是可选的。第二个参数要和你的mxml文件名一致,第三个参数如果选择是则不允许弹出Flex窗口没关闭前操作父Flex窗口,反之则允许。
当子 Flex 窗口被创建的时候父 Flex 窗口就获得了一个子 Flex 窗口的实例, 例如我在子 Flex 窗口中做如下定义: varname:String=" 哈哈 "; 。在父 Flex 窗口中可以使用 popup.name 引用该变量。 同样,在子 Flex 窗口中我们可以使用 "parent" 来引用父 Flex 窗口中定义的变量,例如我在父 Flex 窗口中定义 varage:String="24"; 。在子 Flex 窗口中可以使用 parent.age 引用这个变量。2 使用createPopUp。(先设置好弹出方式,然后在new出来一个TitleWindow的对象,然后通过此对象设置他的变现形式。)
var label:Label = new Label();
label.text = "Hello world";
titleWindow = new TitleWindow();
titleWindow = TitleWindow(PopUpManager.createPopUp(this,TitleWindow,true));
titleWindow.title = "Custom title";
titleWindow.showCloseButton = true;
titleWindow.width = 240;
titleWindow.height = 180;
titleWindow.addChild(label);
titleWindow.addEventListener(CloseEvent.CLOSE, titleWindow_close);
PopUpManager.centerPopUp(titleWindow);
//如下代码。居中弹出。
titleWindow.x=FlexGlobals.topLevelApplication.stage.stageWidth/2- titleWindow.width/2;
titleWindow.y=FlexGlobals.topLevelApplication.stage.stageHeight/2- titleWindow.height/2;
//全屏显示
titleWindow.explicitWidth=FlexGlobals.topLevelApplication.stage.stageWidth;
titleWindow.explicitHeight=FlexGlobals.topLevelApplication.stage.stageHeight;