• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マウスアウト処理とボタンの処理の重なりについて)

マウスアウト処理とボタンの処理の重なりについて

このQ&Aのポイント
  • FLASHで四角い箱(box_mc)上に配置されたボタンにマウスを乗せた時に、box_mcのマウスアウト処理が実行されてしまう問題について解決方法を考えています。
  • box_mcのマウスオーバー処理は問題なく動作しているが、box_mc上にあるボタンにカーソルを合わせると、box_mcのマウスアウト処理が実行される原因を解明できていない。
  • シンプルな方法でマウスアウト処理を実行する方法を模索しており、他の開発者の知見を求めています。

質問者が選んだベストアンサー

  • ベストアンサー
  • atse
  • ベストアンサー率83% (36/43)
回答No.2

あ、ごめんなさい、本来はアニメーションなのですね。 box_mcの透明度=alphaでフェードイン・アウトの処理をしていると勘違いしていました。 hitTestPoint()の使い方は合っています。 変数hitに代入せずに、ifのの条件へ box_mc.hitTestPoint(mouseX, mouseY)をそのまま入れても大丈夫です。 アニメーションということで、タイムラインによるものならば、 例としてbox_mcの1フレーム目が透明(見えない)で、 box_mcの20フレーム目が不透明(見える)とすると、 function ef(Event) { var hit = box_mc.hitTestPoint(mouseX, mouseY); if (hit == true) { if (box_mc.currentFrame < 20) {//box_mcが20フレーム目に到達していなかったら box_mc.nextFrame(); } } else if (box_mc.currentFrame > 1) {//box_mcが1フレームより進んでいたら box_mc.prevFrame(); } } box_mc.addEventListener(Event.ENTER_FRAME,ef); のような形になります。 質問者さんがどのようにフェード効果を付けているかわからないので、 ご自分で実際に試して、調整してみてください。

John12345
質問者

お礼

ご指摘いただいた内容を若干変えて実現できました! お付き合いただきましてありがとう御座いました。 またご教授いただくことがあるかと思いますが、 その時は宜しくお願い申し上げます。

その他の回答 (1)

  • atse
  • ベストアンサー率83% (36/43)
回答No.1

> 「マウスがbox_mcの座標外に出たらマウス > アウト処理を実行する」という処理を考えていますが、 > もっとシンプルな方法で処理できないか悩んでおります。 「マウスがbox_mcの座標外に出たらマウスアウト処理を実行する」 これが一番シンプルだと思います。 MOUSE_OVERなどはなくしてENTER_FRAMEで一括監視。 座標関係もhitTestPoint()で簡単に判断できますし。 ENTER_FRANEで行う処理としては、こんな感じになるのでは。 if (box_mcにマウスが触れていたら→hitTestPoint()を使用) {  if (対象のalphaが1未満なら) {   対象をフェードイン  } } else if (対象のalphaが0より上なら) {  対象をフェードアウト }

John12345
質問者

お礼

早速のご回答ありがとうございます。 >if (box_mcにマウスが触れていたら→hitTestPoint()を使用) { 上記は具体的には以下の書式で宜しいでしょうか? var hit = box_mc.hitTestPoint(mouseX, mouseY); if(hit == true) {・・・(以下省略) >if (対象のalphaが1未満なら) { 上記の書式をどう書いたら良いのかわからないのですが、 対象というのは、box_mcのことで、マウス上のbox_mcのアルファ値が1未満ならマウスアウト処理(フェードアウト)ということでしょうか? 繰り返しのご質問で恐れ入りますが、宜しくご教授ください。

関連するQ&A