- ベストアンサー
マウスが押されているのか(DOWN)離れているのか(UP)を判断する方
マウスが押されているのか(DOWN)離れているのか(UP)を判断する方法はありますか? マウスのドラッグで画像を動かそうとしているのですが フラッシュの外側でマウスを離されるとMOUSE_UPのイベントが走らなくて困っています。 知っている方いらっしゃいましたら宜しくお願いします。
- みんなの回答 (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(); }; -------------------------------------
お礼
上の方ので出来ました! ありがとうございます