Faster is better than slower. Czevina Hack Engine goes to Splendid Quality with Quantity.

2007年8月15日水曜日

Actionscript REST

Flash を作成する際に重宝しています。

そこでもよく使うのは flash.net.URLRequest & URLLoader の 2 クラス。


public function init():void {
var req:URLRequest = new URLRequest( url );
var header:URLRequestHeader("Authentification", "Basic " + ID);
req.method = URLRequestMethod.POST;

req.requestHeaders.push( header );

var loader:URLLoader = new URLLoader();
loader.addEventListener( Event.COMPLETE, completeHandler );

loader.load( req );
}

public function completeHandler(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
trace( loader.data.toString() );
}


これだけで、Remote Site にアクセスできてします。すばらしい!!

ようは、あれだ。

url 部分にたとえば、www.google.co.jp と入れると、wwww.google.co.jp の html を返してくれる。event が complete、つまり読み込み終了したら completeHandler 関数が呼び出される。この引数には event が渡されて、ここから返り値、つまり www.google.co.jp の html を取り出せるのだ。

応用としては、これから必要なhtml要素を取り出せばいい。たとえば、アマゾンサイト。Amazon Web サービスでは、様々本に関する情報を扱えるが、人気ランキングについては提供されていない。どうするか。自力で html から抜き出せばよいのだ。

上記の例はシンプルな HTTP POST だが、REST にも対応できる。REST は URL アクセスすると返り値を html でなく xml で返してくれるものだからね。この場合、見やすくするた completeHandler をちょっと修正しよう。


function completeHanlder(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
var xml:XML = new XML( loader.data.toString() );
trace( xml.toString() );
}

これで REST Response を扱えるようになった。後は、アクセスしたい XML Node にアクセスすればいい。

詳しくは ActionScript Hacks にもたんまりあります。

Actionscript 3.0 Cookbook
Actionscript 3.0 Cookbook
posted with amazlet on 07.08.15
Joey Lott Darron Schall Keith Peters
Oreilly & Associates Inc (2006/10)
売り上げランキング: 5022
おすすめ度の平均: 4.0
4 O'REILLY の定番本

0 件のコメント: