【问题标题】:Actionscript 3.0 - drag and throw with easingActionscript 3.0 - 缓动拖拽
【发布时间】:2011-02-25 02:52:54
【问题描述】:

我在 Flash 中创建了一个地图,我希望有一个类似这样的平滑运动: http://www.conceptm.nl/

我已经开始了,但我无法将它带入下一阶段。

我的代码当前在释放鼠标后会抛出动画剪辑,但在鼠标按钮按下时没有缓动。

关于如何实现这一点的任何提示?

这是我当前的代码:

// Vars
var previousPostionX:Number;
var previousPostionY:Number;
var throwSpeedX:Number;
var throwSpeedY:Number;
var isItDown:Boolean;

// Event Listeners
addEventListener(MouseEvent.MOUSE_DOWN, clicked);
addEventListener(MouseEvent.MOUSE_UP, released);

// Event Handlers
function clicked(theEvent:Event) {
isItDown =true;
addEventListener(Event.ENTER_FRAME, updateView);
}

function released(theEvent:Event) {
    isItDown =false;
}

function updateView(theEvent:Event) {
    if (isItDown==true){
        throwSpeedX =  mouseX - previousPostionX;
        throwSpeedY =  mouseY - previousPostionY;
        mcTestMovieClip.x = mouseX;
        mcTestMovieClip.y = mouseY;
    }
    else{
    mcTestMovieClip.x += throwSpeedX;
    mcTestMovieClip.y += throwSpeedY;
    throwSpeedX *=0.9;
    throwSpeedY *=0.9;
    }
    previousPostionX= mcTestMovieClip.x;
    previousPostionY= mcTestMovieClip.y;
}

【问题讨论】:

    标签: flash actionscript-3 draggable drag throw


    【解决方案1】:

    我建议使用加速度而不是速度。不过,您至少需要三个点才能获得加速。您可以添加一些摩擦力,让您的对象看起来更重。

    我之前没有使用过 TweenLite 库的这一部分,但总体而言,这个库非常棒,它可能会对您有所帮助。

    http://www.greensock.com/as/docs/tween/com/greensock/plugins/Physics2DPlugin.html

    更新:抱歉,这个插件似乎是付费俱乐部 greensock 会员的一部分。

    【讨论】:

      【解决方案2】:

      greensock 的人现在已经开发了一个 ThrowPropsPlugin 来处理这件事。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多