Flickr RSS 解析 in AS 3.0

個人の Flickr RSS って便利になりましたね。
最近ふとFlickr の RSS を見たら、以前は M サイズ画像情報のみだったので URL の規則性ですべての画像データ情報を取得していたけど、今はサムネール画像・M サイズ画像・オリジナル画像のパーマリンク、幅、高さがすべて表記されてるんですね。これだと簡単に個人のブログパーツやスライドショーや photogallery くらいはすぐ作れるし、E4X で簡単に XML を解析できるようになったので再利用をかねて個人用に ActionScript 3.0 の解析 class(ParseFlickrXML)を作ってみた。Flickr API を使うならこのクラスがいいと思うけど、自分の RSS を解析するだけだとこれでいいかなと。

ちなみに結構前に作ったので今思うのは、XML の解析用のクラス(ParseFlickrXML)自体が EventDispatcher クラスを extends したら他のイベントクラスは必要なかったし汎用性があると思うけど、作成時はこんなもんだったんで今後直します。

クラスは下記よりダウンロード。
flickrclass


Flash CS3 での使用方法は下記の通りです。

(1)解凍&移動
ダウンロードした zip ファイルを解凍し、ディレクトリ内の com ディレクトリを特定のディレクトリに移動。デフォルトで使用したい場合は fla ファイルを置く同ディレクトリに移動。自分の場合は class 用のディレクトリに移動してます。


(2)fla ファイル作成。
クラスを読み込む人はパブリッシュ設定から上記の com を配置したディレクトリをクラスパスに指定する。デフォルトで使用したい場合は fla ファイルを置く同ディレクトリに移動してあるのを確認する。


(3)ソース


stop();

import com.convexstyle.flickr.ParseFlickrXML;
import com.convexstyle.events.ResultEvent;
import com.convexstyle.events.FaultEvent;

var parser:ParseFlickrXML = new ParseFlickrXML();
parser.addEventListener(ResultEvent.RESULT, onResult);
parser.addEventListener(FaultEvent.FAULT, onFault);
parser.xml = "http://api.flickr.com/services/feeds/photos_public.gne?id=11583872@N00&lang=en-us&format=rss_200";
parser.start();

function onResult(evt:ResultEvent):void {
var totalNum:Number = evt.result.length;
for(var i:uint = 0; i < totalNum; i ++) {
trace("title: " + evt.result[i]["title"]);
trace("link: " + evt.result[i]["link"]);
trace("o_image: " + evt.result[i]["o_image"]);
trace("o_width: " + evt.result[i]["o_width"]);
trace("o_height: " + evt.result[i]["o_height"]);
trace("m_image: " + evt.result[i]["m_image"]);
trace("m_width: " + evt.result[i]["m_width"]);
trace("m_height: " + evt.result[i]["m_height"]);
trace("s_image: " + evt.result[i]["s_image"]);
trace("s_width: " + evt.result[i]["s_width"]);
trace("s_height: " + evt.result[i]["s_height"]);
trace("--------------------------");
}
}

function onFault(evt:FaultEvent):void {
trace("Error: " + evt.fault);
}


(4)今後の利用
取得した XML の解析結果を slideShow クラスとか表示系のクラスに渡して画像表示とかする。


現在の汎用性に欠いた仕様は別としても AS 3.0 は AS 2.0 に比べて圧倒的に Custom Event Class が便利になりましたね!

ページの一番上へ移動

トラックバック

この記事へのトラックバック URL は下記の通りです。
http://www.convexstyle.net/mt/mt-tb.cgi/38

コメントの投稿

初めて投稿される方のコメントは管理者の承認が必要となります。ご了承ください。