我正在尝试创建与CityVille中用于丢弃硬币和体验图标的效果类似的效果,他们执行自定义移动动画,然后先移动一点然后向下移动。看起来它遵循样条函数或正弦函数。
flex 3中的移动效果仅线性移动。
任何帮助?
答案 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/