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>
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, 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>