• ベストアンサー

flashでのloadvariablesnumでのキャッシュ

 loadvarialesnumでテキストファイルを読み込みます。  繰り返し読み込んだ際、テキストファイル自体は更新されているのに、flashの表示は更新されません。おそらくキャッシュを読み込んでしまっているのだろうと思います。  なお、http://でブラウザに表示したときは上記のように更新されませんが、file://で読み込んだときは更新されています。  なお、どこかで読んだ方法で、テキストファイル名に?をつけて乱数などをつけるのも試してみましたが、?を付けた途端、初回から読み込まなくなりました。  対策について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

> なお、どこかで読んだ方法で、テキストファイル名に > ?をつけて乱数などをつけるのも試してみましたが とりあえずは先に参考URLを書きます。 「質問:環境によって!?外部テキストを最初しか読み込めない」 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1423191  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q=1423191 こちらの,#2の方の回答にもそうあります。 どこかで読んだ方法とは,この回答のことかもしれません。 また,上記URLには, > 「ムービープレビュー」ではURLオープンエラーになります。 > パブリッシュして HTML ファイルを作り、ブラウザで確認してみてください。 とあります。ここに注意してください。 以上です。 以上ですが, 質問に書かれている loadVariablesNum の 大文字小文字変ですし,不安なので, loadVariablesNum の場合について また上に書いたURL#2の方の,再説明になりますが, 他の点についても,補足で回答します。 ////////////////////////////////////////////////////////////////// _levei0 ( レベル0 ( _root ) ) に,「aaa.txt」 というファイルを loadVariablesNum で読み込む場合,普通は  loadVariablesNum("aaa.txt", 0); このように書きます。 ここまではよろしいでしょうか。 以下の説明はこれを例とします。 ネット上にアップした場合, ブラウザがそのデータをキャッシュとして保存し, 次回からはそのキャッシュを参照するので, 「aaa.txt」 を更新しても,Flash 内のデータにその更新が反映されなくなってしまします。 そのときに, で loadVariablesNum で「aaa.txt?変数名=値」をロードするようにして, その 値 を毎回変えれば,同じファイルであっても違うファイルであると認識されるので, 値の部分を単純に乱数にすれば簡単に値を変えることができます。 loadVariablesNum で 「aaa.txt」 を読み込む場合にこれを適用すると, loadVariablesNum("aaa.txt?data="+Math.floor(Math.random()*100000), 0); となります。 なお,これは,ローカルPC内のデータ検証で, スタンドアローン の FlashPlayer を使ったり, 「制御」→「ムービープレビュー」を使っても, 「aaa.txt」 はロードされません。 ネット上にアップすれば,検証できます。 また,私の環境では,SWF の閲覧に スタンドアローン の FlashPlayer を使ったり, 「制御」→「ムービープレビュー」を使った場合, 「aaa.txt」 はロードされませんが, SWFファイルと同時にパブリッシュされるHTMLを開くと, ローカルPCでも検証が可能です。 - - - - - - - - - - - - - -- - - - - なお,場合によっては, 「aaa.txt?data=123」のように固定値でロードしても,大丈夫な場合がありますが, すべての環境でそうとも限りませんので, 値 は変える方が無難だと思います。

daguzhesheng
質問者

お礼

ローカルではロードされず、ネット上にアップすれば検証できるというところに気が付いていませんでした。 たしかに、ネット上では、うまくいきました。ありがとうございました。

関連するQ&A