[as3]mouse down -> up -> click

イベントの順番。
MouseEvent.MOUSE_DOWN -> MouseEvent.MOUSE_UP -> MouseEvent.CLICK
の順番でイベントが発生する。


なのでドラッグを始める(startDrag)処理とクリックをキャッチしたいとかいう重複した処理を設定した場合、ドラッグが終わった後にクリックのイベントが発生するので(たぶん)意図しない動きになると思う。

mc.addEventListener(MouseEvent.MOUSE_DOWN,
 function(evt:MouseEvent) {
  mc.startDrag();
  trace("mouse_down");
 }
);
mc.addEventListener(MouseEvent.MOUSE_UP,
 function(evt:MouseEvent) {
  mc.stopDrag();
  trace("mouse_up");
 }
);
mc.addEventListener(MouseEvent.CLICK,
 function(evt:MouseEvent) {
  trace("clicked");
 }
);

ドラッグ操作後のtraceの結果は

mouse_down
mouse_up
clicked

こんなん。



マウスボタンが上がって下がっての間にドラッグしてなければクリックをキャッチ、ということがしたい場合、自分でイベント作った方がいいのかな。