« 東京周辺の駅近マンション検索 Mansion Finder 2 | Blog Top | Guns N' Roses 来日! »
2006年12月29日
vol.57 マッシュアップでつくるWidget風お天気Flash(後編)
web creators 2007年2月号の「Flash Creative Technique」は「マッシュアップでつくるWidget風お天気Flash」(後編)になります。
今回完成したサンプルは上のようになります。誌面で解説しているサンプルファイルはMdNのFlashクリエイティブ・テクニックからダウンロードすることができます。
外部APIとFlashを組み合わせたマッシュアップをテーマに作った「DEEP Weather Flash ver 0.1 」です。詳しい解説は誌面の方をご覧ください。ブログでは補足的に解説を加えたいと思います。
アプリケーションの設計段階でちょっと考えたのは、日本全国に140カ所以上ある地点IDをどのようにしてスムーズに選ぶことができるか、という点でした。そこで地点を絞り込んでいく手順として「1. 地方を選択(関東地方など)」→「2. 都道府県を選択(東京都など)」→「3. 地点を選択(東京・八丈島など)」のように3つのコンボボックスを使う仕組みにしました。で、地方が決まればその下位区分となる都道府県が決まり、都道府県が決まれば、さらにその下位区分である地点が決まると。逆に言えば、地方が変われば、都道府県も代わり、都道府県が変われば、地点もおのずと変わると。それをどうすればFlash的に実現できるのか、ということですね。
そのための準備として、地点定義XMLの[area.xml]とFlashに読み込んで解析し、データを後で処理しやすいように多次元配列に格納します。それを図解したものがp91の【A-2】です。[地方]-[都道府県]-[地点]はそれぞれ、[親]-[子]-[孫]の関係であるわけで、[area.xml]でもそのように階層構造として記述されているわけですが、それを多次元配列にします。その際にfor文を使います。配列の階層1つに対して1つのfor文が対応するので、
for(i = 0; i < areaNode2.length; i++) {
<area>タグの属性を解析
地方のコンボボックスにラベルと値をセット
for(p = 0; p < prefNode2.length; p++) {
<pref>タグの属性を解析
for(y = 0; y < cityNode2.length; y++) {
<city>タグの属性を解析
}
}
}
といった処理をしているわけです。
都道府県と地点の2つのコンボボックスのそれぞれのラベルと値は、親のコンボボックスの値が変化したときに、多次元配列からデータを取り出し、addItem() メソッドを使ってセットされるようにしています。考えてみれば[area.xml]から任意の地点IDを取り出すために、大変な処理をしているわけでして、これが任意ではなく、あらかじめ決まった地点でよければ、これほど複雑な処理にならずにすみますね。
日付は今日・明日・明後日の3種類しかないので、非常にシンプルです。Where と When が特定されれば、後は前回解説したようにLWWSとRESTでやりとりすれば、お天気情報を取得することができます。
最後に、熱心な読者のみなさま、本年もありがとうございました。来年もいろいろなアイデアとテクニックを駆使したFlashを紹介していきたいと思いますので、よろしくお願いいたします。それでは、よいお年を。
投稿者 kaoru : 2006年12月29日 10:44
