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"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
?? ??? ??? ??? xmlns:s="library://ns.adobe.com/flex/spark"
?? ??? ??? ??? creationComplete="init()"
?? ??? ??? ?? backgroundColor="white"
?? ??? ??? ??? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
?? ?<fx:Declarations>
?? ??? ?<!-- 将非可视元素(例如服务、值对象)放在此处 -->
?? ?</fx:Declarations>
?? ?<fx:Script>? ?
?? ??? ?<![CDATA[? ?
?? ??? ?import mx.controls.Label;? ?
?? ??? ?import mx.events.CloseEvent;? ?
?? ??? ?import mx.containers.TitleWindow;? ?
?? ??? ?import mx.managers.PopUpManager;? ?
?? ??? ?
?? ??? ?private var titleWindow:TitleWindow;? ?
?? ??? ?
?? ??? ?private function init():void {? ?
?? ??? ?var label:Label = new Label();? ?
?? ??? ?label.text = "Hello world";? ?
?? ??? ?
?? ??? ?titleWindow = new TitleWindow();? ?
?? ??? ?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);? ?
?? ??? ?}? ?
?? ??? ?
?? ??? ?private function titleWindow_close(evt:CloseEvent):void {? ?
?? ??? ?PopUpManager.removePopUp(titleWindow);? ?
?? ??? ?}? ?
?? ??? ?]]>? ?
?? ?</fx:Script>? ?
?? ?
?? ?<mx:Button label="Launch TitleWindow" click="init()" />? ?
</s:Application>
-
createPopUp代码
?<?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"
?? ??? ??? ??? creationComplete="init()"
?? ??? ??? ??? xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
?? ?<fx:Declarations>
?? ??? ?<!-- 将非可视元素(例如服务、值对象)放在此处 -->
?? ?</fx:Declarations>
?? ?<fx:Script>? ?
?? ??? ?<![CDATA[? ?
?? ??? ?import mx.managers.PopUpManagerChildList;? ?
?? ??? ?import mx.controls.Label;? ?
?? ??? ?import mx.events.CloseEvent;? ?
?? ??? ?import mx.containers.TitleWindow;? ?
?? ??? ?import mx.managers.PopUpManager;? ?
?? ??? ?
?? ??? ?private var titleWindow:TitleWindow;? ?
?? ??? ?
?? ??? ?private function init():void {? ?
?? ??? ?var label:Label = new Label();? ?
?? ??? ?label.text = "Hello world";? ?
?? ??? ?titleWindow = new TitleWindow();? ?
?? ??? ?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);? ?
?? ??? ?}? ?
?? ??? ?
?? ??? ?private function titleWindow_close(evt:CloseEvent):void {? ?
?? ??? ?PopUpManager.removePopUp(titleWindow);? ?
?? ??? ?}? ?
?? ??? ?]]>? ?
?? ?</fx:Script>? ?
?? ?
?? ?<mx:Button label="Launch TitleWindow" click="init()" />? ?
</s:Application>
2.弹出窗口为DataGrid添加新数据
?
(1)Note.as
package??
{??
? public classNote??
? {??
??? public varauthor:String;??
??? public vartopic:String;??
??? public vardescription: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 ANote">?
?<mx:Metadata>?
???[Event(name="SaveNote")]??
?</mx:Metadata>?
?<mx:Script>?
??<![CDATA[?
????importmx.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:Labeltext="Topic"? y="36"x="42"/>?
? <mx:TextInput id="topic"width="150" x="84" y="34"/>?
? <mx:Labeltext="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,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>
转载自http://blog.sina.com.cn/s/blog_5c4558600100d3im.html