D0804014 _visibleをfalseにしてもHitTestがtrueに?
Name れいにゃ
Date 2008年04月01日 (火) 22時12分
Message ASは初心者なので、
どなたか分かる方がいらっしゃっいましたら、
教えてほしいです。

Flash8です。

マウスがメニューからアウトオーバーになったとき、
徐々に消えていくようなものを作っていたのですが、

http://www.kaeko.jp/kenkenvivi/menu_1.html

メニューに対して上からロールオーバーさせると、
プルアップメニューが反応しません;
メニューに横から進入した場合はちゃんと反応しますし、
上記不具合は最初の読み込んだときだけのような感じです。

どうも_visibleをfalseにしているものに対するHitTestがtrueになっているようなのですが、
なぜそのようになってしまうのかが分かりません。

まったく見当はずれの場所で悩んでいるのかもしれませんが、
自分ではまったく検討がつきません。

どなたか教えていただけましたら幸いです。

ちなみにソースです。
http://www.kaeko.jp/kenkenvivi/menu_1.fla
Response 01
2008年04月02日 (水) 19時10分> ロイド 
_visibleは非表示にするだけでムービークリップ自体はその場に存在します。
フォーカスやクリックは出来なくなりますが、スクリプトでアクセスは出来ます。
hitTestを使用する必要もないと思いますが・・^^;
hitTestを使用する場合はこんな感じにすると非表示の時はhitTestの中身が無効になります。

例:(fla内スクリプトの一部)

修正前 if (_root.main_menu.menu_a.hitTest(_root._xmouse, _root._ymouse, true)) {

修正後 if (_root.main_menu.menu_a.hitTest(_root._xmouse, _root._ymouse, true)&&_root.main_menu.menu_a._visible) {

_______________________________
_root.main_menu.menu_a にマウスがhitしていて、かつ表示されていたのなら実行。
というような内容です。

他にも方法はありますがひとつの例です。
Response 02
2008年04月02日 (水) 19時14分> ロイド   
補足

この例の場合

_root.main_menu.menu_a._visible = false;

となった場合hitTestが無効になり反応しなくなります。
Response 03
2008年04月03日 (木) 17時47分> れいにゃ 
ロイドさんご丁寧にありがとうございます。
考えていた動作になりました。

最初はHitTest使わずに、ボタンシンボルなどで作っていたのですが、
ボタン同士の機能が重複してうまくコントロールできなくなってしまったので、
マウスオーバーの状態をHitTestで判断するという手法にチャレンジしていました。

なかなか思い通りには行かないのですが、
「他にも方法はあります」というのは目からウロコです。
行き詰ったら別の角度から考えてみようかと思います。
今後の参考にさせていただきます。

ありがとうございました。

このページの先頭へ