1.父窗口
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.events.DragEvent;
import mx.events.ChildExistenceChangedEvent;
import mx.collections.ArrayCollection;
import mx.managers.PopUpManager;
import mx.controls.Alert;
import mx.events.CloseEvent;
[Bindable]
public var initDG:ArrayCollection=new ArrayCollection([
{Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99},
{Artist:'Pavement', Album:'Brighten the Corners', Price:11.99}]);
public function alertDiv():void
{
var win:tanchu = new tanchu();
win=tanchu(PopUpManager.createPopUp(this,tanchu,true));
//win.data=seq;
//win.addEventListener(CloseEvent.CLOSE,addObject);
PopUpManager.centerPopUp(win);
win.addEventListener(MyEvent.SAVE_OK,addObject);
//this.systemManager.addEventListener(CloseEvent.CLOSE,addObject);
}
public function addObject(evt:MyEvent):void
{
Alert.show("ok");
var obj:Object={Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99};
initDG.addItem(obj);
// myGrid.invalidateList();
//myGrid.validateNow();
}
]]>
</mx:Script>
<mx:VBox width="100%" height="100%" backgroundColor="white">
<mx:Button label="弹出窗口" click="alertDiv()"/>
<mx:DataGrid id="myGrid" width="350" height="200" dataProvider="{initDG}">
<mx:columns>
<mx:DataGridColumn dataField="Album"/>
<mx:DataGridColumn dataField="Price"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Application>
2.子窗口
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.controls.Alert;
import mx.events.CloseEvent;
public function closetanchu():void
{
var obj:Object={Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99};
//var showdd:showDataGrid=new showDataGrid();
//showdd.initDG.addItem(obj);
//showdd.addObject();
//Alert.show(showdd.initDG.length+"");
//this.dispatchEvent(new MyEvent(MyEvent.SAVE_OK,obj));
this.dispatchEvent(new MyEvent(MyEvent.SAVE_OK));
PopUpManager.removePopUp(this);
//dispatchEvent(new Event(CloseEvent.CLOSE));
}
]]>
</mx:Script>
<mx:Button label="欢迎" click="closetanchu()"/>
</mx:Canvas>
3.自定义事件
package
{
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;
}
}
}