自定义窗口组件 MyTitleWindow 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2009/10/23/displaying-a-popup-spark-titlewindow-container-in-flex-4/ -->
<s:Group name="MyTitleWindow"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
width="374" height="202" xmlns:mx2="library://ns.adobe.com/flex/mx"
>
<fx:Script>
<![CDATA[
import mx.core.IFlexDisplayObject;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
private static var instance:MyTitleWindow = new MyTitleWindow;
private static var _show:Boolean = false;
public static function show():void
{
if ( _show ) hide();
PopUpManager.addPopUp(instance, TestPopUpManager.app,true);
PopUpManager.centerPopUp(instance);
_show = true;
}
public static function hide():void
{
if ( !_show ) return;
PopUpManager.removePopUp(instance);
_show = false;
}
]]>
</fx:Script>
<mx2:AdvancedDataGrid x="14" y="18" id="adg1" designViewDataType="tree">
<mx2:columns>
<mx2:AdvancedDataGridColumn headerText="Column 1" dataField="col1"/>
<mx2:AdvancedDataGridColumn headerText="Column 2" dataField="col2"/>
<mx2:AdvancedDataGridColumn headerText="Column 3" dataField="col3"/>
</mx2:columns>
</mx2:AdvancedDataGrid>
<s:Button x="323" y="45" label="Button" width="41" click="{hide()}"/>
</s:Group>
应用中代码为:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
initialize="{app = this;}"
>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
public static var app:TestPopUpManager;
]]>
</fx:Script>
<s:Button x="183" y="227" label="Button" click="{MyTitleWindow.show()}"/>
</s:Application>
即可调用