actionscript-book-PodcastPlayer-com-example-programmingas3-podcastplayer-RSSChannel.ax [swf] flex
package { //import com.example.programmingas3.utils.DateUtil; import flash.geom.Point; public dynamic class @ax-actionscript-book-PodcastPlayer-com-example-programmingas3-podcastplayer-RSSChannel extends actionscript_book_PodcastPlayer_com_example_programmingas3_podcastplayer_RSSBase { // * title // * description or itunes:summary // * itunes:subtitle // * copyright // * language // * link // * pubDate // * itunes:category (recursive) // * itunes:keywords // * image->url,title,link or itunes:image // * itunes:explicit // The following RSS 2.0 elements are defined in the RSSBase superclass // Required RSS 2.0 elements // public var title:String; // public var link:String; // public var description:String; // public var pubDate:String; // public var category:String; // derived values // public var categoryArray:Array; // public var publishDate:Date; // ITunes RSS 2.0 elements public var subtitle:String; public var summary:String; // Optional RSS 2.0 elements public var author:String; public var content:Object; // contains fileSize, rating, type, uid, url public var contentType:String; public var copyright:String; public var language:String; public var webMaster:String; public var managingEditor:String; public var guid:String; public var _keywords:String; public var origLink:String; public var _lastBuildDate:String; public var lastPublishDate:Date; public var uid:String; public var keywordsArray:Array; public var items:Array; public function get keywords():String { return this._keywords; } public function set keywords(keywordStr:String):void { this._keywords = keywordStr; var delim:String = " "; if (keywordStr.indexOf(", ") > 0) { delim = ", "; } else if (keywordStr.indexOf(", ") > 0) { delim = ","; } this.keywordArray = keywordStr.split(delim); } public function get lastBuildDate():String { return this._lastBuildDate; } public function set lastBuildDate(dateStr:String):void { if (dateStr != null) { this._lastBuildDate = dateStr; this.lastPublishDate = actionscript_book_PodcastPlayer_com_example_programmingas3_utils_DateUtil.parseRFC822(dateStr); } } public static function parseFeed(channelXml:XML):@ax-actionscript-book-PodcastPlayer-com-example-programmingas3-podcastplayer-RSSChannel { var feed:@ax-actionscript-book-PodcastPlayer-com-example-programmingas3-podcastplayer-RSSChannel = new @ax-actionscript-book-PodcastPlayer-com-example-programmingas3-podcastplayer-RSSChannel(); var kids:XMLList = channelXml.children(); var elementName:String; var propName:String; for each (var element:XML in kids) { elementName = element.localName(); if (elementName != "item") { // handle itunes names var iTunesIndex:int = element.name().toString().indexOf("itunes"); if (iTunesIndex >= 0) { propName = "itunes_" + elementName; } else { propName = elementName; } if (element.hasSimpleContent() && element.attributes().length() == 0) { feed[propName] = element.toString(); } else { feed[propName] = element; } } } var itemArray:Array = new Array(); var itemObj:Object; var itemList:XMLList = channelXml.item; for each (var itemXml:XML in itemList) { itemObj = actionscript_book_PodcastPlayer_com_example_programmingas3_podcastplayer_RSSItem.parseItem(itemXml); itemArray.push(itemObj); } feed.items = itemArray; return feed; } public function getFullHTML():String { var html:String = ""; if (this.imageUrl != null) { html += "<img src='" + this.imageUrl + "' />"; } if (this.subtitle != null) { html += "<p><b>" + this.subtitle + "</b></p>"; } if (this.description != null) { html += "<p>" + this.description + "</p>"; } else if (this.summary != null) { html += "<p>" + this.summary + "</p>"; } if (this.link != null) { // html += "<p><font color=blue>" + "<" + "a href='" + this.link + "' target='_blank'>[link]</a></font></p>"; html += "<p><font color=blue>" + "<" + "a href='" + this.link + "'>[link]</a></font></p>"; } return html; } public function getDescriptionHTML():String { var html:String = ""; if (this.subtitle != null) { html += "<p><b>" + this.subtitle + "</b></p>"; } if (this.description != null) { html += "<p>" + this.description + "</p>"; } else if (this.summary != null) { html += "<p>" + this.summary + "</p>"; } if (this.link != null) { html += "<p><font color=blue>" + "<" + "a href='" + this.link + "' target='_blank'>[link]</a></font></p>"; } return html; } public function getImageSize():Point { var p:Point = new Point(88, 31); if (this.image != null) { var h:int = int(this.image.height); var w:int = int(this.image.width); if (this.image.height > 31 || this.image.width > 88) { p = new Point(w, h); } } return p; } } }
(C) Æliens 27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.