flex PopUpManager类 
 
   PopUpManager 类 PopUpManager 类ActionScript 类名称mx.managers.PopUpManager 
 
   PopUpManager 类的方法摘要 
 
   PopUpManager.createPopUp() 创建弹出窗口。 
 
   PopUpManager.deletePopUp() 删除由调用PopUpManager.createPopUp() 而创建的弹出窗口。 
 
   PopUpManager.createPopUp(parent,class,modal [,initobj,outsideEvents]) 
 
   参数:parent 对弹出窗口所基于的窗口的引用。 
 
   class 对要创建的对象的类的引用。 
 
   modal 一个布尔值,它指示该窗口是(true) 否(false) 是模式 
 
   initobj 一个包含初始化属性的对象。此参数是可选的。 
 
  outsideEvents 一个布尔值,指示在用户单击窗口以外的区域时是(true) 否(false) 触发事件。此参数是可选的。
 
 
 
 1.PopUpManager--createPopUp与addPopUp区别
 
 createPopUp:是上来先设置好弹出方式,然后在new出来一个TitleWindow的对象,然后通过此对象设置他的变现形式。
 
 addPopUp:是先new出来对象,设置好表现形式,然后在选择弹出来的方式。
 
 一定要注意new对象与弹出方式的先后顺序。
 
 addPopUp代码
 
 
- <?xml version="1.0"encoding="utf-8"?>
- 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- 
layout="vertical"
- 
verticalAlign="middle"
- 
backgroundColor="white"
- 
creationComplete="init()">
- <mx:Script> 
- <![CDATA[ 
- 
importmx.controls.Label; 
- 
importmx.events.CloseEvent; 
- 
importmx.containers.TitleWindow; 
- 
importmx.managers.PopUpManager; 
- 
privatevar titleWindow:TitleWindow; 
- 
privatefunction init():void{ 
- 
varlabel:Label = newLabel(); 
- 
label.text= "Hello world";
- 
titleWindow= newTitleWindow(); 
- 
titleWindow.title= "Custom title";
- 
titleWindow.showCloseButton= true;
- 
titleWindow.width= 240; 
- 
titleWindow.height= 180; 
- titleWindow.addEventListener(CloseEvent.CLOSE,titleWindow_close); 
- titleWindow.addChild(label);
- 
PopUpManager.addPopUp(titleWindow,this,true);
- PopUpManager.centerPopUp(titleWindow);
- } 
- 
privatefunction titleWindow_close(evt:CloseEvent):void{ 
- PopUpManager.removePopUp(titleWindow);
- } 
- ]]> 
- </mx:Script> 
- 
<mx:Button label="LaunchTitleWindow" click="init()"/> 
- </mx:Application> 
createPopUp代码:
 
 
- <?xml version="1.0"encoding="utf-8"?>
- 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- 
layout="vertical"
- 
verticalAlign="middle"
- 
backgroundColor="white"
- 
creationComplete="init()">
- <mx:Script> 
- <![CDATA[ 
- 
importmx.managers.PopUpManagerChildList; 
- 
importmx.controls.Label; 
- 
importmx.events.CloseEvent; 
- 
importmx.containers.TitleWindow; 
- 
importmx.managers.PopUpManager; 
- 
privatevar titleWindow:TitleWindow; 
- 
privatefunction init():void{ 
- 
varlabel:Label = newLabel(); 
- 
label.text= "Hello world";
- 
titleWindow= newTitleWindow(); 
- 
titleWindow= TitleWindow(PopUpManager.createPopUp(this,TitleWindow,true));
- 
titleWindow.title= "Custom title";
- 
titleWindow.showCloseButton= true;
- 
titleWindow.width= 240; 
- 
titleWindow.height= 180; 
- titleWindow.addChild(label);
- titleWindow.addEventListener(CloseEvent.CLOSE,titleWindow_close); 
- PopUpManager.centerPopUp(titleWindow);
- } 
- 
privatefunction titleWindow_close(evt:CloseEvent):void{ 
- PopUpManager.removePopUp(titleWindow);
- } 
- ]]> 
- </mx:Script> 
- 
<mx:Button label="LaunchTitleWindow" click="init()"/> 
- </mx:Application> 
2.弹出窗口为DataGrid添加新数据
 
 
 
 (1)Note.as
 
 package 
 { 
public class Note 
{ 
public var author:String; 
public var topic:String; 
public var description:String; 
} 
 } 
 
 
(2)AddNote.mxml
 
 <?xml version="1.0" encoding="utf-8"?> 
 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" width="348" height="218" 
title="Add A Note"> 
<mx:Metadata> 
[Event(name="SaveNote")] 
</mx:Metadata> 
<mx:Script> 
<![CDATA[ 
import mx.managers.PopUpManager; 
//PopUpManager.createPopUp() 创建弹出窗口
private function close():void 
{ 
PopUpManager.removePopUp(this); 
} 
private function save():void 
{ 
this.dispatchEvent(new Event("SaveNote")); 
} 
]]> 
</mx:Script> 
<mx:Label text="Author" x="35" y="10"/> 
<mx:TextInput id="author" width="150" x="84" y="8"/> 
<mx:Label text="Topic" y="36" x="42"/> 
<mx:TextInput id="topic" width="150" x="84" y="34"/> 
<mx:Label text="Description" y="62" x="10"/> 
<mx:TextArea id="description" width="234" height="77" x="84" y="61"/> 
<mx:Button label="Cancel" click="close()" x="193" y="146"/> 
<mx:Button label="Save" click="save()" x="264" y="146"/> 
 </mx:TitleWindow >
 
 
 
 (3)Test.mxml
 
 <?xml version="1.0" encoding="utf-8"?>
 <mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="500" height="300"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.collections.ArrayCollection;
[Bindable]
private var notes:ArrayCollection = new ArrayCollection();
private var addNoteScreen:AddNote;
private function init():void
{
addNoteScreen = new AddNote();
addNoteScreen.addEventListener("SaveNote",saveNote);
}
private function addNote():void
{
PopUpManager.addPopUp(addNoteScreen,this,true);
PopUpManager.centerPopUp(addNoteScreen);
addNoteScreen.author.text = "";
addNoteScreen.topic.text = "";
addNoteScreen.description.text = "";
}
private function saveNote(e:Event):void
{
var note:Note = new Note();
note.author = addNoteScreen.author.text;
note.topic = addNoteScreen.topic.text;
note.description = addNoteScreen.description.text;
notes.addItem(note);
PopUpManager.removePopUp(addNoteScreen);
}
]]>
</mx:Script>
<mx:Panel title="Notes"
width="100%" height="100%"
layout="vertical" horizontalAlign="right"
paddingTop="3" paddingLeft="3" paddingRight="3" paddingBottom="3">
<mx:DataGrid dataProvider="{notes}" width="100%" height="100%">
<mx:columns>
<mx:DataGridColumn headerText="Author" dataField="author" width="80"/>
<mx:DataGridColumn headerText="Topic" dataField="topic" width="100"/>
<mx:DataGridColumn headerText="Description" dataField="description"/>
</mx:columns>
</mx:DataGrid>
<mx:Button label="Add Note" click="addNote()"/>
</mx:Panel>
 </mx:Application>