Roonys Paradiseのブログパーツを作ってみました。
Adobe Flex SDKで作ったのですが、サンプル通りに進めると簡単にFlashファイルができあがりました。いわゆるAdobe Flashという(高価で)わかりにくいソフトのことなど全く考えなくていいのですね。ActionScriptを書くだけなので、タイムラインとも無縁。ちなみに、Flex SDKはオープンソースです。
以下はbp_roony_news.mxmlの例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" initialize="init();" width="160" height="240" horizontalScrollPolicy="off" verticalScrollPolicy="off"> <mx:Style> Application { padding-top: 0; padding-bottom: 0; padding-left: 0; padding-right: 0; border-style: solid; background-color: #d0c2a8; } .links{ textDecoration: underline; } </mx:Style> <!--mx:Panel--> <mx:VBox styleName="logo"> <mx:Image source="bp_01.png" click="openUrl()" buttonMode="true" /> </mx:VBox> <mx:VBox styleName="links"> <mx:LinkButton id="link0" label="" click="openNews(event)" /> <mx:LinkButton id="link1" label="" click="openNews(event)" /> <mx:LinkButton id="link2" label="" click="openNews(event)" /> <mx:LinkButton id="link3" label="" click="openNews(event)" /> <mx:LinkButton id="link4" label="" click="openNews(event)" /> </mx:VBox> <mx:Image source="bp_03.png" /> <!--/mx:Panel--> <mx:Script> <![CDATA[ import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLVariables; import flash.net.navigateToURL; import flash.events.Event; public var links:Array = new Array(); public function init():void { var request:URLRequest = new URLRequest("http://roony.kuroneko-square.net/feed/rss2"); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, setNews); loader.load(request); } private function setNews(event:Event):void { var loader:URLLoader = event.target as URLLoader; var xml:XML = XML(loader.data); var itemNode:XMLList = xml.child("item"); link0.label = "◆"+xml.channel.item[0].title; link1.label = "◆"+xml.channel.item[1].title; link2.label = "◆"+xml.channel.item[2].title; link3.label = "◆"+xml.channel.item[3].title; link4.label = "◆"+xml.channel.item[4].title; for (var i:int = 0; i < 5; i++) { links[i] = xml.channel.item[i].link; } } private function openNews(event:Event):void { var id:String = event.target.id; id = id.replace("link", ""); navigateToURL(new URLRequest(links[id])); } private function openUrl():void { navigateToURL(new URLRequest("http://roony.kuroneko-square.net/")); } ]]> </mx:Script> </mx:Application> |
むしろ、Flashを表示するための実装がブラウザによってまちまちなので、結局JavaScriptに頼らざるを得ない点が問題だと感じました。