2010-05-28 35 views
2

我在Flash中创建一个地图,我想有一个类似的平滑移动扔它进入下一个阶段。ActionScript 3.0中的阻力,并缓解

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

有关如何实现此目的的任何提示?

这里是我当前的代码:

// 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; 
} 

回答

1

我会建议使用加速,而不是速度。尽管如此,你至少需要三分才能获得加速。你可以添加一些摩擦,使你的物体看起来像更重。

我以前没有使用TweenLite库的这一部分,但总的来说这个库是不可思议的,它可能会帮助你。

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

更新:对不起,貌似这个插件是付费俱乐部成员使用GreenSock的一部分。