Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2009年03月13日 金曜日

はてなフォトライフの画像を表示してみる(2)RSSから画像を表示

| 08:36 | はてなフォトライフの画像を表示してみる(2)RSSから画像を表示 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - はてなフォトライフの画像を表示してみる(2)RSSから画像を表示 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 はてなフォトライフの画像を表示してみる(2)RSSから画像を表示 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

感想

  • 最初、URLLoaderとLoaderを間違えていた。ここの違いがあるらしい
  • XMLのnamespaceについては、色々とあるけれど、Namespaceを宣言すれば解決
  • 結構、素早く表示されて驚きます
  • photo.asをいじって、表示位置をランダムにした(これがないと、写真が多いと、何が表示されているのかわからない)
  • Stageの取得がいまいちわからない...
  • event.target.dataで取得したデータをnew XML(stringデーター)でXMLオブジェクトに出来るのを忘れていた

課題

  • 写真一つ一つに対するイベント
  • 写真の読み込みスピード
  • 並び替えとか
  • ソースを書くだけじゃなくて

FhatenaViewerソース(.as)

package
{
	import flash.events.*;
	import flash.net.*;
	import photo.Photo;
	import mx.core.UIComponent;

	public class FhatenaViewer extends UIComponent
	{
		public function FhatenaViewer()
		{
			createPhoto('http://f.hatena.ne.jp/twitter/rss');
		}

		public function createPhoto(feed:String):void
		{
			var loader:URLLoader = new URLLoader();
			loader.load(new URLRequest(feed));
			loader.addEventListener(Event.COMPLETE, createPhotoByXML);
			loader.addEventListener(ProgressEvent.PROGRESS, onLoading);
		}

		public function onLoading(event:ProgressEvent):void
		{
		}

		public function createPhotoByXML(event:Event):void
		{
			var rdf:Namespace    = new Namespace("rdf",    "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
			var dc:Namespace     = new Namespace("dc",     "http://purl.org/dc/elements/1.1/");
			var hatena:Namespace = new Namespace("hatena", "http://www.hatena.ne.jp/info/xmlns#");
			var feed:XML = new XML(event.target.data);
			for each(var item:Object in feed.*::item){
				trace(item.hatena::imageurl);
			var p:Photo = new Photo();
			addChild(p);
			p.loadImage(item.hatena::imageurl);
			}
		}
	}
}