- 締切済み
テキストファイルの読み込み
Flash超初心者です。 フィールドを上下に分けて下の部分にボタンをつけて、ボタンをクリックすると上の部分にテキストファイルの内容が表示されるようなものを作りたいと考えています。 環境はFlash liteです。 分からないことだらけなので詳しく教えていただけるとありがたいです。よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1です。 > mytext1=あああ > &mytext2=いいい > &mytext3=ううう > : > とした場合はダイナミックテキストを > 変数の個数分用意すればいいのでしょうか? ということですが, そうできれば用意したほうが良いと思います。 FlashLite1.1だと,LoadVarsクラスメソッドが使えないので, 外部テキストのロード開始 ↓ 外部テキストのロード完了 ↓ mytext=mytext1+mytext2+mytext3 ↓ mytext をテキストフィールドに表示 というような, 「ロードが完了すれば自動的に文字列演算する」という流れを作ることが容易ではありません。 そのため,ダイナミックテキストを変数の個数分用意するのが普通になると思います。 ===================== 外部テキストの変数の個数や名称が動的に変動しない場合は, テキストフィールドを1つにして,そのテキストフィールドに自動的に文字列加算した結果を表示することは可能です。 Flash 内に用意するテキストフィールドの変数名は#1と同じで 「mytext」 とします。 ボタンに書くスクリプトも#1と同じで on (release, keyPress "5") { loadVariablesNum("mydata.txt", 0); } とします。 外部テキスト 「mydata.txt」 のデータは次のように変えたとします。 mytext1=あああ &mytext2=いいい &mytext3=ううう この場合, ステージ上の見えないような場所に小さなムービークリップを作成します。 そしてその小さなムービークリップ内を2フレームにします。 そして フレーム2 に次のようなスクリプトを書きます。 ---------------------------------------------- // もし _root の変数 mytext3 が空でない場合 if (/:mytext3 ne "") { // _root の変数 mytext に文字列をたす /:mytext = /:mytext1 add /:mytext2 add /:mytext3; // このムービークリップの再生をストップ stop(); } else { // それ以外はこのムービークリップをフレーム1に戻して再生 gotoAndPlay(1); } ---------------------------------------------- つまり,変数監視用のムービークリップを作成して, 2フレームをループさせて常に変数を監視させておくのです。 そして, 最後の変数 mytext3 が ""(空) でなくなれば,つまり何かの値が入れば, 文字列を加算して mytext に代入します。 こういうしくみを自作すれば, LoadVarsクラスのメソッドは使用しなくてもよくなります。 要は何でも if文 とか for文 とか gotoAndPlay() などなど簡単な文や関数を使って自作してしまうわけです。 考えれば結構なこともできてしまいますよ。 FlashLite ではない,今の普通の Flash は,こういうものを自作しなくて良いので,簡単です。 FlashLite の ne は, NotEqual で,文字列が等しいか等しくないかを判定するのに使用します。 現在の 普通のFlash の != と同じ役割を果たしますが,ne は文字列判定限定です。 /: は, パスと変数を表す記号です。/ が _root です。その次の : が変数という意味です。 したがって /:mytext3 は _root の 変数mytext3 という意味になります。 現在の 普通のFlash では _root.mytext3 と同じ意味です。 add は, 文字列の加算演算子です。 現在の 普通のFlash では + と同じ意味ですが,add は文字列加算限定です。
- BlurFiltan
- ベストアンサー率91% (1611/1754)
Flash Lite にもさらにバージョンがありますが, 勝手に Flash Lite 1.1 である(loadVariablesが使用できる最低バージョン)として回答します。 まず外部テキストですが。 mytext=あああああ いいい%0aいいい ううううう えええええ おおおおおおおお というデータを用意し, 文字コードを Shift-JIS,改行コードを CR (\n (%0a) ) にして, 「mydata.txt」というファイル名で任意のフォルダに保存します。 次にFlash のステージ上の上半分に,大きめのダイナミックテキストフィールドを作成し, そのダイナミックテキストの "変数名" を 「mytext」 にします。 そして Flash のステージの下半分のどこかにボタンシンボルのインスタンスを配置し, そのボタンに on (release, keyPress "5") { loadVariablesNum("mydata.txt", 0); } と書きます。 そして,このFlash(.fla)をテキストデータ「mydata.txt」と同じフォルダに保存して, 制御→ムービープレビュー で動作確認してもらうと, 「5キー」を押したとき,または,ボタンまでカーソルを持っていって決定キーを押したときに, 外部テキスト「mydata.txt」内に用意して置いた 「mytext」 という変数の値が変数名「mytext」のダイナミックテキストに表示されるので, 変数名「mytext」のダイナミックテキストフィールド内に, あああああ いいい いいい ううううう えええええ おおおおおおおお というデータが表示されます。
お礼
ありがとうございました。無事にできました。 ちなみに外部テキストを mytext1=あああ &mytext2=いいい &mytext3=ううう : とした場合はダイナミックテキストを変数の個数分用意すればいいのでしょうか?