Flashにタイトルを表示
Flashにタイトルを表示
お世話になります。
CMS Designerで更新できる新着情報のページ(タイトルと本文が羅列した単純なもの)のタイトル部分(新規投稿3件分について)を、別ページにあるFlashで表示させたいのですが、どのようにすれば良いでしょうか。
リファレンスマニュアルの「6.3.9 XML形式での出力(FlashやAjaxとの連携)」を見たのですが、わかりません。
PHP、XMLについてはかなり初心者です。
基本的な質問かもしれませんが、よろしくお願いします。
CMS Designerで更新できる新着情報のページ(タイトルと本文が羅列した単純なもの)のタイトル部分(新規投稿3件分について)を、別ページにあるFlashで表示させたいのですが、どのようにすれば良いでしょうか。
リファレンスマニュアルの「6.3.9 XML形式での出力(FlashやAjaxとの連携)」を見たのですが、わかりません。
PHP、XMLについてはかなり初心者です。
基本的な質問かもしれませんが、よろしくお願いします。
XMLをFlash(AS)で取得できるのなら、
と書いたphpファイルをFlashで読み込めば動きそうです。
これは生のXMLを出力するcmsdの命令です。
見た目が気になるなら
でXMLツリーが見れます。まぁソース見ればすむことですが、、、。
コード: 全て選択
<?php require_once("略"); ?>
<cmsd:entrylist name="xxx" output="xml" rows="3" />
<?php cmsd_end_template(); ?>
これは生のXMLを出力するcmsdの命令です。
見た目が気になるなら
コード: 全て選択
<?php header('Content-type: application/xml .xml'); ?>
ブラウザからphpにアクセスするとXMLが見えましたが、
このphpをFlashに読み込むとXMLと認識しているのでしょうか?
ノード値を取り出そうとすると無理でした。
Flashからxmlに直接アクセスしてデータを利用するというのは、書籍等であるのですが、phpで出力したxmlを利用するみたいなのは見つかりませんでした。
試行錯誤して、
です。たぶん無茶苦茶です。
エントリーのタイトルを取り出すだけなので、簡単なことのような気がするのですが。すいません、Flashの質問になりました。[/code]
このphpをFlashに読み込むとXMLと認識しているのでしょうか?
ノード値を取り出そうとすると無理でした。
Flashからxmlに直接アクセスしてデータを利用するというのは、書籍等であるのですが、phpで出力したxmlを利用するみたいなのは見つかりませんでした。
試行錯誤して、
コード: 全て選択
System.useCodepage = true;
myLV = new LoadVars();
myLV.ignoreWhite = true;
myLV.load("test.php");
myLV.onLoad = function() {
myLV = unescape(myLV);
myXML = new XML(myLV);
t1 = myXML.firstChild.firstChild.nodeValue;
};
エントリーのタイトルを取り出すだけなので、簡単なことのような気がするのですが。すいません、Flashの質問になりました。[/code]
もう一つ追記です。
Flash8の場合、読み込めるXMLデータは、そのFlashが置かれているサーバと
同一サーバのXMLデータのみとなっています。
ひょっとすると、Flashを置いてテストしているサーバと、CMSDが稼動して
いるサーバが別ということはありませんでしょうか?
(ローカルPC上でFlashを実行している場合は問題ありません)
これをクロスドメイン通信の制限といいますが、これを解除する為には、XML
データが置いてあるサーバのルートフォルダに、crossdomain.xmlという
ファイルを置く必要があります(ルートでなくても良い方法もあります)。
crossdomain.xmlには、例えば次のように記述します。
この記述ですと、全てのサーバ上のFlashから、そのサーバ上のデータへの
アクセスを許可する事になります。
詳しくはcrossdomain.xmlなどのキーワードでgoogle検索などしてみて
下さい。
Flash8の場合、読み込めるXMLデータは、そのFlashが置かれているサーバと
同一サーバのXMLデータのみとなっています。
ひょっとすると、Flashを置いてテストしているサーバと、CMSDが稼動して
いるサーバが別ということはありませんでしょうか?
(ローカルPC上でFlashを実行している場合は問題ありません)
これをクロスドメイン通信の制限といいますが、これを解除する為には、XML
データが置いてあるサーバのルートフォルダに、crossdomain.xmlという
ファイルを置く必要があります(ルートでなくても良い方法もあります)。
crossdomain.xmlには、例えば次のように記述します。
コード: 全て選択
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
アクセスを許可する事になります。
詳しくはcrossdomain.xmlなどのキーワードでgoogle検索などしてみて
下さい。
tsuさま webmasterさま
お世話になります。ご返信ありがとうございました。
tsuさまの指示どおりASを書き、
を追加したら、任意のタイトルを表示できるようになりました。
XMLとして認識していると思います。ありがとうございました。
なお、tsuさまのもう一つの指示
についてですが、すいません。
phpは本当に素人ですので、どこにどういうふうに書けばいいかわかりませんでした。勉強を重ねたいと思います。今後ともよろしくお願いします。
お世話になります。ご返信ありがとうございました。
tsuさまの指示どおりASを書き、
コード: 全て選択
function phpXML() {
t1 = myXML.firstChild.firstChild.firstChild.firstChild.nodeValue;
}
XMLとして認識していると思います。ありがとうございました。
なお、tsuさまのもう一つの指示
コード: 全て選択
<?php header('Content-type: application/xml .xml'); ?>
phpは本当に素人ですので、どこにどういうふうに書けばいいかわかりませんでした。勉強を重ねたいと思います。今後ともよろしくお願いします。
あ、解決されたようでよかったです。
phpについては要はこういうことです。
これでただ、この.phpはxmlだよーと宣言してるだけです。
なのでアクセスすると、普通のxmlファイルと同様に見えるってだけなので、うまくいくなら気にしなくても問題ないですよ。
FlashとCMSDの連携は面白そう。
でも何となくなASは書けてもイマイチFlashの使い方がわからなくて何も出来ません、、、。羨ましい限りです。
phpについては要はこういうことです。
コード: 全て選択
<?php header('Content-type: application/xml .xml'); ?>
<?php require_once("略"); ?>
<cmsd:entrylist name="xxx" output="xml" rows="3" />
<?php cmsd_end_template(); ?>
なのでアクセスすると、普通のxmlファイルと同様に見えるってだけなので、うまくいくなら気にしなくても問題ないですよ。
FlashとCMSDの連携は面白そう。
でも何となくなASは書けてもイマイチFlashの使い方がわからなくて何も出来ません、、、。羨ましい限りです。