TitleWindow的参数传递方法有两种:
程序代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import flash.geom.Point;
import flash.events.Event;
private var point1:Point = new Point();
private function openWin():void
{
var doctypes:Array = ["*.as", "*.mxml", "*.swc"]
var login:Win3=Win3(PopUpManager.createPopUp(this, Win3 , true)); //此处的Win3为弹出窗口的名称
login.title="我的标题";
login.targetComponent=tin; //接收返回值
login.myArray=doctypes;
PopUpManager.centerPopUp(login);
}
]]>
</mx:Script>
<mx:Panel id="p1" x="97" y="65" width="800" height="600" layout="absolute" title="弹出窗口测试">
<mx:Button id="myButton" x="257" y="302" label="Login" click="openWin()"/>
<mx:Text id="returnValue" text="" />
<mx:Label x="162" y="98" text="3333" width="245"/>
<mx:TextInput x="208" y="167" id="tin"/></mx:Panel>
</mx:Application>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.containers.TitleWindow;
import flash.geom.Point;
import flash.events.Event;
private var point1:Point = new Point();
private function openWin():void
{
var doctypes:Array = ["*.as", "*.mxml", "*.swc"]
var login:Win3=Win3(PopUpManager.createPopUp(this, Win3 , true)); //此处的Win3为弹出窗口的名称
login.title="我的标题";
login.targetComponent=tin; //接收返回值
login.myArray=doctypes;
PopUpManager.centerPopUp(login);
}
]]>
</mx:Script>
<mx:Panel id="p1" x="97" y="65" width="800" height="600" layout="absolute" title="弹出窗口测试">
<mx:Button id="myButton" x="257" y="302" label="Login" click="openWin()"/>
<mx:Text id="returnValue" text="" />
<mx:Label x="162" y="98" text="3333" width="245"/>
<mx:TextInput x="208" y="167" id="tin"/></mx:Panel>
</mx:Application>
弹出窗口:
程序代码
程序代码
<?xml version="1.0"?>
<!-- containers/layouts/myComponents/ArrayEntryForm.mxml -->
<mx:TitleWindow xmlns:mx=" http://www.adobe.com/2006/mxml"
showCloseButton="true"
width="200" borderAlpha="1"
close="removeMe();">
<mx:Script>
<![CDATA[
import mx.controls.TextInput;
import mx.managers.PopUpManager;
[Bindable]
public var myArray:Array;
public var targetComponent:TextInput;
<!-- containers/layouts/myComponents/ArrayEntryForm.mxml -->
<mx:TitleWindow xmlns:mx=" http://www.adobe.com/2006/mxml"
showCloseButton="true"
width="200" borderAlpha="1"
close="removeMe();">
<mx:Script>
<![CDATA[
import mx.controls.TextInput;
import mx.managers.PopUpManager;
[Bindable]
public var myArray:Array;
public var targetComponent:TextInput;
//返回内容并关闭窗口
private function submitData():void {
targetComponent.text = String(cb1.selectedItem);
removeMe();
}
//关闭窗口
private function removeMe():void {
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:ComboBox id=" cb1" dataProvider="{myArray}"/>
<mx:HBox>
<mx:Button label="OK" click="submitData();"/>
<mx:Button label="Cancel" click="removeMe();"/>
</mx:HBox>
</mx:TitleWindow>
private function submitData():void {
targetComponent.text = String(cb1.selectedItem);
removeMe();
}
//关闭窗口
private function removeMe():void {
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:ComboBox id=" cb1" dataProvider="{myArray}"/>
<mx:HBox>
<mx:Button label="OK" click="submitData();"/>
<mx:Button label="Cancel" click="removeMe();"/>
</mx:HBox>
</mx:TitleWindow>
从同颜色的代码可以看出传递关系!
另一种方法是通过事件来传递参数:
程序代码
<?xml version="1.0"?>
<!-- containers/layouts/MainArrayEntryFormEvents.mxml -->
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import flash.events.Event;
public var pop1:Win4;
public function displayForm():void {
var doctypes:Array = ["*.as", "*.mxml", "*.swc"]
pop1 = Win4(PopUpManager.createPopUp(this, Win4, true));
pop1.title="Select File Type";
pop1.showCloseButton=true;
pop1.addEventListener("close", removeMe);
pop1["cancelButton"].addEventListener("click", removeMe);
pop1["okButton"].addEventListener("click", submitData);
pop1.myArray = doctypes;
PopUpManager.centerPopUp(pop1);
}
private function submitData(event:Event):void {
ti1.text = String(pop1.cb1.selectedItem);
removeMe(event);
}
private function removeMe(event:Event):void {
PopUpManager.removePopUp(pop1);
}
]]>
</mx:Script>
<mx:VBox>
<mx:TextInput id="ti1" text=""/>
</mx:VBox>
<mx:Button id="b1" label="Select File Type" click="displayForm();"/>
</mx:Application>
弹出窗口:
程序代码
<?xml version="1.0"?>
<!-- containers/layouts/myComponents/ArrayEntryFormEvents.mxml -->
<mx:TitleWindow xmlns:mx=" http://www.adobe.com/2006/mxml"
showCloseButton="true"
width="200"
borderAlpha="1">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
[Bindable]
public var myArray:Array;
]]>
</mx:Script>
<mx:ComboBox id="cb1" dataProvider="{myArray}"/>
<mx:HBox>
<mx:Button id=" okButton" label="OK"/>
<mx:Button id=" cancelButton" label="Cancel"/>
</mx:HBox>
</mx:TitleWindow>
这种方法似乎更为灵活!