_AS3でWebAPIを利用する
- 2009-01-19(月)
- ActionScript,
- Flash

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でつぶやく (投稿画面に飛びます)
- Newer: _iPhone対応 その2
- Older: _MTをiPhoneで管理する





