- ベストアンサー
FLASHでドロップダウンメニュー(ParaFla使用)を作成する方法
- FLASHを使用してParaFlaを使ったドロップダウンメニューを作成する方法についてご質問です。
- 作成中のメニューでは、大きなメニューをクリックすると画像が変化し、小さいメニューが表示される仕組みです。
- 現在の状況では、子メニューが展開されずに大きくならないため、正しく動作しないようです。アドバイスをいただけると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ここではサンプルなどを提示できませんし, 提示できたとしても私には ParaFla! でサンプルを作成する能力もありませんからヒントだけのようなものです。 ボタン機能( on(rollOver){} などの on(○○){} )が上下に重なると, 下のボタン機能( on(○○){} )は機能しません。 Flashの仕様です。 このことは便利にはたらくことが多いです。 しかし, たまにはご質問されているように邪魔になる場合もあります。 スプライトを親子の入れ子にして, 親スプライトにも on(○○){} を書いて, 子スプライトにも on(○○){} を書いた場合, 親スプライトの on(○○){} が優先されます。 スプライトは入れ物なので, 外側(親側)の入れ物ほど優先されます。 on(○○){} が上下に重なった場合と同じことになります。 したがって, > 子メニューに触れても大きくならないし > URLも取得できませんでした。 という状態になります。 目指していらっしゃるご質問のサイトのメニューを よーーーく,観察してみてください。 観察するポイントは "カーソルの形" です。 最初に表示されている縦にならんだ親ボタン(スプライト)にカーソルを乗せたとき, ハンドカーソル(指カーソル)に変わりません。 これは何を意味しているのかというと, このスプライトには on(○○){} を設定していないということです。 その後に出てくる子ボタン(スプライト)にカーソルを乗せたときは, ハンドカーソル(指カーソル)に変わります。 これは何を意味しているのかと言うと, ボタンに設定したインスタンスであるか, もしくは on(○○){} を設定したスプライトということになります。 ですから, 親スプライトにカーソルを乗せたり放したりするのを, on(○○){} で検知して動作させるのではなく, 親スプライトとカーソルとが接触したかどうかを判断させて, 親スプライトとカーソルとが接触していたなら, そのスプライトを gotoAndStop(○○) させるような仕組みが必要となります。 一般的にはこれには hitTest を使います。 FN0308001 onハンドラを使わずにロールオーバー-ロールアウトを検出する http://www.fumiononaka.com/TechNotes/Flash/FN0308001.html Flashゲーム講座&ASサンプル集【当たり判定について】 →点とインスタンスとで当たり判定を取る http://hakuhin.hp.infoseek.co.jp/main/as/hittest.html#HITTEST_00 以上, > 子メニューに触れても大きくならないし > URLも取得できませんでした。 に関して,そうなる理由と,対処法のヒントだけという回答です。
お礼
ありがとうございます。おかげで無事に作成できました! 何故駄目なのかが理解でき、参考URLで hittest を(少しですが)学ぶことができました。 ありがとうございました(_ _)