加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex弹出窗口的三种方式

发布时间:2020-12-15 04:40:17 所属栏目:百科 来源:网络整理
导读:在网上普遍存在的文章中,说Flex 中有两种弹出窗口,如下: 1. 最简单的警告窗口 你需要先导入Alert类: import mx.controls.Alert; 然后在想要弹出警告的时候使用: Alert.show(“你确定要退出系统吗?”,“确认”,Alert.YES|Alert.NO,null,logout) 参数说明
在网上普遍存在的文章中,说Flex 中有两种弹出窗口,如下:
1. 最简单的警告窗口
你需要先导入Alert类: import mx.controls.Alert;
然后在想要弹出警告的时候使用:
Alert.show(“你确定要退出系统吗?”,“确认”,Alert.YES|Alert.NO,null,logout)
参数说明:第一个参数是要显示的文本,第二个参数是窗口的标题,这两个参数是最经常用的。第三个参数是按钮,默认是两个:YEW 和 NO,当然你也可以自定义,比如Alert.CANCEL,第四个参数是父窗口,默认为null。第五个参数是窗口关闭后调用的函数名,如果你想要在点击确定之后触发什么事件,就需要定义这个参数。这里我要调用logout,请注意,不要在这里写logout()。(没有括号)logout 函数如下:
private function logout(event:CloseEvent):void
{
? ? if(event.detail == Alert.YES)
? ? {
? ? ? ? // 具体操作 ? ? ? ? ? ?
? ? }
}
因为这个函数是触发的,所以参数是一个CloseEvent 。“event.detail == Alert.YES” 这行代码判断点击的是不是确定按钮。CloseEvent 中的 detail 属性专门判断点击了哪个按钮,这样就可以用户的点击控制代码。
简单的Alert 用法就是这样,更多相关信息请看帮助文档。
2.弹出窗口
? 这个就比较强大了,需要使用一个类,那就是PopUpManager,同样,使用前你需要先导入:
import mx.managers.PopUpManager;
? 然后你就要创建一个Compoment 作为弹出窗口,这个没什么特别的,创建一个普通的Compoment 就行,这里我创建了一个文件叫做PopWindow,就是一个简单的Canvas,里面就放一个图片。代码如下:
PopWindow.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="100">
? ? <mx:Script>
? ? ? ? <![CDATA[
? ? ? ? ? ? import mx.managers.PopUpManager;
? ? ? ? ]]>
? ? </mx:Script>
? ? <mx:Image x="0" y="0" source="assets/face.PNG" click="PopUpManager.removePopUp(this)" width="90" height="82"/>
? ??
</mx:Canvas>
其中 removePopUp 是 PopUpManager 的一个方法,就是移除当前弹出的窗口,这里我设置了点击图片的时候就移除弹出窗口。接下来我们在主程序中创建并弹出窗口:
? var pop : PopWindow= PopWindow(PopUpManager.createPopUp(this,PopWindow,true));
? ?这就完成了,这个pop 是一个PopWindow(就是刚才创建的Component的文件名)类型的变量,由于PopUpManager 的 createPopUp 返回的是一个 IFlexDisplayObject,你需要将其强制转换成为PopWindow类型才能赋值给 pop 变量。下面详细说明一下 createPopUp 的这几个参数:
第一个参数是弹出窗口的父窗体,这个相信大家都明白。
第二个参数是弹出窗口的类名,也就是组件的文件名,在Flex中一个MXML文件也对应一个类。PopUpManager是根据这个类来创建弹出对话框。
第三个参数是模态标记。如果是 true ,就创建一个模态对话框;否则创建的就是一个非模态的对话框。
PopUpManager 还有一个参数,不过不常用,具体请参考帮助文档。

然后你就可以对弹出对话框操作了,想要移除就用 removePopUp(pop)。另外,如果是非模态的,可能在点击程序其它部分的时候窗口就不见了,但是它并没有移除,怎么让它出来呢?这个时候就需要 PopUpManager ?的另外一个方法: bringToFront(),这个方法可以把窗口放到最前。你可以控制,让程序第一次的时候是创建对话框,以后就是把窗口放到最前。


3.为了显示好看,我又无意发现了第三种方式,和第二种相似:


public function showWindow(event:Event):void{ //var pop : PopWindow= PopWindow(PopUpManager.createPopUp(this,true)); //var pop:ImportWindow = ImportWindow(PopUpManager.createPopUp(this,ImportWindow,true)); //var pop:ImportWindow = ImportWindow(PopUpManager.addPopUp(registerwindow,this)); var importwindow:ImportWindow=new ImportWindow(); var W_width:Number=this.stage.stageWidth; ?? var H_heigth:Number=this.stage.stageHeight;? importwindow.x=(W_width - importwindow.width) / 2; ? ? importwindow.y=(H_heigth - importwindow.height) / 2; PopUpManager.addPopUp(importwindow,this,true); }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读