トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     外部テキストデータの読み込み
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
japanora
Åê¹ÆNo.40432
投稿日時: 2008-10-6 20:01
新米
居住地:
投稿: 11
使用環境:
Windows2000
FlashMX2004
IE6/Firefox2
FlashPlayer7/9
外部テキストデータの読み込み
AS2で外部データの読み込みがうまくいかず難儀しています。
何かご存知の方がいらっしゃればご教示頂ければ幸いです。

現状、

System.useCodepage = true;
myOriginalData = new LoadVars();
myOriginalData.onData = function(str) {
myData = str.split("\n");
}
myOriginalData.load("http://hogehoge/hoge.csv");

というように外部データを読み込む処理を入れてます。
これをパブリッシュするとローカル上ではちゃんと"http://hogehoge/hoge.csv"
を読み込んだ結果が表示されてます。

さらに、

ブラウザ(FF3)から直接"http://hogehoge/hoge.csv"
をたたくとそのcsvデータをダウンロードするダイアログが表示されます。

ところが、このデータをサーバー上に置いた途端、この"http://hogehoge/hoge.csv"
が正常に読み込まれず、結果に全く反映されません。

私はサーバー関連の知識に乏しいのでフラッシュ側に問題があるのか、
それともサーバー側に問題があるのか見当がつきません。

恐らく事前情報としては不足が多いかもしれませんが、
何分このような状況下で何を調査したらいいかも思いつきませんので何か心当たりのある方がいらっしゃれば、何でも仰っていただけると幸いです。

よろしくお願いいたします。
Tonpoo (gaienboy改め)
Åê¹ÆNo.40433
投稿日時: 2008-10-6 21:02
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 外部テキストデータの読み込み
gaienboyです。

hoge.csvの置いてあるサーバーと、それを読み込もうとしているswfの置いてある
サーバーは同じサーバーですか?


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

japanora
Åê¹ÆNo.40439
投稿日時: 2008-10-7 10:08
新米
居住地:
投稿: 11
使用環境:
Windows2000
FlashMX2004
IE6/Firefox2
FlashPlayer7/9
Re: 外部テキストデータの読み込み
gaienboyさん、いつも迅速なお返事ありがとうございます。

情報が不足していてすみません。

hoge.csvと読み込むswfは同じサーバーにおいてあります。

ですが、他サーバーから「swfobject.js」で絶対パスでswfを呼び出す、
という処理を行っています。

このようなややこしいことをしているのはswfは何箇所か違うサーバーから使用したいのですが、
hoge.csvが定期的に更新されるため、読み込むhoge.csvは一箇所にしたいのです。

現状具体的には「swfobject.js」を実装済みのHTMLに、

<script type="text/javascript">
var movie = new
SWFObject("http://hogehoge/hoge.swf","SWF","508","333","7","#ffffff");
movie.addParam("menu", "false");
movie.addParam("allowScriptAccess", "always");
movie.write("swf");
</script>

と記述しswfを再生しています。

無論、swfは正しく表示されていて、以前はhoge.csvを読み込む処理も成功していました。(csv読み込みは現在は失敗しています。)

ちなみに再生側のサーバーにhoge.swfをおいてswfobjectには相対パス指定でswf内のloadには絶対パス指定でhoge.csvを読み込もうと、試してみましたがそれもうまくいきませんでした。

サーバー関連で設定が変更された可能性もありますが
不勉強のためどのような設定の変更でこういった事象が起きてくるのかが判明できません。

かなり漠然とした投稿で申し訳ないのですがいかがでしょうか?

「それはまずサーバー側の??の設定を詳しく見ないと」、ということであればそれが分かるだけでもいいのですが、
actionscript側のLoadVarsやloadまわりで何か解決できる策があればと思い、投稿させていただいてます。

見識をお聞かせ頂ければ幸いです。
Tonpoo (gaienboy改め)
Åê¹ÆNo.40441
投稿日時: 2008-10-7 10:32
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 外部テキストデータの読み込み
gaienboyです。

すいません、ちょっとよくわかってないんですが、

・hoge.swfとhoge.csvは同一のサーバーにある
http://hogehoge/hoge.swf
http://hogehoge/hoge.csv
・hoge.swfを表示させるfoo.htmlは他のサーバーにある
http://foobar/foo.html

ということでしょうか?

そうだという前提での話ですが、MovieClip.loadMovie()やLoadVars.load()など
で外部のファイルを読み込む場合、swfファイルが置いてあるサーバーではなく、
swfファイルを表示させているhtmlファイルの場所が基準となります。なので、今
回の場合も、hoge.swfとhoge.csvは同じサーバーにあるにも関わらず、

myOriginalData.load("hoge.csv");

では読み込めない(http://foobar/hoge.csvを読みに行ってしまう)わけです。

従って、japanoraさんが書かれた下記のスクリプトでは、

myOriginalData.load("http://hogehoge/hoge.csv");

実際にはhoge.swfとhoge.csvは同じサーバーにあるにもかかわらず、基準となる
サーバー(http://foobar/)とは異なるサーバー(http://hogehoge/)のデータ
を読み込んでいることになります。

ところで、swfでは別ドメインにあるデータを読み込む際には、セキュリティ上の
問題から、そのままでは読み込めないように設定されています。下記のページなど
を参考にしていただくと、解決できるのではないかと思います。

Adobe - デベロッパーセンター : Macromedia Flash Player 7 におけるセキュリティの変更について
http://www.adobe.com/jp/devnet/flash/articles/fplayer_security_03.html

Flash crossdomain.xml の設定 - マミ's ページ
http://www.horse-water.mydns.jp/tips/tips_P00014.html


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

japanora
Åê¹ÆNo.40442
投稿日時: 2008-10-7 10:51
新米
居住地:
投稿: 11
使用環境:
Windows2000
FlashMX2004
IE6/Firefox2
FlashPlayer7/9
Re: 外部テキストデータの読み込み
japanoraです。
gaienboyさん、いつも迅速に、しかも的確なアドバイスを頂きありがとうございます!

引用:

・hoge.swfとhoge.csvは同一のサーバーにある
http://hogehoge/hoge.swf
http://hogehoge/hoge.csv
・hoge.swfを表示させるfoo.htmlは他のサーバーにある
http://foobar/foo.html

ということでしょうか?


お察しの通りです。

引用:

そうだという前提での話ですが、MovieClip.loadMovie()やLoadVars.load()など
で外部のファイルを読み込む場合、swfファイルが置いてあるサーバーではなく、
swfファイルを表示させているhtmlファイルの場所が基準となります。なので、今
回の場合も、hoge.swfとhoge.csvは同じサーバーにあるにも関わらず、

myOriginalData.load("hoge.csv");

では読み込めない(http://foobar/hoge.csvを読みに行ってしまう)わけです。


そうなのです。なので絶対パスで書きました。

引用:

myOriginalData.load("http://hogehoge/hoge.csv");

実際にはhoge.swfとhoge.csvは同じサーバーにあるにもかかわらず、基準となる
サーバー(http://foobar/)とは異なるサーバー(http://hogehoge/)のデータ
を読み込んでいることになります。

ところで、swfでは別ドメインにあるデータを読み込む際には、セキュリティ上の
問題から、そのままでは読み込めないように設定されています。下記のページなど
を参考にしていただくと、解決できるのではないかと思います。

Adobe - デベロッパーセンター : Macromedia Flash Player 7 におけるセキュリティの変更について
http://www.adobe.com/jp/devnet/flash/articles/fplayer_security_03.html

Flash crossdomain.xml の設定 - マミ's ページ
http://www.horse-water.mydns.jp/tips/tips_P00014.html



以前にこの状態で成功していた事実が気になりますが、
gaienboyさんもお察しの通り、どう考えてもセキュリティ上での
一手間が足りないようです。

ご教示頂いたページによく目を通して試してみます!

本当にありがとうございます!!
Tonpoo (gaienboy改め)
Åê¹ÆNo.40443
投稿日時: 2008-10-7 11:04
職人
居住地: 東京・神宮前
投稿: 717
使用環境:
Windows 7 Professional,
Flash CS5 Pro,
Flash Player 10,1,102,64
Re: 外部テキストデータの読み込み
gaienboyです。

引用:
japanoraさんは書きました:
以前にこの状態で成功していた事実が気になりますが、


このセキュリティの仕様はFlashPlayer7以降の話なので、それ以前の頃であれば、
上記のままでも問題なく動作したものと思います。


----------------
Tonpoo (a.k.a. gaienboy)
Tonpoo.com / TONPOOBLOG / twitter@tonpootwit

japanora
Åê¹ÆNo.40444
投稿日時: 2008-10-7 15:53
新米
居住地:
投稿: 11
使用環境:
Windows2000
FlashMX2004
IE6/Firefox2
FlashPlayer7/9
Re: 外部テキストデータの読み込み
japanoraです。

gaienboyさん、ありがとうございました!
クロスドメイン環境での外部データの読み込みに成功しました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops