• ベストアンサー

外部テキストを画像で表示させる方法を教えてください。

いつもお世話になっています。 外部テキストを読み込み、そのテキストを外部からテキストを読み込み表示させる所までは出来るのですが、そのテキストを画像で表示させる方法を教えて頂きたく質問させて頂きました。 ご教授のほど宜しくお願いいたします。 ------------------------------------------------- .FLASH Pro 8で作成しています。 その他必要事項ありましたら教えてください。

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

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

#1の方の補足要求のおかげで, 内容の概要が理解できました。 ご質問を見た限りでは,  外部テキスト=黒ウサギ        ↓   Flash に読み込み        ↓     画像に変換        ↓  □□□□□□□□□□□□□□□□□□□  □□□■□□□□□□□□□□□□□□□  □□□■■□□□□□□□□□□□□□□  □□□■■□□□□□□□□□□□□□□  □□□■■□□□□□□□□□□□□□□  □□□■■□□□□□□□□□□□□□□  □□■■■■■□□□□■■■□□□□□  □■田■■■■■■■■■■■■□□■□  □■■■■■■■■■■■■■■■■■□  □□■■■■■■■■■■■■■□□□□  □□□□■■□□■■■■■■□□□□□  □□□□■□□□■■■□□□□□□□□  □□■■□□■■■■■■□□□□□□□  回回回回回回回回回回回回回回回回回回回  こんなの!???  コレはどうすればいいのだろう?  難しい...,不可能じゃないか...? などと,勝手に想像してしまいました。 ======================== > 外部テキストをダイナミックテキストに3桁の数字で読み込んで > その数字を画像に置き換えて表示をしたいなと考えています。 そういうことでしたら,比較的簡単です。 (説明をしたり,説明を理解するのは難しいと思いますが。) 簡単に書くと, 0~9までの画像を各フレームに置いたムービークリップを用意して, そのムービークリップ内のタイムラインを gotoAndStop() させれば良いだけです。 ======================== まず,外部テキストですが, 「my_text.txt」 という ファイル名 で, そのファイルの中身が, ---------------- my_data=093 ---------------- であったとします。 これは仮定ですから,適当に変えてください。 次に Flash の作成に移りますが, まず, ムービークリップの作成です。 0~9の画像を 1~10 の各フレームに配置しムービークリップを作成します。 ムービークリップ内のタイムライン↓(ずれていると思いますが)。               1                10  □ レイヤー 筆・・|●|●|●|●|●|●|●|●|●|●|                0 |1 |2 |3 |4 |5 |6 |7 |8 |9 つまり, フレーム1 に 0 の絵を置いて, フレーム2 に 1 の絵を置いて,    …  …  … フレーム10 に 9 の絵を置くということです。 上記 ムービークリップの作成手順ですが, 最初に 0 の画像をステージ上に置いてムービークリップに変換し, そのムービークリップ内のタイムラインを 10 フレームにして, 各フレームを,空白キーフレームに変換して, その各空白キーフレームに残りの 1~9 の画像を配置するという手順が簡単にできる方法だと思います。 ここまでできましたら, メインムービーのタイムライン(ドキュメントの編集)に戻って, 上で作ったムービークリップをステージ上にコピペで3つに増やし横に並べます。     ↓フレーム1 のみが見えるはずなのですべて 0  「0」「0」「0」 そして,各ムービークリップにインスタンス名を付けます。 この説明では, 左から順に MC0,MC1,MC2 というインスタンス名を付けて置いたとしておきます。 つまり,ファイルの階層構造は次にようになっているということです。  _root   ├ MC0 (ムービークリップ) 一番左   ├ MC1 (ムービークリップ)   └ MC2 (ムービークリップ) 一番右 そして, それらのムービークリップが存在するフレームに, フレームのスクリプトとして次のように書けばできあがりです。 //////////////////////////////////////////////////////////// // MC0~2 を非表示にする(外部テキストがロードされるまで) for (var i = 0; i<=2; i++) { _root["MC"+i]._visible = false; } // // myLV という名の LoadVars クラスのインスタンスを作成 var myLV = new LoadVars(); // // 外部テキストロード完了時の処理を定義 myLV.onLoad = function(Seikou) { // ロードに成功すれば if (Seikou) { // MC0~2を各フレームに進めて表示 for (i=0; i<=2; i++) { _root["MC"+i].gotoAndStop(Number(this.my_data.substr(i, 1))+1); _root["MC"+i]._visible = true; } } }; // // 外部テキストの読み込み myLV.load("my_text.txt"); //////////////////////////////////////////////////////////// _root["MC"+i].gotoAndStop(Number(this.my_data.substr(i, 1))+1); について簡単に説明します。 変数 i が 2 であった場合の例で,内側から説明します。  this.my_data.substr(2, 1) これで, myLV 内の 変数 my_data の値(093) の, 2番の文字(0番が最初の文字)から 1 文字を取得できます。 つまり,i が 2 の場合 "3" が取り出されます。  Number(this.my_data.substr(2, 1)) これで,文字である "3" を,数値である 3 に変換しています。 ここまでで 3 が取り出されます。  Number(this.my_data.substr(2, 1))+1 これで,3+1 になるので 4 が取り出されます。 したがって,  gotoAndStop(Number(this.my_data.substr(2,, 1))+1); これは, gotoAndStop(4); となります。 _root["MC"+i].gotoAndStop(4); で,i が 2 の場合を考えていますから,  _root["MC2"].gotoAndStop(4);      ↓   _root.MC2.gotoAndStop(4); となり,MC2 は フレーム4 ,つまり 3 の画像を表示してストップします。 最初から通すと, 外部テキスト内の変数「my_data」の値が「093」である場合, そのデータを LoadVars クラスの load で myLV というインスタンスに, 変数「my_data」,値「093」がロードされます。 for 文 i を 0~2 に変えながら一気に処理していますが, i が 2 であった場合, 「093」 のうち 「2番の文字」 つまり 「3番目の文字=3」 が取得されるため, MC2 は フレーム 4 でストップする。 ということです。 時計の作り方ならこちらが参考になるかもしれません↓。 「ウィジェットの作り方 vol.02 デジタル時計を作ってみよう」 http://web.kabegami.com/kabegami/dt/widget_flash_making02.html スクリプトは全然違いますが,ムービーの構造は同じです。 また, よく似た感じのご質問で, こちらも参考になるかもしれませんか↓。 【カウンタ画像表示】split? http://oshiete1.goo.ne.jp/qa2754295.html  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/qa2754295.html  

you_key
質問者

お礼

sassakunさん 返答が遅れて申し訳ありません。 急いで質問させてもらったためものすごくアバウトな質問に なってしまって申し訳ありませんでした。 sassakunさんの手順で先ほど試したところ無事表示することが出来ました。 また、階層構造と補足説明までして頂き、十分に理解することが出来ました。補足説明をしていただいたお陰で次のステップに進むことが出来そうです。 まだまだ勉強不足ですが、これからも頑張っていきたいと思いますので また何かありましたら宜しくお願いいたします。 本当にありがとうございました。

その他の回答 (1)

  • suzuko
  • ベストアンサー率38% (1112/2922)
回答No.1

>そのテキストを画像で表示させる 今ひとつ、意味が分からないのですが、 外部テキストをダイナミックテキストに読み込むことが出来て、その表示を文字として選択させたくないと言うことでしょうか?

you_key
質問者

補足

早速のお返事ありがとうございます。 急いで質問してしまったためかなりアバウトな質問になってしまって いて申し訳ありませんでした。 外部テキストをダイナミックテキストに3桁の数字で読み込んでその数字を画像に置き換えて表示をしたいなと考えています。 suzukoさんがおっしゃるとおりのことです。よく時計などで数字を 置き換えて表示しているので出来るのかなとは思ってはいたのですが 作り始めたらまったくわからなかったので質問させて頂きました。 一応ライブラリに0~9の画像をタイムラインにフラグと共に 貼り付けたムービークリップを用意しました。 これをどうすればよいのか判らず困っています。 引き続きご教授のほど宜しくお願いいたします。

関連するQ&A