【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード

ボタンにマウスオーバーすると、外部swfを読み込むムービーを作っております。

| ̄ ̄ ̄ ̄ ̄|
|    A    |
|_____|
■■■■■■

こんな感じで、黒の■がそれぞれボタン、読み込むステージがAの枠です。(ちょっとズレてますが。。)■ボタンとステージaはぴったり隣接しています。

例えば、一番左の■ボタンにマウスオーバーし、Aにムービーが流れます。
このときにカーソルが■ボタン、Aの上を行き来しても、ずっとムービーが流れていて、■ボタンとAを合わせた領域をはみ出すと、はじめてムービーが消えるというものを作りたいのです。

要は、■ボタンにマウスオーバーすると、下の図の部分にカーソルが乗っている間はムービーが再生中。下の図の部分をカーソルが外れるとムービーが消えるというものです。
| ̄ ̄ ̄ ̄ ̄|
|    A    |
|_____|


これを各■ボタンに設定。そして■ボタン自体は単体で外部リンクします。

いろいろやってみたのですが、■ボタンからAに乗るとムービーが再度頭から再生したり、上図のかたまりを図形とした透明領域を作ると■ボタン単体のリンクで引っかかってしまったりと。。

良いアドバイスはないでしょうか?よろしくお願いいたしますm(_ _)m

A 回答 (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_tutor …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!