Перетаскивание, вращение и простота в ActionScript - PullRequest
0 голосов
/ 27 июня 2011

Мне нужно, чтобы мувиклип вращался вокруг его центральной точки влево или вправо в зависимости от перетаскивания мышью.У меня есть базовое подобие того, что я хочу, но это довольно хакерское.Обычно я вычисляю угол и т. Д., Но мне действительно нужно использовать расстояние, которое проходит мышь, и применить его к мувиклипу, а для вкуса добавить приятное смягчение, когда вы отпустите.

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 Ответ

1 голос
/ 29 июня 2011

вот источник и демонстрация потенциального решения для вас: http://wonderfl.net/c/o8t0

Я основал обнаружение вращения перетаскивания на минимальных компиляциях Кейта Питера , в частности источник для его компонента ручки

В источнике ручки Minimal Comp *1013* вы можете получить вращательное, горизонтальное и вертикальное перемещение в функции 'onMouseMoved'.

Наконец, я использовал TweenLite , чтобы справиться с ослаблением.В моем коде I Tween объект 'this', но на практике вы должны создать общедоступное значение в объекте, который вы анимируете, и анимацию этого элемента, чтобы вы могли легко создать более одного элемента.

Если этодля публичного проекта, дайте мне знать, когда вы его реализовали;не прочь взглянуть на то, что это за ^ _ ^

...