2

我在 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;
}
4

2 回答 2

1

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

我以前没有使用过 TweenLite 库的这一部分,但总的来说,这个库令人难以置信,它可能会对您有所帮助。

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

更新:对不起,看起来这个插件是付费俱乐部 greensock 会员的一部分。

于 2010-05-28T17:07:04.233 回答
0

greensock那边的人现在已经开发了一个ThrowPropsPlugin来处理这个问题。

于 2012-08-16T09:54:37.240 回答