(4)デバッグ実行してみる
ここまで作成したら、一度デバッグを実行してみます。メインメニューから[実行 > デバッグ]をクリックすると、デバッグ設定ダイアログが表示されます。ダイアログ下部にある、「起動方法」で[デスクトップ上]を指定して、実行してみましょう。
デスクトップ上にAIR for Android専用のシュミレーター(ADL)が起動し、デバッグが行われます。
![実行してみたところ](http://cz-cdn.shoeisha.jp/static/images/article/5872/5872_fig19.gif)
もちろん、実機で実行することも可能です。方法は後ほど紹介します。
(5)[重さ]タブの画面を実装する
以上で[長さ]タブ画面の作成は完了したので、他のタブの画面も実装してみましょう。[重さ]のタブは、「View2.mxml」を編集します。これが[長さ]のタブと違うのは、中に表示する単位だけなので、「View1.mxml」のソースを全部コピーして、「View2.mxml」に貼り付けます。そして、単位を表すMXMLを以下のように書き換えます。
<fx:Declarations> <!-- 非ビジュアルエレメント (サービス、値オブジェクトなど) をここに配置 --> <s:ArrayCollection id="unit_weight"> <fx:Object label="グラム(g)" value="1" /> <fx:Object label="キログラム(kg)" value="1000" /> <fx:Object label="ミリグラム(mg)" value="0.001" /> <fx:Object label="貫(カン)" value="3750" /> <fx:Object label="斤(キン)" value="600" /> <fx:Object label="トン(t)" value="1000000" /> <fx:Object label="カラット(ct)" value="0.2" /> </s:ArrayCollection> </fx:Declarations>
さらに、二行目にある<s:View>
タグのtitle属性を「重さ」と書き換えます。
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:supportClasses="spark.skins.mobile.supportClasses.*" title="重さ">
続けて、Listのlist1、list2のデータプロバイダーを「{unit_weight}
」と変更します。
![重さタブも完成](http://cz-cdn.shoeisha.jp/static/images/article/5872/5872_fig21.gif)
(6)[温度]タブの画面を実装する
最後に[温度]タブを作成します。温度は、摂氏・華氏・絶対温度をそれぞれ計算する形になります。View3.mxmlを開いたら、Labelを3つ、その横にTextInputを3つ配置します。
配置が完了したら、次のように各コンポーネントを設定します。
コンポーネント | ID | テキスト |
Label | (なし) | 摂氏(℃) |
TextInput | textC | (なし) |
Label | (なし) | 華氏(F) |
TextInput | textF | (なし) |
Label | (なし) | 絶対温度(K) |
TextInput | textK | (なし) |
さらに、TextInputごとに、プロパティパネルの[変更時]の項目でイベントハンドラを生成します。それぞれのイベントハンドラは、次のように記述します。これは、各温度単位への変換式を記述したものです。
protected function textC_changeHandler(event:TextOperationEvent):void { var v:Number = parseFloat(textC.text); textF.text = String(v * 9 / 5 + 32); textK.text = String(v + 273.15); } protected function textF_changeHandler(event:TextOperationEvent):void { var v:Number = parseFloat(textF.text); var c:Number = (v-32) * 5 / 9; textC.text = String(c); textK.text = String(c + 273.15); } protected function textK_changeHandler(event:TextOperationEvent):void { var v:Number = parseFloat(textK.text); var c:Number = v - 273.15; textC.text = String(c); textF.text = String(c*9/5+32); }
Flash Builder 4.5から実機で実行してみる
最後に、実機で実行してみましょう。Flash Builder 4.5では、Android端末をUSBでつないで実行するだけで、アプリケーションが自動的に実機へ転送されインストールが行われます(このときAndroid端末側のアプリケーションの設定で[提供元不明のアプリを使えるようにする]にチェックしておきます)。
メインメニューの[実行 > デバッグ構成]をクリックしてダイアログが表示されたら、起動方法を「デバイス上(アプリケーションをUSB経由のデバイスにインストール)」に変更してデバッグを実行します。このとき、Android端末に、AIRランタイムの最新版が自動的にインストールされます。