_AS3でWebAPIを利用する

AS3を使ってWebAPIを利用しようと思います。

今回はホットペッパーのWeb サービスを利用しました。
ホットペッパー | リクルートWEBサービス

AS側
package{
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;

	public class LoadXML extends EventDispatcher {
		private var keyN:String = "任意のkey";//APIのkey
		public static const LOAD_COMPLETE:String = "load_complete";
		private var xmlLoader:URLLoader;
		private var hotPaperXML:XML;
		private var ns:Namespace = new Namespace("http://webservice.recruit.co.jp/HotPepper/");
		private var apiUrl:String;
		private var shopName:Array = new Array();

		//コンストラクタ
		//youtubeのAPIのURLを引数に。
		function LoadXML(url:String):void {
			xmlLoader = new URLLoader();
			xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
			xmlLoader.addEventListener(Event.COMPLETE, xmlComplete);
			//読み込み完了以外にもいくつかイベント処理が用意されています。
			//xmlLoader.addEventListener(ProgressEvent.PROGRESS, xmlOnLoad);
			//xmlLoader.addEventListener(Event.OPEN, xmlLoadStart);

			//URLにkeyを付与
			apiUrl = url + "?key=" + keyN + "&large_area=z011";
			var urlReq:URLRequest = new URLRequest(apiUrl);
			xmlLoader.load(urlReq);
		}

		//xmlLoad終了時の処理hotPaperXMLに読み込んだXMLを格納
		private function xmlComplete(e:Event):void {
			hotPaperXML = new XML(xmlLoader.data);
			//デフォルトの名前空間設定
			default xml namespace = ns;
			xmlLoader.removeEventListener(Event.COMPLETE, xmlComplete);
			//xmlLoader.removeEventListener(ProgressEvent.PROGRESS, onXMLloadStart);
			//xmlLoader.removeEventListener(Event.OPEN, onXMLloadStart);
			readXML()
		}

		//hotPaperXMLから必要な情報を読みとり、配列に格納。その後イベント処理が完了したことを
		//クラスの呼び出し元に配信。
		private function readXML():void{
			/*
			*  名前空間設定
			*  var hogeNS:Namespace = hotPaperXML.namespace("hoge");
			*  <hoge:shop></hoge:shop>にアクセスする場合は
			*   『hogeNS::shop』でアクセスする
			*/
			for (var i:uint = 0; i < hotPaperXML.shop.length(); i++) {
				shopName.push(hotPaperXML.shop[i].name);
			}
			dispatchEvent(new Event(LOAD_COMPLETE));
		}

		//情報を公開するためのメソッド。
		public function getShopName():Array{return shopName}

	}
}
Flash側
var my_xml:LoadXML = new LoadXML("http://webservice.recruit.co.jp/hotpepper/gourmet/v1/");

my_xml.addEventListener(LoadXML.LOAD_COMPLETE, xmlLoadComplete);
var shopNames:Array = new Array();
function xmlLoadComplete(e:Event):void{
		trace("XML読み込み完了");
		shopNames = my_xml.getShopName();
		trace(shopNames[0]);
}

このエントリーをTwitterでつぶやく (投稿画面に飛びます)

Comment Form
 

Trackback:0

TrackBack URL for this entry
http://paphead.com/mt/mt-tb.cgi/10
Listed below are links to weblogs that reference
_AS3でWebAPIを利用するfrom PAPHEAD

ayuzak

ディレクターをしています。
このブログは、自分自身のメモとして運営しています。

もっと見る

twitter

@paphead
カテゴリ

なかのひと