widgetown 開発チームブログ(仮)

4月 23rd, 2008

ActionScriptでHTTPServiceを使う

Posted by KOBAYSU in as3.0

HTTPServiceをActionScriptで使うと結構オサレな感じでよくね?みたいなエントリを書く予定だったんだけど、なぜかコンパイルエラー。
HTTPServiceのActionScriptでを使う際Responderクラスを使うのが理由っぽい。
AsyncResponderで代用すると直った。

追記

原因はクラスのコンフリクトだった。ルートのMXMLで使うときは下記のようにすると解決。

token.addResponder(new mx.rpc.Responder(handleResult, handleFault));

HTTPServiceとかをASでさらっと使うのって、mxフレームワーク使いこなしてる感がしていいよね。

<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute” applicationComplete=“init()”>

<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;

import mx.rpc.AsyncToken;
import mx.rpc.AsyncResponder;
import mx.rpc.http.HTTPService;

private function init():void
{
trace(‘init’);

var httpService:HTTPService = new HTTPService();
httpService.url = “http://blog.widgetown.com/tech”;
httpService.resultFormat = ‘e4x’;

var token:AsyncToken = httpService.send({feed:“rss2″});

//AsyncResponder のところをResponderとすると何故かコンパイルエラー
token.addResponder( new AsyncResponder(

function (result:Object, t:Object):void
{
trace(‘result’);
trace(httpService.lastResult..title.text());
}
,
function(fault:Object, t:Object):void
{
trace(‘fault’);
}
));
}
]]>
</mx:Script>

</mx:Application>