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

发布于 2024-10-13 05:13:22 字数 141 浏览 2 评论 0原文

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

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

有什么帮助吗?

I am trying to create a similar effect to what is used in CityVille for dropping coins and experience icons, they do a custom move animation and it first moves a little bit up and then down. It looks like it is following a spline or a sine function.

The Move effect in flex 3 only moves linearly.

Any help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

还如梦归 2024-10-20 05:13:22

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

Use a tweening library such as Actuate http://code.google.com/p/actuate/
It lets you animate an object along a bezier curve or custom motion path like this:

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 } );

A very similar library is eaze
http://code.google.com/p/eaze-tween/
and it's mxml friendly wrapper:
http://code.google.com/p/eazefx/

娇妻 2024-10-20 05:13:22

您应该查看补间而不是移动。一个例子是:

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);

代码是随机的谷歌结果,所以我不提供任何保证。另外,对于我自己来说,我更喜欢像 TweenLite 这样的补间引擎: http://www.greensock.com/tweenlite/

You should be looking at Tweens instead of Moves. An example could be:

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);

Code is random Google result, so I post no guarantees. Also for myself I would prefer a tween engine like TweenLite: http://www.greensock.com/tweenlite/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文