みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

flashの読み込みについて

アメブロにflashを設置しようと思います。flashを読み込む際に、外部テキストファイルや画像ファイルがうまく読み込まれません
具体的に今私が設置したいflashは

http://kstyle.nomaki.jp/template.html

↑のページのtemplate06です。



まず、ダウンロードしたファイルを全て同じ階層にアップロードしました。

そして、このサイトの設置方法に乗っ取って、

<embed src="swfファイルをアップしたURL" width="1000" height="600" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer " allowScriptAccess="always" type="application/x-shockwave-flash" wmode="transparent">

というタグをフリースペースに書きこみました。

すると、swfファイル自体は読み込まれているのですが、同じ階層にアップロードしていたテキストファイルや画像ファイルを読み込むことができませんでした。

以前も同様の問題が発生したのですが、その際はiframeタグを使うことで無事に設置することができました。


今回もiframeタグを用いれば正常に動作しました。

しかし今回は禁止タグの関係で、embedタグのみを用いて解決しなければならない状況です。


どうか解決方法を教えて頂けないでしょうか?

投稿日時 - 2011-05-19 22:37:01

QNo.6749539

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

crossdomain.xmlの記述内容については特に問題さそうに思います。
※hogehogeの部分が間違っていなければ。

http://www.sawaijiri.com/2009/04/01/no66/
を見てみたのですが、どうやらFlashPlayer10から若干設定ルールが変更になっていたようですよ。
要点を上記サイトから抜粋すると、

1.ドメインのルートにメタポリシーファイルを配置する。

以下の内容のcrossdomain.xmlをドメインのルートに配置。
<?xml version="1.0"?>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all" />
</cross-domain-policy>
※サイトごとに配置するcrossdomain.xmlも合わせて配置する必要があるようです。
⇒なので、ドメインのルート、サイトのトップの2個所に内容の異なるcrossdomain.xmlを配置する必要があるようです。
⇒ドメインのルートを触れる権限をお持ちの場合はサイトのトップに配置するcrossdomain.xmlをドメインルートに
配置するだけでいいそうです。

2.ドメインのルートを触れない場合はphpでメタポリシーファイルの内容を吐き出して対応
以下のスクリプトを対象のページを表示する前に実行する必要があるようです。
<?php
header("HTTP/1.1 200 OK");
header("X-Permitted-Cross-Domain-Policies: all");
header("content-type:text/xml;charset=UTF-8");
print '<?xml version="1.0"?>'."\n";
print '<cross-domain-policy>'."\n";
print '<allow-access-from domain="*" />'."\n";
print '</cross-domain-policy>'."\n";
exit;
?>

私の方で実際の動作確認はしていませんので、一度試してみてはいかがでしょうか?

投稿日時 - 2011-05-22 10:30:50

補足

また回答して頂き本当にありがとうございます!

参考までにflashのファイルをアップしてるのはココログです。

おそらくドメインのルートに触れないタイプだと思います。

調べてみたのですが、そのphpの記述はどこに記述してアップすればよいのかが分かりませんでした……

そしてその際にcrossdomain.xmlはどうすればよいのでしょうか?

本当に無知で申し訳ないのですが、今一度お教え頂けないでしょうか?

投稿日時 - 2011-05-22 12:59:26

ANo.2

#1の方が先にクロスドメインポリシーを説明しておられるのに何ですが、
html、flash、データファイルの3者はどのような関係にありますか?

もし、flashとデータファイルが違ったドメイン上にある場合は、クロスドメインポリシーによるセキュリティ違反です。

それ以外、つまりFlashとデータファイルが同一サーバ上すると、ひょっとしてhtmlとflashが違うディレクトリに存在していませんか?
(フォルダを作って、その中にflashとデータファイルを収めているとか)

とすると、パス指定不良です。

urlLoaderなどに指定する相対パス名は、

"データファイル名"  ではなく、
"ディレクトリ名/データファイル名"  になります。

Flashからのパスではなく、Flash Playerが乗っているhtmlからのパスということ。

外していたらすいません。

投稿日時 - 2011-05-21 02:14:20

補足

ディレクトリにつきましては、flashファイルをダウンロードしたときに同梱されていたテキストファイルの指示に従いましたので、間違っていないと思います。

クロスドメインポリシーにつきましては

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="hogehoge" />
</cross-domain-policy>

というcrossdomain.xmlを設置してみましたが、どうもうまくいきません……

何が原因なのでしょうか?

投稿日時 - 2011-05-22 01:05:58

ANo.1

たぶんクロスドメイン関連ではないでしょうか?
それならiframeで問題が解決する意味がわかります。
詳細な設定方法は調べていただきたいですが、
おそらくswfの置いてあるサイトに適宜設定したcrossdomain.xml
を置けばいけるような気がします。

投稿日時 - 2011-05-21 01:41:08

補足

早速のご返答ありがとうございます!
クラスドメインが問題ということでしたので

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="hogehoge" />
</cross-domain-policy>

というcrossdomain.xmlを設置してみましたが、どうもうまくいきません……

どこか間違った記述があるでしょうか?

投稿日時 - 2011-05-22 00:59:09

あなたにオススメの質問