- ベストアンサー
ボタンインスタンス内のムービーの色の変更
- ボタンインスタンス内のムービーシンボル(静止テキスト)の色を変更する方法を教えてください。
- ボタンインスタンス内のムービーシンボルの色変更に関するスクリプトを試したがうまくいかない。
- ボタンインスタンス内のムービーシンボルの色を変更するために、適切なスクリプトを教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご質問文を読んだ限りでは、要するに、マウスカーソルが乗った時に、ボタンに書かれたテキストの色のみを変化させたいということではないかと思います。 これでしたら、ボタンシンボルの「オーバー」フレームを使った方が簡単です。 ボタンシンボルの編集画面を開いてみて下さい。 ムービークリップとは違い、「アップ」「オーバー」「ダウン」「ヒット」というフレームがあります。 ・アップ 何も操作していない時の、ボタンの外観。普段はこの絵が表示されます。 ・オーバー ボタンにカーソルが乗ると、このフレームの絵が表示されます。 ・ダウン ボタンをクリックした時に、このフレームの絵が表示されます。 ・ヒット マウスが反応する領域を定義できます。 ムービークリップと同様に、それぞれのフレームにキーフレームを設定して描画します。また、レイヤーを増やして絵を重ねることもできます。 例えば、「アップ」のフレームに白の四角形と赤の「 TEST 」というテキストを描いたとします。この状態が、普段表示されるボタンの外観となります。 他の3つのフレームを未定義のままにしておくと、「アップ」と同じ内容が採用されます。ステージにある絵をボタンシンボルに変換した直後はこの状態になっていて、ボタンにカーソルを当てたりクリックしたりしても、ボタンの外観は何も変化しません。 「オーバー」のフレームにキーフレームを作り、「アップ」と同じ内容をコピーして配色を変更し、動作を確認してみて下さい。外観だけなら、ムービー編集画面の「制御」→「シンプルボタン」にチェックを入れると、編集画面でも確認できます。 (「シンプルボタン」が有効になっている間はボタンインスタンスを選択できなくなりますので、確認が済んだらチェックを外しておきましょう) 同様にして「ダウン」のフレームにも変更を加えると、クリックした時のボタンの外観を変化させることができます。 なお、「ヒット」のフレームは他の3つとは違い、ムービーでは表示されません。 ボタンが丸や四角のような形ならあまり問題はないのですが、例えば文字をボタンとして使いたい場合、「ヒット」を定義しなければ、文字の線がない部分はマウスが反応しなくなってしまいます。 「ヒット」のフレームで文字全体が収まる程度に四角形を描画しておくと、その領域がマウスが反応する領域として定義されますので、文字に隙間が空いていてもボタンを押しやすくなります。 たまに、テキストを使ったボタンの反応が不安定になっているムービーを見かけますが、これは、ヒット領域を定義していないことが原因と思われます。
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
「アクション」ウィンドウの上部に、アイコンが7つほど並んでいます。 中央のアイコンは、対象を選ぶだけでターゲットパスを自動で挿入してくれる機能ですが、内部にムービークリップを持つボタンをこれで見ると、ボタンの子として存在しているはずのムービークリップが表示されません。 ボタンシンボルは、絵としては内部にムービークリップを配置することはできても、ActionScript の Button クラスとしては親子階層を管理・制御できない仕様になっているのではないでしょうか。 ボタンシンボルには特殊なフレームが4つあるだけで、タイムラインがありません。 再生ヘッドがないためフレームアクションが実行できず、従って、フレームアクションを設定できませんし、実は、ボタンシンボルやインスタンスは変数を持つこともできません。 (ボタンインスタンスでターゲットパスを省略して変数を参照すると、親のタイムラインにある変数を参照するという意味になります) この点からも分かる通り、ボタンシンボルとムービークリップシンボルは根本的に設計が違います。 ボタンシンボルは、マウスイベントに合わせてフレームを自動的に切り替えてくれるという、便利な機能を持っています。ムービークリップでもボタンは作れますが、マウスイベントに応じてフレームを切り替えてくれるサービスはありません。 本当にシンプルなボタンを作成するには、ムービークリップよりも有利と言えます。しかし、その反面、階層構造を管理できなかったり、複雑な効果を ActionScript で実現することができないなど、様々な制約もあります。身もフタもない言い方ですが、「そういう仕様」なので、こればかりは仕方がありません。 階層構造のムービークリップを ActionScript で制御する必要があるなど、複雑な演出のボタンを作るには、やはり、最初からムービークリップを利用するべきでしょうね。
お礼
色々教えて頂きながら実践して感じた事ですが、おっしゃる通りムービークリップって使い勝手の良い万能に近いものですね。ボタンシンボルと同じ使い方も出来るようになったし。 ありがとうございます。
お礼
DPEさん、ご無沙汰しています。 ありがとうございます。そうか、そう言う方法があったのですね。検証しました。確かにやりたかった事が正しく実現出来ました。 ただ、なぜボタン内のムービーシンボルの色を変えられないんだろうかと疑問を抱きます。 同じフレームに、ヒット領域用の矩形とムービーシンボル化したテキストを用意し、フレームアクションで矩形部分にマウスが乗ったときにテキストの色を変える事が出来ました。絶対位置や相対位置の指定方法に誤りがあるのでしょうか?。