• ベストアンサー

環境によって!?外部テキストを最初しか読み込めない

初めまして。今、大変困っておりまして。 何かわかればヒントだけでもお願いいたします FLASH MX Ver6.0 Windows2000の環境下で 外部テキストファイルに0~100の整数を変数に持たせています これを別ディレクトリに置いたswfで読み込ませ処理をしています。 外部ファイルの参照先は、swfを呼び出す際に「base=」のパラメータを渡して認識しています。 ただし、外部テキストは動的に変化するためswf側でenterframeにて常に読み込んでいるのですが。。 これを「c:\~」で始まるアドレスでブラウジングすると動的変化にあわせてムービーもリアルタイムに変化します しかし「http://~」でURL指定した場合、最初の表示は外部テキストの値を参照してくれるのですが、外部テキストの値が変化してもムービーはそのままで以後変化なし。 このような現象はよくあるのかネットで調べたのですが該当する情報は見つかりませんでした。 外部テキストへは読み込みしか行いません。 ただ、http://~というのはIISサーバーなのです。 ファイル権限など絡むのでしょうか。 実は2週間一人で調べていましたがらちがあかずじまいでした。 これからも解決策を調べていきますが もし、何かご存知でしたらよろしくお願いします。

  • Flash
  • 回答数2
  • ありがとう数8

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

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

私もキャッシュが怪しいと思います。 ファイル権限の問題なら、最初の1回も読み込めないはずですからね。 キャッシュから読み込まれるのを防ぐ方法はいくつかありますが、簡単にできる対策としては、乱数を使って適当な数字を作り、ダミーの引数としてURLの後に ? で連結する、という方法があります。 刻々と変化する情報をCGIなどで読み込む際、キャッシュから読み込まれることを避けるために、よく利用される手法です。 例えば、  http://***/~.txt?dummy=50 と  http://***/~.txt?dummy=100 は違うURLと見なされますから、キャッシュからは読み込まれません。 スクリプトにしてみますと、大体、次のようになります。 (↓各行頭に全角のスペースが入っています。コピーする際はご注意ください)  onClipEvent(enterFrame)  {   //キャッシュからの読み込み防止:   //乱数を連結して毎回違うURLを作る   file_url = "http://***/~.txt?dummy=" + Math.floor( Math.random() * 10000 );   //Shift-JISで読み込む   System.useCodepage = true;   this.loadVariables( file_url );  } 「ムービープレビュー」ではURLオープンエラーになります。 パブリッシュして HTML ファイルを作り、ブラウザで確認してみてください。 外部から読み込むテキストもキャッシュに残り、そのキャッシュから読み込んでしまうという現象は、実際にもあるようです。  ・SWF ファイルのキャッシュを防ぐ方法   http://www.macromedia.com/jp/support/flash/ts/documents/fl0155.html ↑これは swf ファイルの話ですが、最後の方に追記として、外部から読み込むテキストファイルがキャッシュされる件についても少しだけ記述があります。 肝心な部分のリンクが切れていますけれど(^^ゞ)、よろしければご参照ください。

momochi819
質問者

お礼

DPEさん!ありがとうございます。 ものの3分ほどで解決です。びっくりです。 SWFのキャッシュは知っていたのですが外部テキストファイルもキャッシュされてるなんて・・・。 乱数の式まで教えてくれて感謝です! 私ももっと精進せねば^^;

その他の回答 (1)

noname#35109
noname#35109
回答No.1

何もご存じではない者です。 ついでに,解決策も思いつきませんが,キャッシュを常に見に行っているのではないでしょうか。 読み込み中にWindowsの場合「F5」キーを押してみて,値が変わったら,キャッシュだと思います。 もしくはブラウザの設定をキャッシュを残さないようにするとか。 「F5」キーが通用するのって,直に見ているHTMLだけでしたっけ?? もしキャッシュだったとしても,設定は基本的にエンドユーサーの方なので,提供する側からは… でも,キャッシュをさせないとかいうJavaScriptか何かがあってような… でも,あってとしてもHTMLかJavaScriptですよね。テキストファイルには通用しないかも… と言うわけで,何でもないただの通りすがりのつぶやき人だと思ってください。失礼します。

momochi819
質問者

お礼

ありがとうございます。 「F5」試してみましたが駄目でした。 でもやっぱりキャッシュが原因だったようです! ヒントありがとうございました

関連するQ&A

  • 外部テキストの読み込み

    はじめましてよろしくお願いしますm(_ _)m 最近FLASHのアクションスクリプトを触るようになったのですが、どうしてもわからないことがあるので質問させて下さい。 やりたいのは…、 text01=あいうえお &text02=かきくけこ &text03=さしすせそ という外部テキストファイルがあってそれを1つのswfファイルが読み込まれるごとに違う値を表示したいです。イメージとしては下のような感じです。 <sample.swf>←ここではtext01の内容を表示 ・ ・ <sample.swf>←ここではtext02の内容を表示 ・ ・ <sample.swf>←ここではtext03の内容を表示 ・ ・ swfファイルを個別に用意し、外部テキストの変数をそれぞれ指定してやればできるのですが、それではswfファイルが複数になってしまうのと読み込みにも時間がかかるので(見出しに使いたいのでフォント埋め込みです)なんとか1つのswfファイルでできないか考えています。 FLASHではこういったことは可能でしょうか? 何かヒントだけでもいただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部テキストファイルが読み込みについて

    FLASH MX 初心者です。 swfファイルに外部のイメージファイルとテキストファイルを読み込ませる仕組みを作っています。 イメージファイルとテキストファイルは既にサーバにあります。 この状況にてPC上で生成した完成swfでは、サーバ上にあるイメージファイルとテキストファイルが表示されます(ここまでは成功です)。 しかし完成したswfファイルをサーバへアップし、完成swfファイルを読み込ませるhtmlページを公開するとテキストファイルだけが表示されません。 イメージファイルは読み込むのに、テキストファイルは読み込まないのは何が原因なのでしょうか。 環境 OS:WindowsXP アプリケーション:FLASHI MX 7.2 よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部テキストの読み込み

    Flash lite1.1で、外部テキストの読み込みが実現できません。 text.txtファイルをswfと同じフォルダに作成し、中身を「text=あいうえお」にしました。 swfのほうでダイナミックテキストで変数を「text」にし、同じシーンのボタンに下のスクリプトを記述 しました。 // on (press) { loadVariables("text.txt",0); } // よろしくお願いします。

    • ベストアンサー
    • Flash
  • 外部テキストの値を変えることで読み込むswfを切り替えたい

    お世話になります。Flash8を使用しています。 天気が切り替わるFlashを作成しようとしています。 基本のkihon.swfの上にloadMovieで「雨」rain.swf、「雪」snow.swfなどを読み込みたいのですが、 その切り替えを外部テキストで行いたいのです。 whether.txtの内容が「whether=0」ならば晴れ、 「whether=1」ならば雨、つまりrain.swfをkihon.swfに読み込む、 「whether=2」ならば雪、つまりsnow.swfをkihon.swfに読み込む、 と言う風に処理したいのですが、このようなことは可能なのでしょうか。 ifとelse ifを使うのかな・・・とぼんやりと考えている程度しか分からず、特に外部テキストの値を読んで判断する方法が分かりません。 どうかご教授をよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FLASH ダイナミックテキスト 外部ファイル

    初めまして。 現在外部ファイル(mNO.txt 内容:a=1&b=2&c=3&d=4&e=5)を アクションスクリプト(レイヤーにloadVariablesNum("mNO.txt", 0);)で読み込み、 外部ファイルに書き込まれている値をダイナミックテキストで表示させたいのですが、 外部ファイルは読み込まれますが、変数の値がうまく表示されません。 方法は、 テキスト入力をして、これをダイナミックテキストに変換・変数(no1)を設定し、シンボルに変換(ムービークリップ)、 レイヤーに上のアクションスクリプトを入力。 ムービークリップにアクションスクリプト、 (onClipEvent (load) { no1 = a + "号室"; }) を入力。 以上です。 デバッグすると 左上に _lebel0. L_lebel0.instance1 のように表示されますが関係あるのでしょうか。 バージョンは6です。 説明が下手で申し訳ございません。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • アップロードしたら外部テキストが表示されない

    お世話になります。過去ログを探ってみましたが、解決しませんでしたので質問させて頂きます。Windows XP、FLASH MX、IE7という環境です。 ダイナミックテキストで外部テキストを読み込み、スクロール表示させるというswfファイルを作成しました。パブリッシュプレビュー及び、パブリッシュしたhtmlファイルをIEを通して確認すると全く問題なく表示させるのですが、アップロードしたら外部テキストの部分のみ表示されません。ページに関連するhtmlファイル、swfファイル、txtファイルは全て同じ階層にアップロードされいるのに何故なのか分からず困っています。質問内容分かりにくかったらすみません。どなたかお助け願えないでしょうか。

    • ベストアンサー
    • Flash
  • 外部にテキスト保存

    Flash8での実装を行っている者です。 質問なんですけれども、 外部のテキストファイルの内容を読み込むことができるのですが、 参照したテキストファイルを別のテキストファイルに保存する方法を考えています。 可能でしょうか? いくつか方法について情報を頂きたいのですが、 お願いできますでしょうか?

    • ベストアンサー
    • Flash
  • Flash 外部テキスト 書き出し

    Flashで外部テキストの読み込み例はたくさんありますが、 Flashから外部テキストへ値を書き出す事はできるのでしょうか? Flash側から外部テキストへ値を書き出し(テキストファイルでなくても構いません)後にその値を再度Flash側で読み込むという動作を望んでいます。 バージョンはFlash8+AS2.0です。 ご教授願います。

  • テキストスクロールの外部テキストファイルが表示されない

    こちらの過去ログから下記サイトを参考に、外部テキストファイルを読み込んで表示するテキストスクロールを作成しました。 http://www.flashiroha.com/script/as5.html flashで保存したswfファイルでは正常に表示されるのですが、作成したHTMLファイルにswfファイルを挿入すると外部テキスト部分が表示されず、サイドのスクロールボタンのみしか見えていません。 swfファイルと同階層にtextファイルは置いています。 そして、そのswfファイルをダブルクリックすると外部テキストファイルは表示されているにもかかわらず、htmlファイルでは表示されないのです。 足りないところは、補足説明も致しますのでよろしくお願い致します。 --------------------------------------------- ■htmlファイル <div id="textbox"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="545" height="150" title="テキストスクロール"> <param name="movie" value="common/flash/text.swf" /> <param name="quality" value="high" /> <embed src="common/flash/text.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="545" height="150"></embed> </object> </div> ■css #textbox { width: 545px; height: 150px; margin: 10px 0; } ■flash //テキストフィールドに this.loadVariables("text.txt"); //上向きボタンに on(rollOver){ _root.onEnterFrame = function() { _root.textbox.scroll -= 1; } } on(rollOut, releaseOutside) { _root.onEnterFrame = function() { _root.textbox.scroll -= 0; } } //下向きボタンに on(rollOver){ _root.onEnterFrame = function() { _root.textbox.scroll += 1; } } on(rollOut, releaseOutside) { _root.onEnterFrame = function() { _root.textbox.scroll += 0; } }

    • ベストアンサー
    • Flash
  • 外部テキストファイルからの制御

    はじめまして、いつも勉強させていただいております。 一応、過去ログなども見てみたのですが見つけられなかったので質問させていただきます。 最終的に行いたい事は、表題通り外部テキストファイルから、swfを制御させたいと思っています。具体的には、例えばテキストファイルに『03』と書いてあったら『03.swf』を再生する…テキストファイルに『10』と書いてあったら『10.swf』を再生するといったような事です。 初心者ながら色々と調べながら失敗を繰り返したりしているのですが… data.txt(テキストファイル)の中に『&myData1=01&』と記入。 同階層にindex.swf(親swf)『gamen』という名の空インスタンスMC 同じく同階層に01.swf(子swf)… index.swfに書いたASはこんな感じです。 myLV = new LoadVars(); if (myLV.myData1 = "01") { loadMovie("01.swf", _parent.gamen); } myLV.load("data.txt"); 完全に初心者ですので、根本的に大間違いをしているかとは思いますが、救いの手をお願いいたします。 WIN-XP FLASH8です。

専門家に質問してみよう