检查物体是否被抓住

时间:2012-03-25 14:12:37

标签: actionscript-3 mouseevent flash-cs4

我只是想知道是否可以在动作脚本中检查鼠标事件是否抓取了对象。

例如:youtube视频播放器也内置在闪存中。当我们抓住轨道时,它只停留在鼠标指针上,当我们释放它时。它停在我们离开的地方。

2 个答案:

答案 0 :(得分:0)

// define lock on y-axis
var LOCKY:Number = target.y;

// MouseEvent.MOUSE_MOVE
stage.addEventListener(MouseEvent.MOUSE_MOVE, _mouseMove);
function _mouseMove(e:MouseEvent):void
{
    if(target.y != LOCKY) target.y = LOCKY;
}

// dragging
target.addEventListener(MouseEvent.MOUSE_DOWN, _mouseDown);
function _mouseDown(e:MouseEvent):void
{
    target.startDrag();
    target.addEventListener(MouseEvent.MOUSE_UP, _mouseUp);
}

// dropping
function _mouseUp(e:MouseEvent):void
{
    target.stopDrag();
    target.removeEventListener(MouseEvent.MOUSE_UP, _mouseUp);
}

直接从这里采取: AS3 How to startdrag only on x-axis?

答案 1 :(得分:0)

在调用startDrag()之后,无法确定是否正在拖动对象。您必须设置一个布尔值,用于跟踪何时开始拖动。

我个人不喜欢startDrag / stopDrag,所以我不使用它。但是如果你刚开始,那么startDrag / stopDrag可以正常工作。我猜想youtube的播放器不会使用该功能。我将在以后访问时发布我的方法。