TOP > ウェブとコンピュータ関連 > Flash > FlashでRSSを表示

« 特に問題ありませんよ。 | メイン | 最近体調が・・・ »

FlashでRSSを表示

久しぶりにお仕事関連のメモです。

FlashでRSSを表示させる基本?メモ

HTMLというか、普通にPHPでRSSを表示させるには、
Magpieっていうのを使えばすんなり出来るんですが(日付の変換がちょっと厄介ですが)、
Flash上で表示させるのはやったこと無くて、今度仕事でやるみたいなので予習してみた。

基本的にFlashでは別ドメインにアクセス出来ないので、間にPHPをかます。
PHPでRSSを読みに行ってもらい、その読み込んだファイルをFlashに渡すという流れ。

今回はこのブログのRSS情報の最新エントリーのタイトル、日付、そしてタイトルにそのエントリーへのリンクをFlash上で表示させるようにしてみる。

まずFlashでは下図のように作ってみる
flashrss.gif

■1フレーム目のフレームスクリプト

myxml = new XML();

myxml.onLoad = LoadXML;

// PHP

myxml.load("readrss.php");

//

myxml.ignoreWhite = true;

function LoadXML(success) {

if (success == true) {

_root.blogtitle.text = myxml.firstChild.childNodes[0].childNodes[8].childNodes[0].firstChild.nodeValue;

_root.blogurl.text = myxml.firstChild.childNodes[0].childNodes[8].childNodes[2].firstChild.nodeValue;

_root.blogtitle.htmlText = "<a href='"+_root.blogurl.text+"'>"+_root.blogtitle.text+"</a>";

_root.blogdate.text = myxml.firstChild.childNodes[0].childNodes[8].childNodes[5].firstChild.nodeValue;

_root.blogdate.text = pubDateToDate(_root.blogdate.text);

}

}


this.stop();

※ダイナミックテキストの変数を設定せずに、インスタンス名を設定。
※例えば、ブログタイトルであれば…_root.blogtitle.textで表示されるが、リンクを設定したいのでブログタイトルは、_root.blogtitle.htmlTextにし直す。
※pubDateToDate(_root.blogdate.text);というのはエントリー日付の表示を変える関数で、今回そのAction Scriptは省いてます。

あとはPHPファイル(readrss.php)ですが、これはシンプルに
<?php

readfile("http://www.k1factory.biz/blog/index.xml");

?>
これだけです。

これで試しにアップしたのが、こちら

コメント (2)

mar:

こんにちは!
PHP・ActionScriptを勉強中のものです。
すごくシンプルなものだったので出来そう!だと思い挑戦したのですが、なかなかうまくいきません。
undefinedと表示されてしまいます。
ローカルもアップ後もです、、、
何が原因でしょうか。もしこのコメントに気づいてくださってお時間がありましたら是非教えてください。
読み込むブログはWordPressでRSSが「.xml」ではなく「?feed=rss」のような形です。

kuro:

marさん、こんにちは。
今、コメントに気づきました。すいません。
コメントありがとうございます。

undefined(定義されてません)ってよく出ますよね。
僕も最初はそうでした。

PHPでRSSファイルを読み込み、Flashに渡すところまでは出来てますか?

出来てるのであれば、FlashがRSSファイルのツリー構造に沿ってちゃんと読み込んでるかどうかでしょうか。
結構ややこしいですからね。

原始的かもしれませんが、僕の場合、
まずは、
myxml.firstChild.childNodes[0];
だけ表示させて様子をみて、それで表示されれば、
さらに
myxml.firstChild.childNodes[0].childNodes[8];
クリアなら
myxml.firstChild.childNodes[0].childNodes[8].childNodes[0];

と行った具合に手探りで検証しながら作りました。

ご参考になれば、幸いです。

コメントを投稿

About

2008年11月11日 13:50に投稿されたエントリのページです。

ひとつ前の投稿は「特に問題ありませんよ。」です。

次の投稿は「最近体調が・・・」です。

他にも多くのエントリがあります。メインページアーカイブページも見てください。

Powered by
Movable Type