「mx.managers.PopUpManager」を利用して「mx.containers.TitleWindow」をポップアップするときにデータを渡す方法を紹介します。
TextInputに入力した内容をTilteWindowのTextに表示します。
sample1.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="400">
<mx:Script>
<![CDATA[
import mx.containers.TitleWindow;
import mx.managers.PopUpManager;
private function popup():void{
var tw:titleWindow = new titleWindow();
mx.managers.PopUpManager.addPopUp(tw,this,true);
mx.managers.PopUpManager.centerPopUp(tw);
tw.init(myTextInput.text);
}
]]>
</mx:Script>
<mx:TextInput x="10" y="10" id="myTextInput"/>
<mx:Button x="178" y="10" label="ボタン" click="popup()"/>
</mx:Application>
sample2.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="226" height="128" showCloseButton="true" close="close()">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
public function init(str:String):void{
myText.text = str;
}
private function close():void{
mx.managers.PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:Text x="10" y="10" text="文字" width="186" id="myText" />
</mx:TitleWindow>
次にTitleWindowのTextInputに入力した内容を親のTextに渡す方法を紹介します。
ポイントは、TilteWindowをポップアップ表示した後に、TilteWindowが閉じられるのを監視するためにaddEventListenerを追加します。
sample3.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="popup()" width="600" height="400">
<mx:Script>
<![CDATA[
import mx.containers.TitleWindow;
import mx.managers.PopUpManager;
private function popup():void{
var tw:titleWindow = new titleWindow();
mx.managers.PopUpManager.addPopUp(tw,this,true);
mx.managers.PopUpManager.centerPopUp(tw);
tw.addEventListener(Event.REMOVED,twClose);
}
private function twClose(e:Event):void{
var tw:titleWindow = e.target as titleWindow;
myText.text = tw.myTextInput.text;
}
]]>
</mx:Script>
<mx:Text x="10" y="10" id="myText"/>
<mx:Button x="178" y="10" label="ボタン" click="popup()"/>
</mx:Application>
sample4.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="226" height="128" showCloseButton="true" close="close()">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private function close():void{
mx.managers.PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:TextInput x="10" y="10" text="" width="122" id="myTextInput" />
<mx:Button x="140" y="8" label="OK" click="close()"/>
</mx:TitleWindow>
この記事は、以前ブログで公開していた記事、内容を再編集したものです。
ActionScript 1.0/2.0/3.0とFlex 3の内容が中心です。