Flex有2中弹出窗口:Alert.show()和通过PopUpManager产生出来的弹出窗口,其中Alert我们可以称之为弹出对话框主要用于信息提示,而用PopUpManager产生出来的弹出窗口才是本文需要讨论的议题。
1、 弹出窗口如何弹出、移除
利用PopUpManager,可用PopUpManager.centerPopUp弹出对话框,PopUpManager.removePopUp移除对话框。
2、 对话框返回值如何处理
假设现有一对话框Dialog,该Dialog是在Module(假设Module为ModuleA,ModuleA中有一变量user_id)中触发的,现要求在Dialog执行完毕之后将user_id赋值给ModuelA,我们该如何处理,这里我认为5种方法可以处理。
1) 通过Application来处理
在Application中定义一个public变量user_id,则可以在对话框Dialog中赋值给Application. user_id变量,然后ModuleA中去读取Application. user_id变量即可。
2) 通过Dialog.owner来处理,这里强调owner
触发Dialog代码为:
var dialog: Dialog= PopUpManager.createPopUp(this, Dialog,true)
as Dialog;
dialog.owner = this;
//
然后在dialog中进行ModuleA的user_id变量赋值,代码如下:
ModuleA(this.owner). user_id = “用户ID”;
3) 通过自定义事件来处理
自定义一个事件,然后在Dialog中新建一个事件,将user_id作为参数置入到事件中,然后派发该事件。
4) 通过全局变量来处理,类似Application变量处理方法
定义全局变量,然后在Dialog中置user_id变量,在ModuleA中读取user_id变量即可。
5) 通过parentDocument来处理
在dialog中进行ModuleA的user_id变量赋值,代码如下:
parentDocument.user_id = “用户ID”;
3、 对话框返回值建议处理方法
1) 该返回值影响Application的话,建议用全局变量来处理;
2) 该返回值只是当前窗体的话,建议用parentDocument进行处理;