【问题标题】:Customize or create Starling animations, movements and Transitions自定义或创建 Starling 动画、动作和过渡
【发布时间】:2014-05-26 17:56:15
【问题描述】:

由于我不太懂英语,因此我无法为我正在尝试做的事情找到清晰的示例和/或教程。 所以(也许是愚蠢的)问题是: 如何使用 Starling 框架强烈自定义补间动画并使我的 Sprite(或 MovieClips)遵循直线、曲线或创建过渡类中不存在的所有其他非线性运动? 我对 Basic Starling 动画没有任何问题。所以这应该是一个很好的起点。 在此先感谢您提供示例、资源或建议。

PS。我已经访问了关于自定义转换的“Starling Wiki”页面,但是,作为一个初学者(几乎是中级)编码器,我无法完全理解它。 我知道有很多关于 AS3/Starling/Flash/Nape/Box2D 的在线资源,但是对于非英语的初学者程序员来说理解它们并不容易。

【问题讨论】:

    标签: actionscript-3 flash animation flash-builder starling-framework


    【解决方案1】:

    您可以通过 set .x .y .rotation 简单地移动 Starling 的电影剪辑

    【讨论】:

    • 您的解决方案似乎可以满足我的需要,但是当我尝试更改 pivotX 一个 pivotY 点以使我的图像围绕它们旋转时,Flash Builder 向我抛出一个错误(我更改了在 Sprite、MovieClip 上工作的 pivotPoints和图像,但我得到了同样的错误:“通过静态类型starling.display:Image的引用无法访问方法pivotX”,也许嵌入式图像是问题?)
    • 尝试将您的符号转换为八哥的电影剪辑
    • 我试过了。将纹理转换为 Starling 的 MovieClip 所需的矢量时出错:'myMc=new MovieClip(Assets.getTexture('texture'));'
    • 好的。我其实很傻。我正在设置“枢轴点”写作 pivotX(value) 而不是 pivotX=value。所以我不需要将图像转换为 DisplayObjects。感谢您在补间时提供自定义动作的最佳(也许是最简单)的方法。
    【解决方案2】:

    从现在开始,我还没有听说过使用脚本转换来进行预定义的非线性运动。正如您所说,您可以将对象从一个位置移动到另一个位置,但它不会发生在曲线上。

    我过去所做的是预先定义运动的路径,因为我需要完全相同的奇怪路径。我在 Flash 中做了一个路径补间,然后使用一个简单的函数循环遍历所有帧(使用gotoAndStop())并获取对象的xy 属性,将它们存储在一个数组中。这是在初始化时完成的。稍后,我可以随时在我所有奇怪的路径上开始动画,使用补间的onUpdate 方法,并从我一开始填充的数组中传递位置。

    如果您有非常奇怪的路径,这当然很好。如果你想要很少的曲线,你可以尝试做一个数学方程。 Tween 类有一个update 函数,它将在每一帧上调用。因此,您可以在每一帧上进行一些计算并修改参数。例如,如果您对 xy 属性进行补间,则可以使用 update 函数将随机数添加到这些值。当然这会造成非常不受控制的运动,我只是举个例子。

    最佳解决方案我能想到的复杂性/结果比率 - 使用 Greensock 的 TweenMax(看第二个例子) - 它有一个内置的在贝塞尔补间。这意味着它可以在贝塞尔曲线内从 A 点移动到 B 点。我认为这将是解决您问题的好方法:)

    【讨论】:

    • 谢谢安德烈。 onUpdate 函数是我尝试做的第一件事。问题是 Flash Builder 无法识别它(我不知道为什么,它会抛出一个错误)。我也尝试了 ENTER_FRAME,但没有任何反应。
    猜你喜欢
    • 1970-01-01
    • 2014-03-04
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多