总共3个文件,一个名为Parent的application,一个名为Child的titleWindow,还有一个是自定义的一个事件。
Parent.mxml
<?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">
<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.managers.PopUpManager;
[Bindable]
public var ac:ArrayCollection=new ArrayCollection([
{name:"周结",sex:"男",age:"23"},
{name:"小静",sex:"女",age:"19"},
{name:"小二",sex:"男",age:"20"},
{name:"大牛",sex:"男",age:"44"}
]);
private var child:Child = new Child();
protected function button1_clickHandler(event:MouseEvent):void
{
PopUpManager.addPopUp(child,this,true);
PopUpManager.centerPopUp(child);
child.addEventListener(MyEvent.SAVE_OK,saveSuccess);
}
private function saveSuccess(e:MyEvent):void
{
ac.addItem(e.data);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<mx:AdvancedDataGrid id="adg1" designViewDataType="flat" dataProvider="{ac}" width="455" height="240" x="307" y="79">
<mx:columns>
<mx:AdvancedDataGridColumn headerText="姓名" dataField="name"/>
<mx:AdvancedDataGridColumn headerText="年龄" dataField="age"/>
<mx:AdvancedDataGridColumn headerText="性别" dataField="sex"/>
</mx:columns>
</mx:AdvancedDataGrid>
<s:Button label="新增一条" click="button1_clickHandler(event)" x="518" y="365"/>
</s:Application>
Child.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
protected function button1_clickHandler(event:MouseEvent):void
{
var obj:Object = new Object();
obj.name = dname.text;
obj.age = age.text;
obj.sex = sex.text;
this.dispatchEvent(new MyEvent(MyEvent.SAVE_OK,obj));
PopUpManager.removePopUp(this);
}
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:TextInput x="135" y="45" id="dname"/>
<s:TextInput x="135" y="83" id="age"/>
<s:TextInput x="135" y="127" id="sex"/>
<s:Button x="164" y="196" label="保存" click="button1_clickHandler(event)"/>
</s:TitleWindow>
MyEvent.as
package event
{
import flash.events.Event;
public class MyEvent extends Event
{
public static const SAVE_OK:String="saveOk";
private var _data:Object;
public function MyEvent(type:String,data:Object=null, bubbles:Boolean=false,cancelable:Boolean=false)
{
this._data=data;
super(type, bubbles, cancelable);
}
public function get data():Object
{
return _data;
}
public function set data(value:Object):void
{
_data = value;
}
}
}