2011-06-27 5 views
0

マウスドラッグに応じて、ムービークリップをその中心点の左または右に回転させる必要があります。私は、私が行ってほしいことのいくつかの基本的な外観を持っていますが、それはかなりハッキリです。通常、私は角度などを計算しますが、マウスが移動する距離を使用してムービークリップに適用するだけで、味わいを取るときには楽しいイージングを追加する必要があります。ここActionScriptでのドラッグ、回転、およびやすさ

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

答えて

1

はあなたのための潜在的なソリューションのソースおよびデモです: http://wonderfl.net/c/o8t0

私はMinimal Comp's Knob sourceで彼のknob component

について、具体的source、キース・ピーターのminimalcompsにドラッグ回転検出を基に、 'onMouseMoved'関数で回転、水平、垂直の動きを得ることができます。

最後に、イージングバックを処理するために​​を使用しました。私のコードI Tweenでは 'this'オブジェクトですが、実際にはトゥイーンしてトゥイーンするオブジェクトにパブリック値を作成して、より多くのアイテムを1つトゥイーンにすることができます。

これは一般向けのプロジェクトの場合は、実装したらお知らせください。^_^

+0

私が実装した別の解決策が見つかりました。あなたが望むなら、私はあなたにそれを示すことができます。しかし、あなたの答えはかなり良いですので、私はそれを解決するように設定します:) – Zophiel

関連する問題