2011-01-20 1 views
0

Я пытаюсь создать аналогичный эффект для того, что используется в CityVille для удаления монет и получения значков, они выполняют пользовательскую анимацию перемещения, и она сначала немного перемещается бит вверх, а затем вниз. Похоже, что он следит за сплайном или синусоидальной функцией.Как перемещать объект по функции сплайна или синуса в Flex 3

Эффект Move в flex 3 перемещается только линейно.

Любая помощь?

ответ

0

Используйте библиотеку Tweening такие как Actuate http://code.google.com/p/actuate/ Это позволяет анимировать объект вдоль кривой Безье или пользовательской траектории движения, как это:

var xPath:MotionPath = MotionPath.bezier (200, 20).line (400); 
var yPath:MotionPath = MotionPath.bezier (0, 300).line (0); 

Actuate.motionPath (MySprite, 1, { x: xPath, y: yPath }); 

Очень похожая библиотека - это изумление http://code.google.com/p/eaze-tween/ и ее упаковка, совместимая с mxml: http://code.google.com/p/eazefx/

0

Вы должны смотреть на подростки, а не на движения. Примером может служить:

import mx.transitions.easing.*; 
import mx.transitions.Tween; 

new Tween(myMC, ‘_x’, Regular.easeOut, myMC._x, myMC._x + 300, 30); 
new Tween(myMC, ‘_y’, Regular.easeIn, myMC._y, myMC._y + 300, 30); 

Код случайный результат Google, поэтому я не оставляю никаких гарантий. Кроме того, для себя я предпочел бы твин двигатель как TweenLite: http://www.greensock.com/tweenlite/