ActionScript-as2.0怎么获取鼠标瞬间速度,比如拖动小球甩出去的效果

小组事务管理 小组事务管理 主题:974 回复:1955

ActionScript-as2.0怎么获取鼠标瞬间速度,比如拖动小球甩出去的效果

甜柠檬 发布于 2017-09-01 字数 0 浏览 1235 回复 1

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

想挽留 2017-10-10 1 楼

在鼠标按下的时候,保存一下当前鼠标指针的坐标;
在EnterFrame事件或MouseMove事件中计算当前鼠标指针的坐标和之前保存的坐标之间的差距,然后根据当前鼠标指针的坐标,更新变量的值。

具体的代码比较长,只贴关键部分吧。

private function onMouseDown(event:MouseEvent):void
{
oldX = ball.x;
oldY = ball.y;
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
ball.startDrag();
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
addEventListener(Event.ENTER_FRAME, trackVelocity);
}

    private function onMouseUp(event:MouseEvent):void
    {
        stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
        ball.stopDrag();
        removeEventListener(Event.ENTER_FRAME, trackVelocity);
        addEventListener(Event.ENTER_FRAME, onEnterFrame);
    }

    private function trackVelocity(event:Event):void
    {
        vx = ball.x - oldX;
        vy = ball.y - oldY;
        oldX = ball.x;
        oldY = ball.y;
    }