0

マウスのドラッグに応じて、ムービークリップを中心点を中心に左または右に回転させる必要があります。私がやりたいことの基本的な類似点はありますが、かなりハックです。通常、私は角度などを計算しますが、実際にはマウスが移動する距離を使用してムービークリップに適用するだけでよく、手放したときにフレーバーのために素敵なイージングを追加します。

public function Main()
    {
        var wereld:MainScreen = new MainScreen();
        addChild( wereld );
        wereld.x = -510;

        planet = wereld["planet"];

        wereld.addEventListener( MouseEvent.MOUSE_DOWN, startRotatingWorld );
    }
    private function startRotatingWorld( e:MouseEvent ):void
    {
        m_mouseStartPos = stage.mouseX;

        stage.addEventListener( MouseEvent.MOUSE_UP, stopRotatingWorld );
        stage.addEventListener( Event.MOUSE_LEAVE, stopRotatingWorld);
    }
    private function applyRotationToWorld( e:MouseEvent ):void
    {
        //Calculate the rotation
        var distance:Number = (m_mouseStartPos - stage.mouseX) / 10000;
        //apply rotation
        planet.rotation += -distance //* 180 / Math.PI;
    }
    private function stopRotatingWorld():void
    {
        stage.removeEventListener( MouseEvent.MOUSE_MOVE, applyRotationToWorld );   
    }
4

1 に答える 1

1

ここにあなたのための潜在的な解決策のソースとデモがあります: http://wonderfl.net/c/o8t0

キース・ピーターのminimalcomps、特に彼のノブコンポーネントのソースに基づいてドラッグ回転検出を行いました

Minimal Comp の Knob sourceでは、「onMouseMoved」関数で回転、水平、垂直の動きを取得できます。

最後に、 TweenLiteを使用してイージング バックを処理しました。私のコードでは、「this」オブジェクトをトゥイーンしますが、実際には、トゥイーンしているオブジェクトにパブリック値を作成し、そのアイテムをトゥイーンして、複数のアイテムを簡単にトゥイーンできるようにする必要があります。

これが一般向けのプロジェクトである場合は、いつ実装したか教えてください。それが何のためにあるのか見ても構いません^_^

于 2011-06-29T04:54:46.370 に答える