• ベストアンサー

フラッシュでtextファイルを読み込ませるアクションで問題!?

私はフラッシュを始めたばかりの素人です。 フラッシュをいろいろとHPに組み込みたいと思いました。が、メンテナンスするのがいちいち面倒なのでどうにかできないかと考えた結果、textファイルを読み込ませんるという方法でした。  もちろんtextファイルで編集できるのは文字だけだとわかっていますが、少しはメンテナンスがしやすくなりますのでとてもよいと考えました。 やってみて問題がおきました。 結果は「やけにSWFファイルが重くなる(2Mちょっと)になることと、ネット上で動かすと表示されなこと」です。 いろいろ試しましたが、私が思うにtextファイルを読み込むアクションスクリプトを使うとやけに重くなってしまうような結果になりました。 textファイルに読み込ませる文章はせいぜい40文字程度でしかないのにもかかわらずローカルで表示させた場合に出来るSWFファイルの要領が2.1Mにもなりました。 それをネットにアップさせて表示させようとした場合は接続が永遠に続き結局表示することが出来ません。 textファイルを読み込ませるための何かコツが必要なのでしょうか? また、このような物と認識すればよいのでしょうか? どうか具体的なソース、アドバイスをいただけないでしょうか。お願いします。 ▼読み込み時に使用したアクションスクリプト onClipEvent(load){ this.loadVariables("oyamanew.txt"); }

  • aeic
  • お礼率10% (60/582)

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

  • ベストアンサー
回答No.2

こんにちわ。 さて、上記のアクションスクリプトがどこに記述されていて、どのように表示されようとしているのかわからないので、この回答は適切でないかもしれませんが・・ たしかloadVariablesはテキストファイルから変数を読み込む命令だったと思います。 上記のスクリプトでは、thisのムービーファイル上の変数として読み込まれるので、表示の記述(この場合はダイナミックテキストに代入する。でしょうか・・)がなければ、どこにも表示されないと思います。 ですのでテキストファイルには例えば、 myText=ほにゃらら+ほげ などと変数として記述しておいて、そのファイルから一度変数として読み込んでから、その値をダイナミックテキストに代入する。というやり方をとらねばなりません。(空白は+を記述) ただし、読み込みは非同期ですのでどのタイミングで読み込みが完了するかは ロードするたびに異なります。(そういう仕様になってます) たとえば dynamicTextというダイナミックテキストインスタンスがあったとします。 読み込み変数は先ほどのmyText(保存ファイル名はoyamanew.txt)として、 第一フレームに loadVariables("oyamanew.txt"); dynamicText = myText; としてもmyText(oyamanew.txtの内容)が読み込み済みでない場合、未定義となり、まっしろけになってしまいます。 ですので、 1フレーム目に loadVariables("oyamanew.txt"); として、読み込んでおいてから1フレーム飛ばして (?飛ばさなくてもいけるかも) 3フレーム目に if (myText == null) { gotoAndPlay(1); } else { dynamicText = myText; } とすれば確実に代入することができると思います。 上記の場合ですと、 ほにゃらら ほげ と表示されるはずです。 ただし、DPEさんのおっしゃるとおり 日本語フォントは2M以上は確実ですので 埋め込みフォントは「なし」にすべきかと思われます。 (ただし、”すべてを埋め込み”にしても適切なスクリプトで記述してあれば、根気よく待てば表示されるはずです。ブロードバンドであれば問題ないかも?ただしトラフィックの無駄のような気もします・・) 軽いSWFのままで、どうしても任意のファントで綺麗に表示したければ FLAファイルを更新しやすいように作成するしかないでしょうね。 と、こんな感じですがいかがでしょうか?

その他の回答 (1)

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

ネット上で表示できない理由は、スクリプトが云々よりもswfファイルの容量が大きすぎるためだと思います。 ビットマップ画像やサウンドデータを極度に多用しているのでなければ、文字の表示に使っているフォントが原因ではないでしょうか。 テキストファイルを読み込ませたいとのことですので、テキストボックスの属性は「ダイナミックテキスト」にしてあるかと思います。 フォントは通常、フォントのアウトライン情報がムービーに書き出され、フォントがインストールされていないマシンでも同じように表示されるようになります。 静止テキストの場合は使われている文字の情報だけで済みますが、ダイナミックテキスト属性を設定しているテキストボックスでは全ての文字のアウトライン情報が書き出されてしまうため、ムービーのサイズが巨大になります。 (日本語フォントを1つ書き出すと、2Mくらいは軽く突破します) ですから、ダイナミックテキストを表示させるなら、アウトライン情報が書き出されないデバイスフォント(フォント名の先頭に”_”が付いているフォント)を使用した方が無難です。 まずはこの点を確認してみて下さい。

aeic
質問者

補足

的確なアドバイスを頂本当にありがとうございます。 早速試してみました。 結果は表示できませんでした。 試したフォントは下記のとおりです。 _明朝 _等幅 です。 その他の設定は (1)ダイナミックテキスト (2)複数行 (3)埋め込みフォント: 「すべてのフォントをアウトライン」 (4)ワードラップにチェック です。 状態はやはり最初の時と同じでした。 読み込みのゲージが永遠に途中の状態です。 ここまでアドバイスを頂本当に感謝しています。 DPEさんはどのような方法で表示が可能になったのでしょうか? お暇なお時間がございましたら教えていただけないでしょか? 時間がないようでしたら無視してください。 ありがとうございました。

関連するQ&A

  • Flashでjpegファイルを表示させる方法

    Flashのアクションスクリプトを使って外部テキストファイルを読み込む方法を模索していました。 外部テキストの文字を表示する事が出来ました。 ※下記ソース参照 onClipEvent(load){ this.loadVariables("test.txt"); } しかし画像を表示することは出来ませんでした。 どうか画像を表示させる方法を教えて頂けないでしょうか?ちなみにFlashMXを使わないと出来ないという情報は入手しました。

  • flash ActionScript textファイルの文字列の置換

    お願いいたします。 flash ActionScript2.0 で、外部で読み込んでいるtxtファイル内の「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させたいのですが、その場合どのようなScriptを記述すればよいのですか? 現在→ ムービークリップに対して、 onClipEvent (load) { this.loadVariables("flash.txt"); } というActionScriptを記述して、flash.txtという外部ファイルを読み込んでいます。 そこまでは、問題なくできたのですが、 flash.txtファイル内「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させるscriptがわかりません。 教えて下さい。お願いいたします。

    • ベストアンサー
    • Flash
  • Flashアクションスクリプトで

    Flashアクションスクリプトで、Movieクリップにswfファイルを読み込む時に、swfファイルが表示されるMovieクリップの背景色ってどうやって帰られるのでしょうか?? よとしくおねがいしますm(__)m

  • Flashで外部テキストファイルを読み込ませようとしたらば文字化けが発生

    Flashで外部テキストファイルを読み込ませようとしたらば文字化けが発生しました。 文字化けを解消しようと思いいろいろと試したのですがどうしても解消する事ができませんでした。 1つわかる事は数字を表示する事はできるという事です。 日本語になると文字化けになってしまいました。 テキスト側の記述 text=あいうえお フラッシュ側の記述 onClipEvent(load){ this.loadVariables("news.txt"); } になっています。 どうか良いアドバイスをいただけないでしょうか? お願いします。

  • Flash MXで外部テキストを読み込むと文字化けしてしまいます。

    以下のように、Flash MXで外部テキストを読み込むと文字化けしていまいます。 どうすれば文字化けせず、表示されるのでしょうか? onClipEvent (load) { this.loadVariables("myData.txt"); }

    • ベストアンサー
    • Flash
  • Flash/アクションスクリプトで日替わりテキストの読み込みの仕方

    こんばんは。pmpmpm5と申します。 質問集で検索しましたが、同じ質問がヒットしなかったので 今回質問させていただきます。 FlashMXを使用しアクションスクリプトで 「日替わりでちがうテキストを読み込む」方法を探しています。 以下、実際のスクリプトです。 ■ダイナミックテキスト(変数名:test)を含む ムービークリップ(インスタンス名box)をメインフレームに配置 ■メインフレームにフレームアクション myDate = new Date(); Month = myDate.getMonth()+1; Date = myDate.getDate(); message = "m"+ Month +"d"+Date; ■boxのクリップアクション onClipEvent (load) { this.loadVariables ("days.txt"); } onClipEvent (data) { //this.test = m12d22; this.test = this[message]; ■外部テキスト(days.txt) m12d22=今日は2月12日です。 m2d13=今日は2月13日です。 このように組み込んだのですが、ダイナミックテキストには 「今日は〇月〇日です。」という文字列が読み込まれず 困っています。 どうか、ご指導お願いいたします。

  • 【フラッシュ】外部テキストの読み込み

    よろしくお願いします。 いま、作っているフラッシュで外部テキスト(中身はサーバ名,www.~.com)を読み込んで それを参照してサーバからデータを取得するというスクリプトを作っています。 それで、めでたく完成したのですが、ローカル環境(swf,txtともにローカルマシンにある)で 確認するとうまく動くのに、サーバにアップしてみるとうまくいきません。 失敗の原因として、 1)そもそもtxtの読み込みがうまくいっていない。 2)読み込んでるが、それをswf内部でうまく参照できていない。 の二つがあると考えて、読み込んだデータを表示するテキストフィールドを用意して確認したのですが、 ちゃんと読み込んでいるのです。 すると、後はその取得データを参照するスクリプトがおかしいということになりますが、 そちらはローカル、サーバ上ともにまったく同じです。 いったい何が原因でしょう。 フラッシュの構造的には ■1フレーム目  フレームアクション:stop(); //いったん停止してデータを読み込む var theSvr;//サーバ名を格納し実際に参照する変数  配置MC:内部にsvrNameという変数を持つ、データ読み込み用のMC      onClipEvent(load){ this.loadVariables("sv.txt"); }      onClipEvent(enterFrame){ _root.theSvr = this.svrName; _root.gotoAndPlay(2);//フレームアクションのストップを解除して再生 }       ■2フレーム目以降の読み込みデータを使ったアクション  getURL(_root.theSvr);//基本的に、getURLに使う程度です。。 わかりづらいかもしれませんが、よろしくお願いします。

  • 外部テキストが読み込めない?

    FLASH5を使用しています。 読み込むテキストファイルはtest1.txtで、 swfファイルとtest1.txtは同じ階層にあります。 1フレーム目にダイナミックテキスト(変数:txt1)を置き、 フレームアクションに this.loadVariables ("test1.txt", "0"); txt1 = tes; と記述しました。 test1.txtには tes=aaaあいうえお と記述しています。 実際に動かしてみると、何も表示されません。 色々といじってみたのですが何処がおかしいのかもわかりません。 どうすれば文字が表示されるでしょうか?

  • テキストファイルを読み込むアクションは

    windows2000 Flash MX 外部画像ファイル(**.jpg)は loadMovie("**.jpg")で読み込めますが、外部テキストファイル(**.txt)を読み込むアクションスクリプトが解りません。 恐縮ですが例文を示していただけませんか。

    • ベストアンサー
    • Flash
  • FLASH 外部ファイル読み込み アクションスクリプト

    FLASH 外部ファイル読み込み アクションスクリプト SWFの上にSWFを読み込む時に、ボタンに on (press) { _level0.pic0.stop(); loadMovieNum ("pattern.swf", 3); } と書きました。 今これは”pattern.swf”を読み込んでいるだけなんですが これをpattern.swfの2フレーム目から読み込ませる ようにしたいのですが、誰か教えていただけないでしょうか? よろしくお願いします。