- 2007年12月22日 16:52
- ActionScript 3.0 | MashUp
最近ブログの更新が遅くなってきているわけですが
出来れば、月10記事くらいは担保していきたいと思う今日この頃。
なんか技術話ばかりでリファレンスと併読するくらいしか
使い道が無いブログなわけですが
今回は今作ってるものの中で
役に立ちそうなものを公開しようかと思います。
まぁ、なんだ、その
結局技術話です。
出来れば、月10記事くらいは担保していきたいと思う今日この頃。
なんか技術話ばかりでリファレンスと併読するくらいしか
使い道が無いブログなわけですが
今回は今作ってるものの中で
役に立ちそうなものを公開しようかと思います。
まぁ、なんだ、その
結局技術話です。
今、仕事とはまったく関係ないところで
ぐるなびWEBサービスを使っていろいろと作ろうとしています。
完成したらこのサイト上で公開するつもりなのでお楽しみに。
おそらくURLは
http://mashup.flair4.jp/hogehoge/ とかになると思われます。
公開日は未定!来年3月までには出したい。
で、じゃあ結局なに公開すんの?ってことなんですが
今回は、ぐるなびWEBサービスを始めて使うAS3使いの人達には
そこそこ便利なんじゃないかと思われる、通信系をまとめたクラスです。
ちなみに、僕としてもまだ作り途中なので
不具合やら要望やらあるかもわかりませんが
その辺はコメントにあげていただけると非常に嬉しいです。
というかそれが目的のひとつだったりする・・・
とりあえず使い方の説明
細かい説明は省略、とりあえず動くとこまで
詳細は希望があれば書きます。
■ STEP1
ぐるなびWEBサービスのアカウントを取得していない方は
以下から取得してください。
http://api.gnavi.co.jp/api/use.htm
■ STEP2
以下のZIPを作業する場所なりなんなりに解凍してください。
実際に物作る.flaと同階層だと話は楽かも。
GnaviWebService_ver0.1.zip
■ STEP3
コーディングを行います。
今回はサンプルとして、以下の3つを行うドキュメントクラスを書いてみます。
1.エリアマスタ等すべてのマスタデータを取得
2.東京、和食、20件、住所に新宿を含む の条件で検索結果を取得
3.検索結果の1件目の店舗名をtrace
以下がコードになります。
やたら妙な改行が多いのは、できるだけ横スクロールをなくすためです。
package{
// ドキュメントクラスはMovieClipをextendsする必要がある
import flash.display.MovieClip;
// 各種データクラスの import. 面倒なので * で指定.
import jp.flair4.mashup.gnavi.data.*;
// 各種イベントクラスのimport. 面倒なので * で指定.
import jp.flair4.mashup.gnavi.events.*;
// リクエスト用のパラメタクラス.必ず import してください.
import jp.flair4.mashup.gnavi.net.RestSearchParam;
// いろいろまとめて簡略化するために作ったラップクラス.
// これを使わない場合結構コード量が増えます.
import jp.flair4.mashup.gnavi.GnaviWebService;
/**
* テスト用のドキュメントクラス.
*/
public class TestDocumentClass extends MovieClip{
// WEBサービスクラス.
private var _gnavi:GnaviWebService;
// 各種マスタデータクラス.
private var _areaMst:AreaMst;
private var _prefMst:PrefMst;
private var _categoryLargeMst:CategoryLargeMst;
private var _categorySmallMst:CategorySmallMst;
/**
* コンストラクタ.
*/
public function TestDocumentClass(){
// WEBサービスクラスのインスタンスを作成.
// アクセスキーが必要.
_gnavi = new GnaviWebService( "アクセスキーを記述." );
// 初期化完了時のイベントリスナを追加.
_gnavi.addEventListener(
GnaviWebServiceEvent.INITIALIZED, _onInit
);
// 初期化の実行. 各種マスタデータを取ってきてくれる.
_gnavi.initialize();
}
/**
* 初期化完了時のイベントリスナ.
*/
private function _onInit( evt:GnaviWebServiceEvent ):void{
// 各種マスタデータの保持.
_areaMst = evt.getAreaMst();
_prefMst = evt.getPrefMst();
_categoryLargeMst = evt.getCategoryLargeMst();
_categorySmallMst = evt.getCategorySmallMst();
// 検索用イベントリスナの設定. 成功時(上)と失敗時(下).
_gnavi.addEventListener(
RestSearchEvent.COMPLETE, _onSearchComplete
);
_gnavi.addEventListener(
DataIOErrorEvent.REST_SEARCH_ERROR, _onSearchError
);
// 検索を開始. 検索はRestSearchParamクラスを使います.
// 検索時に必要なプロパティ記述を補助してくれます。
// (コード補間があればですが・・・)
var param:RestSearchParam = new RestSearchParam();
// エリアマスタから東京都のエリアコードを取得し追加.
param.pref = _prefMst.getPrefCodeByPrefName("東京都");
// 大業種マスタから和食の大業種コードを取得し追加.
param.category_l =
_categoryLargeMst.getCategoryLargeCodeByName("和食");
// 住所の条件に新宿を追加.
param.address = "新宿";
// 表示件数を20件に設定.
param.hit_per_page = 20;
// レストランを検索する.
_gnavi.searchRestaurant( param );
}
/**
* 検索完了時に実行される関数.
* @param evt
*/
private function _onSearchComplete( evt:RestSearchEvent ):void{
// 検索結果の一件目の店舗名をtraceする. これで完了.
trace(evt.getSearchResult().rest[0].name);
}
/**
* 検索失敗時に実行される関数.
* @param evt
*/
private function _onSearchError( evt:DataIOErrorEvent ):void{
// エラー内容を trace する.
trace( evt.errorContent );
}
}
}
こんな感じです。
他にもいろいろと便利な機能は作っているのですが今日はこの辺で
希望が多かったりコメントをいただければ追記するかも。
ですが、まだまだ日々訂正を加えているクラスなので
不具合もありますし、仕様変更はバンバン行います。
なので後々動かなくなっちゃっても怒らないでください(切実)
また、ここはこうがいいよーとかご教授していただける方
ぜひともコメントお願いいたします。
- Newer: あけました
- Older: AS3.0 Array拡張時の注意点