如何在Flex 3中沿样条线或正弦函数移动对象

时间:2011-01-20 17:38:33

标签: flex flex3

我正在尝试创建与CityVille中用于丢弃硬币和体验图标的效果类似的效果,他们执行自定义移动动画,然后先移动一点然后向下移动。看起来它遵循样条函数或正弦函数。

flex 3中的移动效果仅线性移动。

任何帮助?

2 个答案:

答案 0 :(得分:0)

你应该看看Tweens而不是Moves。一个例子可能是:

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/

答案 1 :(得分:0)

使用补间库,例如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 } );

一个非常相似的图书馆是eaze http://code.google.com/p/eaze-tween/ 它是mxml友好的包装器: http://code.google.com/p/eazefx/