• ベストアンサー

Flashで文字の表示を

Flash勉強中の初心者です。 以下のサイトにあるように色(ボタン)を選ぶと 選んだ色名が表示されるようにするにはどうしたら よいのでしょうか? http://www.wetsuits.jp/color_s.html

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

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

ダイナミックテキストフィールドを用意して, 各ボタンの on (rollOver) { } で,テキストフィールドに, 各ボタンに応じた文字列を表示させているのです。 --- 例 ------------------------ ステージ上に, 文字色が黒のダイナミックテキストを作成します。 そして, そのダイナミックテキストを選択した状態で, 下のプロパティインスペクタ(プロパティパネル)を表示させて, 右の方にある,  A [ダイナミックテキスト v]    [ <インスタンス名> ] となっている部分にインスタンス名を付けます。 インスタンス名は半角アルファベットから始まっていて, 半角英数文字列であれば,たいていの場合何でもかまいません。 この説明では 「color_name」 というインスタンス名を付けたとしておきます。 好みですが,わかりやすいように, プロパティインスペクタの中ほどにある  [単一行   v] Ab <> ■ となっている ■ を押した状態にして, 周囲にボーダーを付けても良いです。 そして, 次に例えば「黒色ボタン」を作成します。 その「黒ボタン」には ------------------------------ on (rollOver) { _root.color_name.text = "Mブラック"; } ------------------------------ 次に例えば「濃いグレー色ボタン」を作成します。 その「濃いグレー色ボタン」には ------------------------------ on (rollOver) { _root.color_name.text = "Mチャコール"; } ------------------------------ という感じでどんどんボタンを作成していって, 最後に例えば「オレンジ色ボタン」を作成します。 その「オレンジ色ボタン」には ------------------------------ on (rollOver) { _root.color_name.text = "MKオレンジ"; } ------------------------------ というスクリプトを書いて, パブリッシュして完成です。。 これは他にも色々使えますね。 たとえば,日本地図の各都道府県を, 「北海道ボタン」「青森ボタン」…「沖縄ボタン」と, ボタンで作成していきます。 そして, ダイナミックテキストフィールドを用意して, そのダイナミックテキストフィールドには, 「北海道ボタン」ロールオーバーで,  "日本列島北部の道、および、その地方。" 「青森ボタン」ロールオーバーで,  "東北地方、本州最北端の県。"  …  …  … 「沖縄ボタン」ロールオーバーで,  "日本列島南西端の県。大東諸島を含む。" などを表示させても良いです。 上では改行のことに触れていませんが, テキストフィールド内で改行したい場合は, ダイナミックテキストを選択した状態で, プロパティインスペクタの中ほどにある  [単一行   v] Ab <> ■ この部分を  [複数行   v] Ab <> ■ にしておき, テキストフィールドの高さを高くしておきます。 そして,たとえば, 「沖縄ボタン」ロールオーバーで,  日本列島南西端の県。↓(改行)  大東諸島を含む。 と表示させたい場合は, ------------------------------ on (rollOver) { _root.color_name.text = "日本列島南西端の県。\n大東諸島を含む。"; } ------------------------------ という感じで, 改行したい場所に \n を入れてください。 すると,そこで強制改行します。 Flash のバージョンを書かれていませんが, 上記のスクリプトは,ダイナミックテキストにインスタンス名が付けられるようになった, Flash MX 以上(Flash MX,Flash MX 2004,Flash8)で使用できるスクリプトです。 ====================== ちなみに…。 ダイナミックテキストフィールドも,ActionScriptも全く必要ない方法もありますよね。 ボタンの「オーバー」フレームにだけ, 「Mブラック」 や 「MKオレンジ」 などの文字を用意しておけば良いだけです。 第17回 ボタンの仕組みを利用しよう http://itpro.nikkeibp.co.jp/article/COLUMN/20060720/243797/ このページの「図1:ボタンを使ったムービー」は, 電車に乗っている人が全てボタンになっていて, そのボタンの「オーバー」のフレームと「ダウン」のフレームだけに「吹き出し」をいれてあります。 その他の例も色々あります。 しかし, この方法はプログラミングなしという点では簡単ですが, 逆に全体的なレイアウトをつくるのが難しく, また作ったあとのレイアウト修正やデータ修正もかなり面倒になるので, ご質問にあるような場合は普通は使いません。 簡易的にはこのような方法もあるということです。 というか, Flash のボタン作成の基本ですね。 こちらは, Flash 2 などかなり古いバージョンでも使用できる方法です。 ====================== まだまだ方法はたっくさんあります。 Flash のスクリプトの基本中の基本, gotoAndStop() を使ってもできます。 例えば「黒色ボタン」を作成します。 その「黒ボタン」には --------------------- on (rollOver) { gotoAndStop(○○); } --------------------- それで,この ○○ には, 「Mブラック」と書いたテキストを用意したフレーム数を書いておけば良いだけです。 また, ムービークリップの中のタイムラインを使えばもっと制約のない動きが実現できます。 「黒ボタン」には --------------------- on (rollOver) { ムービークリップのインスタンス名.gotoAndStop(○○); } --------------------- この ○○ には, 「Mブラック」と書いたテキストを用意したムービークリップ内のフレーム数を書いておけば良いだけです。 困ったときはフレーム移動(gotoAndStop(); や gotoAndPlay();)です。 ムービークリップとフレーム移動を使えばかなりなことができます。 他にもまだまだ方法はありますが, きりがないのでこの辺で終わります。 上に書いた3つの方法では, 今回のような場合, ご質問で書かれているサイトでも使われている, 最初に書いたダイナミックテキストを使う方法が一番良いと思います。 しかし, 最も汎用的に色々なことをバキバキとこなせるのは, ムービークリップのフレーム移動です。  

ciao-ciao
質問者

お礼

非常にわかりやすいご回答ありがとうございます。 ダイナミックテキストを使って試してみました。 他のやり方は今後、Flashに慣れてきたら試そう と思います。 どうもありがとうございました。

関連するQ&A