2

私はフラッシュでマップを作成していますが、これに似た滑らかな動きをしたいと思います: 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

速度ではなく加速度を使用することをお勧めします。ただし、加速するには少なくとも 3 ポイントが必要です。摩擦を追加して、オブジェクトに重みがあるように見せることができます。

以前に TweenLite ライブラリのこの部分を使用したことはありませんが、全体として、このライブラリは信じられないほど優れており、役立つ可能性があります。

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

更新: 申し訳ありませんが、このプラグインは有料のクラブ グリーンソック メンバーシップの一部のようです。

于 2010-05-28T17:07:04.233 に答える
0

greensockの担当者は、これを処理するために ThrowPropsPlugin開発しました。

于 2012-08-16T09:54:37.240 に答える