- 締切済み
マウスオーバーでの外部swf読み込み
ボタンにマウスオーバーすると、外部swfを読み込むムービーを作っております。 | ̄ ̄ ̄ ̄ ̄| | A | |_____| ■■■■■■ こんな感じで、黒の■がそれぞれボタン、読み込むステージがAの枠です。(ちょっとズレてますが。。)■ボタンとステージaはぴったり隣接しています。 例えば、一番左の■ボタンにマウスオーバーし、Aにムービーが流れます。 このときにカーソルが■ボタン、Aの上を行き来しても、ずっとムービーが流れていて、■ボタンとAを合わせた領域をはみ出すと、はじめてムービーが消えるというものを作りたいのです。 要は、■ボタンにマウスオーバーすると、下の図の部分にカーソルが乗っている間はムービーが再生中。下の図の部分をカーソルが外れるとムービーが消えるというものです。 | ̄ ̄ ̄ ̄ ̄| | A | |_____| ■ これを各■ボタンに設定。そして■ボタン自体は単体で外部リンクします。 いろいろやってみたのですが、■ボタンからAに乗るとムービーが再度頭から再生したり、上図のかたまりを図形とした透明領域を作ると■ボタン単体のリンクで引っかかってしまったりと。。 良いアドバイスはないでしょうか?よろしくお願いいたしますm(_ _)m
- みんなの回答 (1)
- 専門家の回答
みんなの回答
1つの案です。 まず,新しいレイヤーを作成して, 「A」と周りを取り囲むように, 半透明(色は任意)な塗りを用意します。 □□□□□□□□□ □□| ̄ ̄ ̄ ̄ ̄|□□ □□| A |□□ □□|_____|□□ □□□□□□□□□ □□□□□□□□□ 「A」の下側の塗りの範囲は ■ のボタンを越える方が良いです。 半透明な塗りは「A」の部分だけがくり抜かれたようになっている長方形になります。 この半透明な塗りのレイヤーを ■ のボタンより下のレイヤーに移動させます。 そして半透明な塗りを選択して, ムービークリップに変換します。 そして,そのムービークリップに次のようなスクリプトを書きます。 ---------------------------------- // このムービークリップが表示されたとき onClipEvent (load) { // このムービークリップを透明に this._alpha = 0; // このムービークリップを非表示に this._visible = false; } // このムービークリップにロールオーバーしたとき on (rollOver) { trace("Aを消す"); // このムービークリップを非表示に this._visible = false; } ---------------------------------- そして,このムービークリップにインスタンス名を付けます。 この説明では「toumeiMC」というインスタンス名にしておきます。 そして, ■ のボタンには次のように書きます。 ---------------------------------- on (rollOver) { trace("外部swfを読み込む"); _root.toumeiMC._visible = true; } ---------------------------------- そして, 「制御」→「ムービープレビュー」などで実行すると, "外部swfを読み込む" や "Aを消す" が trace されると思います。 外部swfを読み込むスクリプトはどうされているのかわかりませんし, Aを消すのもどうしようとされているのかわかりませんので, 様々な場合が考えられるので,trace() で代用しました。 「Aを消す」という動作が変われば, ■のボタンの数だけ,半透明な塗りのムービークリップが必要になり, それらのムービークリップには別々のインスタンス名が必要になります。 外部SWFを同じムービークリップに読み込むようにしていて, ムービークリップ.unloadMovie(); など共通なスクリプトで消せるのでしたら, 半透明なムービークリップは1つで済むと思います。 _visible = false; ですが, これは,本来「非表示」というスクリプトです。 しかし,これを使うと,ボタンとしての機能も無効にできます。 また, なぜ半透明な塗りを用意しているかというと, 全く透明だと,作成中に存在が見えにくいですし, 透明でないと,他の物が見えにくくなるので半透明なだけです。 作成上の都合を考えただけで, 実際は,全く透明な塗りでも,全く透明でない塗りでもかまいません。 _visible = false を使う以外では, enabled = false; を使っても良いと思います。 半透明ムービークリップ ---------------------------------- // このムービークリップが表示されたとき onClipEvent (load) { // このムービークリップを透明に this._alpha = 0; // このムービークリップのonイベントを無効に this.enabled = false; } // このムービークリップにロールオーバーしたとき on (rollOver) { trace("Aを消す"); // このムービークリップのonイベントを無効に this.enabled = false; } ---------------------------------- ■ ボタン ---------------------------------- on (rollOver) { trace("外部swfを読み込む"); _root.toumeiMC.enabled = true; } ---------------------------------- 「Flashにおけるボタンの無効化の応用」 http://www.mediacreator.jp/tutorials/print_tutorial.asp?id=69