- ベストアンサー
Flashマウスオーバー
Flashで、ループが一回の小さなムービーを流し、 その上にマウスを合わせると(クリックではなくオーバーのみ)、別の絵が表示されてストップし、またマウスを外すと元のムービーがはじめから流れるものを造りたいのですが、ボタンシンボルで造ると、マウスを外してもムービーが最初からは始まりません。 ボタンシンボルを使わずにon(release)のような記述で、クリックではなくマウスオーバー時に反応させるにはどうしたらよいのでしょうか? 良いアドバイスがあれば教えてください。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
え! ムービークリップシンボルにマウスイベント付けられますよ。 (ただ、バージョンによって違うのかもしれませんが) 質問文の解釈にわからないところがありますので、解釈が違う場合、 訂正、補足お願いします。 >別の絵が表示されてストップし というのは、再生しているムービーの上に別の絵(静止画)を表示。 そのとき、再生していたムービーを停止。 という事でしょうか? そういう解釈ですすめます。 まず、再生させたいムービー(以後、MCと表記)をステージ上へ 配置します。 (ムービークリップシンボルである事を確認) 次に、配置したMCの上に表示したい絵を配置。 この絵をムービークリップシンボルへ変換。 インスタンス名を PIC とします。 このPICを選択して、下のアクションスクリプトを記述します。 onClipEvent(load){ this._visible=false; } これは、このPICが読み込まれたとき、 自分自身(PICのこと)を非表示にするという事です。 次に、最初に配置したMCを選択して、 下のアクションスクリプトを記述します。 on (rollOver){ _root.PIC._visible=true; this.stop(); } on (rollOut){ _root.PIC._visible=false; this.gotoAndPlay(1); } これは、マウスが自分自身(MC)の上にのった(rollOver)とき、 インスタンス名PICのムービークリップを表示。 自分自身(MC)をストップ。 マウスが自分自身(MC)から外れた(rollOut)とき、 インスタンス名PICのムービークリップを非表示。 自分自身(MC)のタイムライン上でフレーム1へジャンプ、つまり、 最初へ戻す。 という事。 といった感じでやればできますよ。 ちょっと、難しいですが、結構スマートにできますし、 こういうやり方を覚えれば、一つのアクションで すべてのムービークリップやボタン、その他・・・を簡単に 制御できるようになりますよ。
その他の回答 (1)
>> ボタンシンボルを使わずにon(release)のような記述で それは難しい。 基本的にそういうことはボタンシンボルでないとできません。 なのでボタンシンボルを使ってon (rollOver)のような記述でする方法を書きます。 >> Flashで、ループが一回の小さなムービーを流し このムービークリップのインスタンス名を A とします。 >> 別の絵が表示されてストップし このムービークリップのインスタンス名を B とします。 Aには最後のフレームに「stop();」,Bには最初と最後のフレームに「stop();」が書いてありますよね。 それを前提に,ボタンでそれらを制御します。 AでもBでもないルートに,Aにちょうど覆い被さるような透明な(塗りのアルファ0)のボタンを用意します。Aより上のレイヤーが良いと思います。 この透明なボタンに, on (rollOver) { _root.B.play(); } on (rollOut, dragOut) { _root.A.gotoAndPlay(1); } と書けば, その透明ボタンにマウスがロールオーバーすると,ムービークリップBがスタートし, マウスのロールアウトで,ムービークリップAが最初のフレームに戻り,再生を始めます。 ボタンでムービークリップを制御する方法です。 これで良いと思うのですが,もし,AとBを同時に動かしたくない場合は, on (rollOver) { _root.B.play(); _root.A.stop(); } on (rollOut, dragOut) { _root.A.gotoAndPlay(1); _root.B.stop(); ; } などとしてもいいですね。 適当に作り変えてください。
お礼
ありがとうございました。 出来ました! 参考になりました。
お礼
ありがとうございました! 参考になりました。