Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex-如何获取自定义网格列过滤器编辑器的父级并打开弹出窗口?_Apache Flex_Air_Flash Builder_Popupwindow - Fatal编程技术网

Apache flex Flex-如何获取自定义网格列过滤器编辑器的父级并打开弹出窗口?

Apache flex Flex-如何获取自定义网格列过滤器编辑器的父级并打开弹出窗口?,apache-flex,air,flash-builder,popupwindow,Apache Flex,Air,Flash Builder,Popupwindow,我试图弄清楚如何在我的Air应用程序中打开一个弹出窗口,在一个辅助窗口中,而不是在主应用程序窗口中 我使用的是ReusableFX组件,其中包括一个带有过滤和其他功能的定制DataGrid。当您单击网格中某个列的顶部时,过滤功能将通过PopUpManager显示一个弹出窗口 PopUpManager.addPopUp(this, FlexGlobals.topLevelApplication as DisplayObject); 问题是弹出窗口在主应用程序中打开-我假设是因为“topLevel

我试图弄清楚如何在我的Air应用程序中打开一个弹出窗口,在一个辅助窗口中,而不是在主应用程序窗口中

我使用的是ReusableFX组件,其中包括一个带有过滤和其他功能的定制DataGrid。当您单击网格中某个列的顶部时,过滤功能将通过PopUpManager显示一个弹出窗口

PopUpManager.addPopUp(this, FlexGlobals.topLevelApplication as DisplayObject);
问题是弹出窗口在主应用程序中打开-我假设是因为“topLevelApplication”引用

所以,我需要一种在当前空气中打开此窗口的方法“s:window”

我假设我需要一种方法:this.parent.parent或this.owner.owner——尽管我已经尝试过了,但它似乎不起作用(它说的是空引用)

或者,是否有方法获取当前最顶部的窗口/组件(而不是主应用程序/窗口)

更新: 我决定为该组件创建一个新项目,并添加Air库。现在我可以访问“NativeApplication.NativeApplication.activeWindow”调用。这给了我正确的空气窗口。但是,它似乎不起作用:

PopUpManager.addPopUp(this, NativeApplication.nativeApplication.activeWindow as DisplayObject);
我的弹出窗口没有出现。我这样假设是因为“activeWindow”实际上不是一个DisplayObject?(如果是这样的话,我如何获得DisplayObject?)

更新:
可能是我是()的受害者吗?

嗯,我提出了一些似乎有效的更改,尽管可能有一种更干净的方法来做到这一点-我只是无法找到一种方法来获取对当前air应用程序窗口的引用,除了这种方法(顺便说一句,这是使用ReuableFX自定义flex组件):

首先,在自定义DataGridColumn组件中,我添加了一个公共属性

public var pApp:Object;
接下来,我修改了DropDownFilterHeaderRenderer(扩展HBox,实现IListItemRenderer)、showFilterDropDown方法,就在它调用dropDown.startEdit(列)之前,增加:

column.pApp = parentApplication;
最后,我修改了DropDownFilterEditor(它扩展了FilterEditorBase),该方法启动了它(列:MDataGridColumn)(以前的PopUpManager调用FlexGlobals.topLevelApplication,在Air本机应用程序中打开s:窗口时,该窗口不正确:

var editorInstance:Object = _editor.parent;
var columnInstance:Object = editorInstance.column;
var parAppInstance:Object = columnInstance.pApp;
PopUpManager.addPopUp(this, parAppInstance as DisplayObject);