我在flash中创建了一个地图,我希望有一个类似于此的平滑运动: http://www.conceptm.nl/
我已经开始了,但我很难将它带到下一阶段。
鼠标释放后,我的代码当前会抛出movieclip,但鼠标按钮关闭时没有缓动。
关于如何实现这一目标的任何提示?
这是我目前的代码:
// 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;
}
答案 0 :(得分:1)
我建议使用加速而不是速度。你需要至少三点才能获得加速。您可以添加一些摩擦力,使您的物体看起来更重。
之前我没有使用过TweenLite库的这一部分,但总体来说这个库是不可思议的,它可能会帮助你。
http://www.greensock.com/as/docs/tween/com/greensock/plugins/Physics2DPlugin.html
更新:对不起,看起来这个插件是付费俱乐部绿色库存会员资格的一部分。
答案 1 :(得分:0)
greensock的那些人现在已经开发了ThrowPropsPlugin来处理这件事。