-PR-
解決済み

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

  • すぐに回答を!
  • 質問No.298291
  • 閲覧数77
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 10% (60/582)

私はフラッシュを始めたばかりの素人です。
フラッシュをいろいろとHPに組み込みたいと思いました。が、メンテナンスするのがいちいち面倒なのでどうにかできないかと考えた結果、textファイルを読み込ませんるという方法でした。
 もちろんtextファイルで編集できるのは文字だけだとわかっていますが、少しはメンテナンスがしやすくなりますのでとてもよいと考えました。

やってみて問題がおきました。
結果は「やけにSWFファイルが重くなる(2Mちょっと)になることと、ネット上で動かすと表示されなこと」です。

いろいろ試しましたが、私が思うにtextファイルを読み込むアクションスクリプトを使うとやけに重くなってしまうような結果になりました。
textファイルに読み込ませる文章はせいぜい40文字程度でしかないのにもかかわらずローカルで表示させた場合に出来るSWFファイルの要領が2.1Mにもなりました。
それをネットにアップさせて表示させようとした場合は接続が永遠に続き結局表示することが出来ません。

textファイルを読み込ませるための何かコツが必要なのでしょうか?
また、このような物と認識すればよいのでしょうか?
どうか具体的なソース、アドバイスをいただけないでしょうか。お願いします。

▼読み込み時に使用したアクションスクリプト
onClipEvent(load){
this.loadVariables("oyamanew.txt");
}
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル8

ベストアンサー率 43% (13/30)

こんにちわ。

さて、上記のアクションスクリプトがどこに記述されていて、どのように表示されようとしているのかわからないので、この回答は適切でないかもしれませんが・・

たしか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件)

  • 回答No.1
レベル13

ベストアンサー率 85% (666/776)

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

お礼率 10% (60/582)

的確なアドバイスを頂本当にありがとうございます。
早速試してみました。
結果は表示できませんでした。
試したフォントは下記のとおりです。
_明朝
_等幅
です。
その他の設定は
(1)ダイナミックテキスト
(2)複数行
(3)埋め込みフォント:
「すべてのフォントをアウトライン」
(4)ワードラップにチェック
です。

状態はやはり最初の時と同じでした。
読み込みのゲージが永遠に途中の状態です。
ここまでアドバイスを頂本当に感謝しています。
DPEさんはどのような方法で表示が可能になったのでしょうか?
お暇なお時間がございましたら教えていただけないでしょか?
時間がないようでしたら無視してください。
ありがとうございました。
投稿日時 - 2002-06-23 23:37:18


このQ&Aで解決しましたか?
関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ