`
lucene3212
  • 浏览: 138077 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

FLEX 通过单例模式,轻松关闭所有PopUpManager弹出的窗口

    博客分类:
  • java
阅读更多
    <h1 class="ts">怎么关闭所有popupmanager弹出的窗口?</h1> 
这一个貌似很简单,缺又凭空增加麻烦和工作量的事情.
 
如果你按照下面这种模式,那么关闭所有弹出窗口又变得那么简单.
 
需求: 假设当应用程序出现错误.需要将用户弹出窗口全部关闭.恢复到初始状态.
 
 
实现思路:
 
1. 定义单例类. 用来保存所有弹出窗口的数组
 
2. 将弹出事件封装,由其去创建弹出窗口.和保存到数组对象
 
两个重要类:
 
popupeffect.as(弹出事件封装类)
 
 
package com.javaeye.jhaij{				import mx.managers.popupmanager;		public class popupeffect   	{   				public function popupeffect()   		{   		}   				public static function show(parent:*,control:*,modal:boolean=false):void   		{   			popupmanager.addpopup(control,parent,modal);   			popupmanager.centerpopup(control);   			popupmodellocator.getinstance().push(control);					}   				public static function hide(control:*):void   		{   			popupmanager.removepopup(control);			popupmodellocator.getinstance().pop(control);		}   	}   }  
 
popupmodellocator.as (保存数组对象的单例类,关闭全部调用)
 
package com.javaeye.jhaij{	import com.adobe.utils.arrayutil;	[bindable]	public class popupmodellocator	{				private static var instance:popupmodellocator;		//保存pop出来的窗口		private var popuparray:array ;						public function datagridmodellocator()		{			if(instance==null){				instance = this;			}		}				public static function getinstance():popupmodellocator{			if(instance==null){				instance = new popupmodellocator();			}			return instance;		}				public function push(control:*):void{			if(!popuparray){				popuparray = new array;			}			popuparray.push(control);		}				public function pop(control:*):void{			if(popuparray){				arrayutil.removevaluefromarray(popuparray,control);			}		}				public function popall():void{			if(popuparray&amp;&amp;popuparray.length>0){				popupeffect.hide(popuparray[popuparray.length-1]);				popall();			}else{				return;			}		}	}}
 
 
使用方法:
 
a. 弹出窗口创建入口: popupeffect.show
 
var p:popwindow = new popwindow;				popupeffect.show(this,p);				p.setfocus();
 b. 弹出窗口单个关闭调用:  popupeffect.hide
 
close="popupeffect.hide(this);"
 
c. 弹出窗口全部关闭调用: popall - 注意是popupmodellocator的方法
 
popupmodellocator.getinstance().popall();
 
 
依赖类库:
 
as3corelib.swc
 
工程编译是用sdk3.5编译的. 你可以修改成4 因为都是as文件.完全向上兼容.
 
<br><img src="http://dl.iteye.com/upload/attachment/491928/2c6ca20c-41fc-3267-8494-04492a926d17.png" alt="">
 
0
3
分享到:
评论

相关推荐

    Flex 弹出窗口代码

    最后,通过`PopUpManager`的`addPopUp`方法添加弹出窗口,并使用`centerPopUp`方法将其居中显示。`true`参数表示弹出窗口是模态的,即用户必须关闭窗口才能与主应用程序交互。 为了实现弹出窗口的关闭功能,可以在...

    flex 自动弹出窗口(右下角弹出,右上角弹出)

    总结,实现“自动弹出窗口”在Flex中主要依赖`PopUpManager`类,通过设置坐标、触发条件和动画效果,可以创建出右下角或右上角弹出的窗口。这样的设计能有效地传递信息,同时保持用户界面的整洁和互动性。理解并熟练...

    FLEX关于TIMER控件和POPUPMANAGER弹出框的例子

    有代码,可以改变datagrid的每行的颜色,popupManager的移动和消失效果

    Flex--主程序与弹出窗口之间传递数据

    3. 在弹出窗口关闭时,可能需要将结果返回给主程序,同样可以通过事件或回调函数实现。 四、最佳实践 在设计Flex应用时,确保数据传递的清晰性和可维护性至关重要。遵循以下最佳实践: - **避免全局变量**:尽...

    flex仿qq右边弹出提示消息功能

    通过实例化PopUpManager并传递组件作为参数,可以将任何Flex组件作为弹出窗口显示。 实现QQ风格的弹出消息,我们需要关注以下几个关键点: 1. **动画效果**:QQ的弹出消息通常伴随着平滑的动画效果,如淡入淡出、...

    Flex 弹出窗口的数据传输

    在Flex中,我们可以使用`PopUpManager`类来创建和管理弹出窗口。弹出窗口与主窗口之间的数据通信可以通过事件监听或者依赖注入来实现。例如,当用户选择列表中的一个项时,可以触发一个事件,将选中项的数据传递给弹...

    Flex Mobile自定义实现的弹出对话框

    在Flex Mobile中,可以使用PopUpManager类来控制弹出对话框的行为。通过PopUpManager.addPopUp()方法添加对话框,然后通过设置其parent属性来确定其相对于舞台的位置。 5. **动画效果**:为了提供更好的用户体验,...

    flex PopUpManager使用说明

    综上所述,`PopUpManager`是Flex中管理和控制弹出窗口不可或缺的工具,通过它你可以轻松地创建、定位和管理各种弹出窗口,提升用户体验。正确理解和使用`PopUpManager`能够帮助构建更加灵活和动态的Flex应用程序。

    FLEX4 s:dataGrid单元格弹出可文本

    4. **显示自定义组件**:根据需要,你可以使用`PopUpManager`类将自定义组件以弹出窗口的形式显示出来: ```actionscript var customComponent:CustomComponent = new CustomComponent(); PopUpManager.addPopUp...

    flex拖拽形成柱状图,点击弹出图片窗口,柱状图用法

    在本文中,我们将深入探讨如何使用Adobe Flex技术创建一个具有拖拽功能的柱状图,以及如何实现点击柱状图后弹出图片窗口的功能。Flex是一个开源的、基于ActionScript的框架,主要用于构建富互联网应用程序(RIA)。...

    Flex弹出窗口请求Action函数示例

    在Flex中,弹出窗口是通过PopUpManager类实现的,这允许开发者创建模态或非模态的窗口,用以执行特定的任务或显示特定信息。 “请求Action函数”指的是在Flex中进行事件处理时触发的服务器端操作。Action函数通常与...

    Flex打开新窗口将主窗口数据传给子窗口然后返回

    PopUpManager类是用于管理Flex中的弹出窗口的一个类。它提供了一些方法来添加、移除和管理弹出窗口。例如,在本例中,我们就使用了"PopUpManager.addPopUp(wnd,this,false);"方法来以非模态方式弹出子窗口。 知识点...

    flex通过remote连接后台

    在提供的文件“AmazonWindowDemo”中,我们可以推测这是一个示例应用,演示了如何运用以上技术,如通过RemoteObject连接后台服务、使用PopupManager创建弹出窗口、应用自定义字体等。通过分析这个项目,开发者可以...

    做flex项目的小技巧

    - 使用`PopUpManager.removePopUp()`方法关闭弹出窗口。 ```actionscript PopUpManager.removePopUp(this); ``` #### 二、页面跳转——多视图切换 在Flex应用中,多视图切换是一种常见的用户体验优化手段,它...

    Flex开门,关门,翻转,效果

    在Flex中,PopupManager类负责管理这些弹出窗口,而动画效果则可以通过添加自定义的打开和关闭动画来增强用户体验。开发者可能通过改变Popup的大小、位置,甚至添加旋转等变换来实现各种炫酷的弹出效果。 总的来说...

    应用于AIR中的弹出窗口管理类

    模仿Flex中的PopUpManager类写的一个应用于AIR中的弹出窗口管理类,包含完整的FlashBuilder4.6测试项目。 存在问题: 1、修改舞台尺寸后,生成的遮罩可能无法正确的覆盖整个舞台 2、主窗口的关闭、最大化、最小化...

    flex 特效拖动Panel变Window

    3. Window组件:Window在Flex中通常指的是PopUpManager管理的ModalWindow或NonModalWindow,它们是弹出式的独立窗口,可以浮于其他组件之上,并有自己的关闭按钮和其他窗口特性。 4. 拖放(Drag and Drop):实现拖动...

    Flex TileList图片展示(相册)

    - PopUpManager是Flex提供的一个工具类,用于管理弹出窗口(如对话框、菜单等)的生命周期。在这个案例中,它可能被用来实现图片的预览功能。 - 当用户点击某个图片时,可能通过PopUpManager创建一个新的窗口或者...

    flex TitleWindow之间数据传输

    首先,我们要理解在Flex中,除了Alert对话框之外,大多数弹出窗口功能都可以通过TitleWindow组件来实现。为了在主应用(Application)与TitleWindow之间传输数据,我们通常采用以下步骤: 1. **创建TitleWindow实例**...

Global site tag (gtag.js) - Google Analytics