2015-04-01 2 views
0

У меня есть Circle (который я буду называть как Particle по всему вопросу) с Modifier затем Surface добавил к нему, что трубы события в виде Generic Sync (Touch/Нажмите). События sync позволяют мне изменить положение Particle на start, update и end событиях, поэтому я могу перетащить их в рамки.Famo.us Js - Анимации тела (частицы) в положение

Там это правило в моем заявлении, что если расстояние между положением частицы синхротоне в start и end событий под определенный порог, то частица должна оживить обратно в start положение.

Например: Частица начинается с [0,0] при синхронизации start и перемещается в положение [100,100]. Расстояние между двумя точками (около 141,42) превышает мой порог 50 ...

Как я могу применить силу/скорость/?? анимировать Particle до [0,0]?

Примечание: Я знаю, что могу сделать это с Modifiers довольно легко, но я стараюсь строго использовать движок физики.

EDIT: я понял, решение, которое включает в себя использование transitionable и установив интервал для запуска, который постоянно обновляет положение частицы, а затем установив transitionable моей желаемой конечной позиции и очистку интервала в обратном вызове в transitionable в ,

var retreatTrans = new Transitionable(myParticle.getPosition()); 

// Set a temporary interval to update the position 
// as we change the transitionable (below) 
var retreatInterval = setInterval(function() { 
    myParticle.setPosition(retreatTrans.get()); 
}); 

// Set transitionable to our desired retreatPosition 
retreatTrans.set([0,0], {duration: 100}, function() { 
    // Clear our interval 
    clearInterval(retreatInterval); 
}); 

ответ

0

Если я понять ваш вопрос правильно, вы хотите, чтобы перетащить particle/circle/rectangle от происхождения, а затем на touchend имеют particle/circle/rectangle двигаться назад к началу координат.

Один из способов достижения этой цели - физический движок - через Spring. Если вы посмотрите на Scrollview, внутри он использует пружину, чтобы «отскок» назад, когда вы достигаете края. Я посмотрю, смогу ли я быстро выполнить эту работу, чтобы продемонстрировать это.

+0

Я выяснил решение - возможно, это не лучшая практика, но сейчас я обновлю свой вопрос. –

+0

'Весна', вероятно, лучшее решение здесь - спасибо, что указали это. Я попытаюсь что-то с этим поделать, но если вы что-нибудь придумаете, сообщите мне. Благодаря! –

Смежные вопросы