郵便番号から住所補助

郵便番号から住所補助をしてくれるFlexプログラムを作ってみました。
こんな感じ
http://moeten.info/flex/20080812_yuubinTest/bin-release/main.html

入力補助ボタンを押すと住所を補助してくれます。
簡単な説明
まずはこちら。

こちらのURL(http://zip.cgis.biz/xml/zip.php)にzn=[郵便番号]を付加してGETで送信するとxmlで結果が返ってきます。

http://zip.cgis.biz/xml/zip.php?zn=1000006

結果xmlはこんな感じ

<?xml version="1.0" encoding="utf-8" ?>
<ZIP_result>
  <result name="ZipSearchXML" />
  <result version="1.01" />
  <result request_url="http%3A%2F%2Fzip.cgis.biz%2Fxml%2Fzip.php%3F%26zn%3D1000006" />
  <result request_zip_num="1000006" />
  <result request_zip_version="none" />
  <result result_code="1" />
  <result result_zip_num="1000006" />
  <result result_zip_version="0" />
  <result result_values_count="1" />
<ADDRESS_value>
  <value state_kana="トウキョウト" />
  <value city_kana="チヨダク" />
  <value address_kana="ユウラクチョウ" />
  <value company_kana="none" />
  <value state="東京都" />
  <value city="千代田区" />
  <value address="有楽町" />
  <value company="none" />
</ADDRESS_value>
</ZIP_result>

また、Flash特有のクロスドメイン問題があるのでPHPなどでプロキシしてあげます。

http://moeten.info/flex/20080502_twitterAir/myproxy.php?u=http://zip.cgis.biz/xml/zip.php

あと、都道府県のComboBoxの指定方法なんですが、うまくいかなかったので、for文で回して指定しました。

//コンボボックスの指定
tidBox.selectedIndex= getTid( hts.lastResult.ADDRESS_value.value.@state ) ;
//都道府県からコンボボックスを指定
//ここなんとか簡単にしたい。selectedItemとかgetItemIndexかなぁ
private function getTid(todouhuken:String):int{
    for( var i:int = 0; i < tidArr.length ; i ++ ){
        if( tidArr[i].label == todouhuken )return i;
    }
    return -1;
}

ちょびっと便利なAPIの紹介でした。