在Flash中拖动骨骼系统元素

时间:2010-07-20 14:31:58

标签: flash actionscript-3

我认为我有一个非常简单的任务:创建一个模拟时钟,学生可以通过移动小时和分钟句柄来设置时间。

嗯,整个过程都很重要......我已经创建了一个骨骼系统,以确保在手柄被拉动时两个手柄底座都保持在时钟的中心位置。问题是我不能限制用户在每个句柄的“范围”内移动(或者在那里?)如果鼠标恰好在拖放点处拖动句柄的外侧,则MOUSE_UP事件不会触发。

我也找了一个MovieClipModified事件,在这种情况下可以创造奇迹,但我找不到它......

有没有办法摆脱这种情况?

TIA

1 个答案:

答案 0 :(得分:3)

你可以利用像这样的舞台鼠标事件。

handle.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
handle.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
private function onMouseDown(e:mouseEvent):void {
  stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); //if mouse is out of drag handle then this will still keep track of mouse up event
  //do the dragging
}

private function onMouseUp(e:mouseEvent):void {
  //handle mouse up for the handle
  stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}