• ベストアンサー

外部テキストファイルを読み込ませたい

ダイナミックテキストを作成しUIScrollBarを取り付けました。 テキストの内容はダイナイナミックテキストに直接書いていますが、すぐ変更になるのでその都度パブリッシュするのが面倒です。 外部のテキストファイルを読み込ませたいのですがどのように拡張すればいいか教えてください。Flash Professional 8を使用しています。 まだ、Flashをはじめたばかりです。

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

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

どういうものを表示させたいのかによって, 用意するテキストやスクリプトも変わりますから, 正確には回答できませんが, シンプルなものの一例を回答します。 やることは簡単なのですけどね。 色々場合があるのです。 まず外部テキストですが, OS が Windows でメモ帳(Notepad)で作成するものとし, 日本語入りテキストで,文字コードを Shift-JIS とし, 次のようなテキストを 「mydata.txt」 というファイル名で保存したとします。 「mydata.txt」 の内容 ---------------------------------- haru=春は、あけぼの。 やうやう白くなりゆく山ぎは、少し明りて、 紫だちたる雲の、細くたなびきたる。 夏は、夜。 月の頃は、さらなり。 闇もなほ。 蛍の多く飛び違ひたる、 また、ただ一つ二つなど、 ほのかにうち光りて行くも、をかし。 雨など降るも、をかし。 ---------------------------------- テキストデータの形は,上のように, 「変数名=値」 というものにしてください。 上の場合, 「変数名」は 「haru」 で, 「値」は 「春は、あけぼの。…雨など降るも、をかし。」 ということになります。 上で用意した 「mydata.txt」 と同じフォルダに, SWF と それを貼り付ける HTML を用意するものとします。  任意のフォルダ    ├ ○○.html (○○.swf を表示)    ├ ○○.swf (mydata.txt をロード&表示)    └ mydata.txt Flash でドキュメントを作成して, ダイナミックテキストフィールド(複数行設定)とそのダイナミックテキストフィールドにUIScrollBarを付けます。 ダイナミックテキストフィールドぬはインスタンス名が必要ですが, ここでは,何も考えずにダイナミックテキストフィールドを作成して, 何も考えずに UIScrollBar を付けたときに自動で付くインスタンス名 「InstanceName_0」 を, ダイナミックテキストフィールド に付けたとしておきます。 その, 「InstanceName_0」 というインスタンス名のダイナミックテキストが存在するフレームに, フレームのスクリプトとして次のように書けば(コピペ可能), 外部テキスト「mydata.txt」 の 変数名 haru の値が 「InstanceName_0」 に表示されます。 ------------------------------------------- // 外部テキストを Shift-JIS として読み込む // (文字コード UTF-8 のときや英数字のみは不要) System.useCodepage = true; // // LoadVarsクラスの インスタンス myVars を作成 var myVars = new LoadVars(); // // インスタンス にテキストがロード時の処理を定義 myVars.onLoad = function(Seikou) { if (Seikou) { // 改行コード \r(CR) の削除 // (改行コード LF のみのときは不要) this.haru = this.haru.split("\r").join(""); // テキストの表示 _root.InstanceName_0.text = this.haru; } else { _root.InstanceName_0.text = "ロード失敗"; } }; // // 外部テキストをロード myVars.load("mydata.txt"); ------------------------------------------- これでパブリッシュすればできあがりです。 テキストデータを作成する部分を, 「OS が Windows でメモ帳(Notepad)で作成するもの」 としているので上のように,  // 改行コード \r(CR) の削除  // (改行コード LF のみのときは不要)  this.haru = this.haru.split("\r").join(""); のような変な行が付いています。 メモ帳は改行コードを選ぶことができず, 「CR+LF」が1セットで1改行になります。 メモ帳ではなく,改行コードを選択できるテキストエディタをご使用の場合は, 改行コードを LF のみにしてください。 そうすると, this.haru = this.haru.split("\r").join(""); という処理はしなくてすみます。 また,テキストデータを保存するときの文字コードも, Shift-JIS ではなく,UTF-8 で保存すると, 1行目の,  // 外部テキストを Shift-JIS として読み込む  // (文字コード UTF-8 のときや英数字のみは不要)  System.useCodepage = true; これも不要になります。 文字コードの選択は,メモ帳でも可能です。 その他, LoadVars で検索すると様々な事例や解説が見つかると思います。 http://www.google.co.jp/search?hl=ja&q=LoadVars&lr=

bobo_0827
質問者

お礼

すばらしいです!!動きました。有難うございました!! ネットでいろいろ検索しながらトライしていました。しかし、スクロールバーが正しく表示されなかったり、改行コードの処理のことはまったく無知でしたので表示がおかしかったりしていました。本当に本当にありがとうございました。これでホームページを飾ることができます。

関連するQ&A