【发布时间】:2012-02-23 03:16:42
【问题描述】:
我试图弄清楚如何在我的 Air 应用程序中打开一个弹出窗口,在辅助窗口中,而不是在主应用程序窗口中。
我正在使用 ReusableFX 组件,其中包括具有过滤和其他功能的自定义 DataGrid。当您单击网格中列的顶部时,过滤功能会通过 PopUpManager 显示一个弹出窗口。
PopUpManager.addPopUp(this, FlexGlobals.topLevelApplication as DisplayObject);
问题是弹出窗口在主应用程序中打开 - 我假设是因为“topLevelApplication”引用。
所以,我需要一种方法来在当前 Air "s:Window" 中打开这个窗口。
我假设我需要一种方法来向上走:this.parent.parent 或 this.owner.owner - 虽然我已经尝试过,但它似乎不起作用(它说 null 引用)。
或者,有没有办法获取当前最顶层的窗口/组件(不是主应用程序/窗口)?
更新: 我决定为该组件创建一个新项目,并添加 Air 库。现在我可以访问“NativeApplication.nativeApplication.activeWindow”调用。这给了我正确的空气窗口。但是,它似乎不起作用:
PopUpManager.addPopUp(this, NativeApplication.nativeApplication.activeWindow as DisplayObject);
我的弹出窗口没有出现。我假设是因为“activeWindow”实际上不是 DisplayObject? (那么如果是这种情况,我该如何获取 DisplayObject?)
更新: 难道我是this adobe bug?(found here originally)的受害者
【问题讨论】:
标签: apache-flex air flash-builder popupwindow