如何关闭Flex中的所有弹出窗口?

2024-04-03

我想通过按下按钮来显示图像上的所有弹出窗口(已经弹出并单独关闭),并希望在按下另一个按钮时关闭所有这些窗口。任何帮助表示赞赏。


尝试这个:

package com.devahead.utils
{
    import flash.display.DisplayObject;

    import mx.collections.ArrayCollection;
    import mx.core.Application;
    //import mx.core.FlexGlobals; // NOTE: use this import for Flex 4.x and higher
    import mx.core.IChildList;
    import mx.core.UIComponent;
    import mx.managers.PopUpManager;

    public class PopUpUtils
    {
        /**
         * Returns all the popups inside an application. Only the popups whose base
         * class is UIComponent are returned.
         *
         * @param applicationInstance
         *   Application instance. If null, Application.application is used.
         * @param onlyVisible
         *   If true, considers only the visible popups.
         * @return All the popups in the specified application.
         */
        public static function getAllPopups(applicationInstance: Object = null,
            onlyVisible: Boolean = false): ArrayCollection
        {
            var result: ArrayCollection = new ArrayCollection();

            if (applicationInstance == null)
            {
                // NOTE: use this line for Flex 4.x and higher
                //applicationInstance = FlexGlobals.topLevelApplication;

                // NOTE: use this line for Flex 3.x and lower
                applicationInstance = Application.application;
            }

            var rawChildren: IChildList = applicationInstance.systemManager.rawChildren;

            for (var i: int = 0; i < rawChildren.numChildren; i++)
            {
                var currRawChild: DisplayObject = rawChildren.getChildAt(i);

                if ((currRawChild is UIComponent) && UIComponent(currRawChild).isPopUp)
                {
                    if (!onlyVisible || UIComponent(currRawChild).visible)
                    {
                        result.addItem(currRawChild);
                    }
                }
            }

            return result;
        }

        /**
         * Checks if an application has visible popups. Only the popups whose base
         * class is UIComponent are considered.
         *
         * @param applicationInstance
         *   Application instance. If null, Application.application is used.
         * @return True if there are visible popups in the specified application,
         *         false otherwise.
         */
        public static function hasVisiblePopups(applicationInstance: Object = null): Boolean
        {
            if (applicationInstance == null)
            {
                // NOTE: use this line for Flex 4.x and higher
                //applicationInstance = FlexGlobals.topLevelApplication;

                // NOTE: use this line for Flex 3.x and lower
                applicationInstance = Application.application;
            }

            var rawChildren: IChildList = applicationInstance.systemManager.rawChildren;

            for (var i: int = 0; i < rawChildren.numChildren; i++)
            {
                var currRawChild: DisplayObject = rawChildren.getChildAt(i);

                if ((currRawChild is UIComponent) && UIComponent(currRawChild).isPopUp
                    && UIComponent(currRawChild).visible)
                {
                    return true;
                }
            }

            return false;
        }

        /**
         * Closes all the popups belonging to an application. Only the popups
         * whose base class is UIComponent are considered.
         *
         * @param applicationInstance
         *   Application instance. If null, Application.application is used.
         * @return The list of the closed popups.
         */
        public static function closeAllPopups(applicationInstance: Object = null): ArrayCollection
        {
            var allPopups: ArrayCollection = getAllPopups(applicationInstance);

            for each (var currPopup: UIComponent in allPopups)
            {
                PopUpManager.removePopUp(currPopup);
            }

            return allPopups;
        }
    }
}

我从以下方面得到了它:http://www.devahead.com/blog/2009/12/getting-all-the-popups-in-a-flex-application/ http://www.devahead.com/blog/2009/12/getting-all-the-popups-in-a-flex-application/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何关闭Flex中的所有弹出窗口? 的相关文章

  • AS3 中的 Flash 翻页卷曲效果

    我正在开发一个项目 需要使用 Flash 开发翻页 卷曲 效果 如下例所示 http www actionscript org showMovie php id 459http www actionscript org showMovie
  • Flex 构建的 SWF 不再工作,错误 2048、2046、2032

    我对这个问题真的很困惑 而且我对 Flex 还很陌生 基本上 我尝试使用 mxmlc 构建的任何内容现在都无法运行 根据我的操作给出上述三个错误 30 分钟前它还在工作 我一直在花时间试图找出发生了什么变化 我重新下载了 Flex SDK
  • 在自定义 Flex 组件中绘制叠加层

    如何在 Flex 中创建一个自定义 MXML 组件 该组件基于现有组件 但在某些情况下会在该现有组件上绘制覆盖层 理想情况下 新组件应该基于 派生自 现有组件 以便现有组件的出现可以用新组件替换 我尝试在新组件中重写 updateDispl
  • 推荐一个适用于 Flex 和 AIR 的 HTML 友好的 RichTextEditor? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 检查用户的 Flash 播放器是否具有音频功能。 (功能.hasAudio)

    是否可以检查用户是否有声卡 我找到了 Capability hasAudio 但不知道这是否是我应该查看的值 trace Capabilities hasAudio 指定系统是否具有音频功能 此属性始终true 文档对此并不清楚 但我认为
  • ActionScript 3 中的圆形滑块

    我希望在 ActionScript 中添加一个圆形滑块 非常类似于这一页 http interface eyecon ro demos drag vr html shows 它最终会改变对象的色调 返回 CMY 值 但如果它只是吐出程度 我
  • Flex DataGrid:根据另一个值更改值?

    我在 Flex 中有一个 DataGrid 其中一列是复选框 另一列是数值 单击该复选框时 数值应更改 如果未选中该复选框 则数值应更改为 0 如果选中该复选框 则应更改为预定义的最小值 这是我的代码
  • 如何在 Flex 中对 PHP 字符串使用换行符

    这是我的 MXML
  • 如何在 Flex 3 中使用 htmlText 作为单选按钮标签

    我需要在 Flex 3 中为单选按钮显示一些粗体单词 如下所示 选项 1 你好world 选项2 Hello world 我看到单选按钮的标签没有 htmlText 属性 有人对完成这个要求有什么建议吗 Thanks Anji 蒂莫菲 达维
  • SQLite 参数 - 不允许表名作为参数

    我正在通过 Flex 在 AIR 中开发一个应用程序 但我没有发现 SQLite 出了什么问题 我习惯了 MySQL 参数有效 但仅在某些情况下有效 这是内置的针对sql注入的卫生系统的一部分吗 谢谢你的帮助 Works sqlite IN
  • 用圆形减去(遮盖掉?)路径

    我正在使用 Spark Path 在 Flex 中绘制一条路径 我想从这条路径中减去一个圆形 如下图所示 道路又黑又宽 有任何想法吗 我尝试使用 Shape 对象创建蒙版 但无法完全创建其中有圆孔的蒙版 找到了 不涉及口罩 我拿了Path并
  • as3 事件 - 类型强制失败?

    我正在将事件从孩子发送到父母 swf 它工作正常 直到我使用预加载器 swf 加载父级 然后父级停止从子级获取事件 我现在收到此错误 TypeError Error 1034 Type Coercion failed cannot conv
  • 从另一个域加载外部图像

    是否可以从另一个域加载图像 jpg png gif 并操作像素 我想当下载 复制图像时它就在我的域中 使用加载器并将内容添加到图像组件时 我在调试器中收到错误 我想这里有一些跨域策略在起作用 但在继续之前我需要更确定它是如何工作的 我想 如
  • 求反射角的弧度

    我正在编写一个简单的 Flash 游戏 只是为了学习 Flash 并提高我的数学能力 但我对弧度感到非常困惑 因为这对我来说是新的 到目前为止 我所做的是使用鼠标 单击并释放 使用弧度向该方向射出一个球 现在我想要发生的是 当球撞到墙壁时
  • 从 Air Native 扩展返回结构

    是否可以从本机代码返回结构 返回 int 或 boolean 相对简单 但是如何将更复杂的结构返回给动作脚本 您可以返回任何可以在本机代码中表示为 FREObject 的对象 这实际上包括任何 Actionscript 类或 Actions
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • Flash 照片上传 - 从网络摄像头拍摄照片 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在应用程序创建完成时设置 Spark DataGrid 列的默认排序(Flex 4.5)

    我有一个包含多个列的 Spark DataGrid 组件 我希望我的应用程序默认按 DataGrid 中第一列的降序排列 我想使用单击顶部标题一次时发生的内置默认排序 我不需要对我正在使用的 ArrayCollection 进行排序或更改比
  • 使用ExternalInterface和IE从JavaScript获取Flash中的当前URL

    我正在尝试获取 Flash 播放器当前所在的 URL 不是 swf 文件的 URL 而是浏览器指向的 URL 到目前为止我已经使用过 var st String ExternalInterface call window location
  • 具有可变颜色线的柔性折线图

    我有一个相当简单的需求来创建折线图 我想要绘制图表的数据基于单个每日数据点 xml数据示例

随机推荐