• ベストアンサー

マウスが押されているのか(DOWN)離れているのか(UP)を判断する方

マウスが押されているのか(DOWN)離れているのか(UP)を判断する方法はありますか? マウスのドラッグで画像を動かそうとしているのですが フラッシュの外側でマウスを離されるとMOUSE_UPのイベントが走らなくて困っています。 知っている方いらっしゃいましたら宜しくお願いします。

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

要は ActionScript 2.0 以下であった MovieClip.onReleaseOutsideイベントハンドラメソッドが ActionScript 3.0 から削除されてしまったからやりにくい(考えにくい)わけですね。 ドラッグするムービークリップには「my_mc」というインスタンス名(または変数名)が付けてあったとします。 その場合,次のようにするのが1つの方法です。 ------------------------------------------------ //「my_mc」に対してMOUSE_DOWNのイベントリスナーを登録 my_mc.addEventListener(MouseEvent.MOUSE_DOWN,dragStart); function dragStart(evt:MouseEvent):void{ evt.currentTarget.startDrag(); } //「stage」に対してMOUSE_UPのイベントリスナーを登録 stage.addEventListener(MouseEvent.MOUSE_UP,dragStop); function dragStop(evt:MouseEvent){ my_mc.stopDrag(); } ------------------------------------------------ 要するに 押すターゲットはムービークリップにして 放すターゲットはステージにするということです。 または, 「EventDispatcher.addEventListener()メソッド」 http://www.fumiononaka.com/TechNotes/Flash/FN0608004.html ↑上記ページのクラスファイル「MyButton.as」を使わせてもらって 上記ページにあるように「my_mc」のシンボルの設定を「MyButton」クラスにして フレームに書くスクリプトを次のようにしても良いと思います。 ------------------------------------- my_mc.onPress = function() { my_mc.startDrag(); }; my_mc.onRelease = function() { my_mc.stopDrag(); }; my_mc.onReleaseOutside = function() { my_mc.stopDrag(); }; -------------------------------------  

snowsan062
質問者

お礼

上の方ので出来ました! ありがとうございます

関連するQ&A

専門家に質問してみよう