- 2008-11-13 (木)
- Flash Lite 3.0
先日エントリした xml 読み込みのサンプルをちょっと発展させて rss リーダーなんかを作ってみようと思った。
しかし、Flash Lite の RSS リーダーって需要あるのかな?
最初にボタンを押さないと読み込めないのがやっぱりネックになってくるよね…。
まぁ、とりあえず、そんな諸事情はさておき検証のためにささっとサンプルを作成。
サンプルではこのブログの RSS を読み込ませているのが、em00.com から 1ka2ka.com のデータを読み込むため、課題となるのが異なるドメイン同士での通信ということ。
Flash Lite 2.0 からは、セキュリティー強化されているため、異なるドメイン間でのデータの通信に対して制限がかけられているはず。一応、何も対応処置をせずに異なるドメインの RSS を取得してみたが結果はダメだった…。
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
<allow-access-from domain="em00.com" />
</cross-domain-policy>
結局、上記のようにクロスドメインポリシー(crossdomain.xml)を設置することで正常に読み込み可能となった。
サンプルのソースはこちら
//CASA Frameworks 1.0.8
import org.casaframework.load.data.xml.XmlLoad;
import org.casaframework.util.XmlUtil;
//変数
var xmlLoad:XmlLoad;
var rssUrl:String = "http://1ka2ka.com/index.xml";
result.htmlText = "";
//初期処理
initStage();
initBtn();
//ステージ設定
function initStage():Void {
//ステージサイズ
Stage.scaleMode = "showAll";
Stage.align = "";
//画質設定
_quality = "BEST";
}
//ボタン設定
function initBtn():Void {
startBtn._focusrect = false;
startBtn.onRelease = function() {
loadXML(rssUrl);
this._visible = false;
}
startBtn.onRollOver = startBtn.onDragOver = function() {
var c:Color = new Color(this.base);
var ct:Object = {ra: 100, rb: 204, ga: 100, gb: 0, ba: 100, bb: 0, aa: 100, ab: 0};
c.setTransform(ct);
}
startBtn.onRollOut = startBtn.onDragOut = function() {
var c:Color = new Color(this.base);
var ct:Object = {ra: 100, rb: 0, ga: 100, gb: 0, ba: 100, bb: 0, aa: 100, ab: 0};
c.setTransform(ct);
}
}
//XML処理
function loadXML(xmlUrl) {
xmlLoad = new XmlLoad(xmlUrl);
xmlLoad.addEventObserver(this, XmlLoad.EVENT_LOAD_COMPLETE, "onXmlLoadComplete");
xmlLoad.start();
}
function onXmlLoadComplete(sender:XmlLoad):Void {
var xmlObject:Object = XmlUtil.xmlToObject(xmlLoad.getXml())["rss"][0]["channel"][0];
for (var i = 0; i < 10; i++) {
var title:String = xmlObject.item[i].title[0].nodeValue;
var link:String = xmlObject.item[i].link[0].nodeValue;
var mc:MovieClip = attachMovie("rssBtn", "rBtn" + i, getNextHighestDepth())
mc._x = 10;
mc._y = 45 + 18 * i;
mc.title.text = title;
mc.url = link;
mc.onRelease = function() {
getURL(this.url);
}
}
}
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1384
- トラックバックを受ける記事
- FL3 | RSS リーダー from 1ka2ka.com
