次にMXMLファイルにプログラムを記述します。プログラムは「<mx:Script>」から「</mx:Script>」の間に記述します。
そこで以下のように、リスト「nengou_list」で選ばれている値のデータと入力された年をエディタ「wa_txt」から参照して西暦を計算し、ラベル「result_txt」に表示するという処理を記述します。
<mx:Script><![CDATA[
private function getWareki():void
{
var year:int = nengou_list.selectedItem.data;
year += parseInt(wa_txt.text) - 1;
result_txt.text = "西暦" + year.toString() + "年";
}
]]></mx:Script>
最後に「List」と「TextInput」に「change="getWareki()"」というイベントを追加すればプログラムは完成です。
<?xml version="1.0"?>
<!-- Simple example to demonstrate the List Control -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script><![CDATA[
private function getWareki():void
{
var year:int = nengou_list.selectedItem.data;
year += parseInt(wa_txt.text) - 1;
result_txt.text = "西暦" + year.toString() + "年";
}
]]></mx:Script>
<!-- 年号のデータ -->
<mx:Model id="nengou">
<items>
<item label="明治" data="1868"/>
<item label="大正" data="1912"/>
<item label="昭和" data="1926"/>
<item label="平成" data="1989"/>
</items>
</mx:Model>
<!-- パネルの中にコンポーネントを配置 -->
<mx:Panel title="和暦→西暦変換" height="300" width="300"
paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">
<mx:List id="nengou_list" width="100%"
dataProvider="{nengou.item}"
change="getWareki()"/>
<mx:TextInput id="wa_txt" change="getWareki()"/>
<mx:Label text="西暦xxxx年" id="result_txt"/>
</mx:Panel>
</mx:Application>
このプログラムを「wareki.mxml」という名前で保存します。「C:\test」に保存した場合コマンドプロンプトを起動して以下のコマンドを実行すると、プログラムがコンパイルされFlashファイル「wareki.swf」が生成されます。
> cd C:\test
> mxmlc wareki.mxml
図3:和暦変換プログラムの完成
|