- ベストアンサー
Flashでロールオーバー
FlashCS4で、テキストがフェードインしてくるロールオーバーボタンをつくりましたが、クリックした時、放した時にも、そのフェードインがでてしまいます。マウスオーバー時のみボタンをフェードさせたいのですが、どうやったらよいのかわかりません。 as3は、フェードインムービークリップにstop();だけつけてあります。 どなたか、お分かりの方がいらしたら是非よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ボタン(SimpleButtonクラスのインスタンス)でボタンを用意したからでしょう。 SimpleButton というのは, ステージ上に何か絵を描いて, その絵を選択→「修正」→「シンボルに変換」→ タイプ(T) でボタンを選択 などで作る 普通のボタン のことです。 ActionScript 1.0,2.0 では Buttonクラス に属するオブジェクトです。 ActionScript 3.0 では SimpleButtonクラス に属します。 ご質問のような凝った動作をさせるにはボタン(SimpleButton)は使えません。 ムービークリップのタイムラインを利用する など 何らかの方法でボタンを自作します。 === 自作ボタン例 ========= 例えば【下の図】↓のように, ボタンの動作をムービークリップシンボル内のタイムラインに作成します。 ムービークリップ内 フレーム1 が普通の状態の絵柄。 ムービークリップ内 フレーム2~15 で文字がフェードインしてくる。 というような内容です。 ムービークリップ内のフレーム1には stop(); を書いておきます。 またフェードインしきった最終フレーム(フレーム12)にも stop(); を書いておきます。 上記のようにして作ったムービークリップを, メインのタイムラインのステージ上に配置して, そのムービークリップに例えば「button_mc」というインスタンス名を付けて, メインのタイムラインのフレームに次のように書きます。 ------------------------------------------------------------------------ // button_mc に ロールオーバー時に 関数onOver を実行するイベントリスナーを登録 button_mc.addEventListener(MouseEvent.ROLL_OVER,onOver); // 関数onOverの定義 function onOver(evt:MouseEvent):void{ // button_mc 内タイムラインをフレーム2から再生開始 evt.currentTarget.gotoAndPlay(2); } // button_mc に ロールアウト時に 関数onOut を実行するイベントリスナーを登録 button_mc.addEventListener(MouseEvent.ROLL_OUT,onOut); // 関数onOutの定義 function onOut(evt:MouseEvent):void{ // button_mc 内タイムラインをフレーム1へ戻して停止 evt.currentTarget.gotoAndStop(1); } ------------------------------------------------------------------------- ・バージョン ActionScript 3.0 Flash Player 9 以上用SWFパブリッシュで使用可 以上で書いたことは あくまでも「たとえばの例」 です。 ムービークリップをさらに入れ子にしても良いですし, 文字もモーショントゥイーンでフェードインさせなくても良いですし, スクリプトをメインのタイムラインに書く必要も特にありません。 その辺は無数の方法やバリエーションがあるので何が良いとも言えません。 とにかく, ボタン(普通のSimpleButton) は使えないので, それ以外の方法を使ってボタン機能を自作します。 ※ ボタンにボタンを使わないのは今に始まったことではありません。 Flash MX (2002年 ActionScript1.0)の頃からされている一般的なことです。 (MX からは onRollOver などがムービークリップに使えるようになったため。) 逆に言えば, 「麦芽100%のビール」が特殊なのと同様 「素うどんを注文する客」が特殊なのと同様 「殺人のないミステリー」が特殊なのと同様 「印籠を出さない水戸黄門」が特殊なのと同様 「ネギ無し味噌汁」は松屋でしか見ないのと同様 「ボタンを使ったボタン」は特殊なものかもしれません(???)。
お礼
BlurFiltan様、とってっも親切でわかりやすいご説明ありがとうございます!!感動いたしました!初心者の私でもわかりやすく説明していただき本当に感謝いたします。なるほどぉ。ボタンを使わない方法ですね!わかりました。やってみます。 「印籠を出さない水戸黄門」にならぬようがんばります^^! 本当にありがとうございました!