Actionscript 3.0 - перетаскивать с помощью - PullRequest
2 голосов
/ 28 мая 2010

Я создаю карту во флэш-памяти, и я хотел бы иметь плавное движение, подобное этому: 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;
}

Ответы [ 2 ]

1 голос
/ 28 мая 2010

Я бы предложил использовать ускорение вместо скорости. Вам нужно как минимум три очка, чтобы получить ускорение. Вы можете добавить немного трения, чтобы ваш объект казался более весомым.

Я раньше не использовал эту часть библиотеки TweenLite, но в целом эта библиотека невероятна, и она может вам помочь.

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

обновление: извините, похоже, что этот плагин является частью платного членства в клубе greensock.

0 голосов
/ 16 августа 2012

Ребята из greensock теперь разработали ThrowPropsPlugin для обработки этой самой вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...