【问题标题】:Animating object on the stage using ActionScript 3.0使用 ActionScript 3.0 在舞台上制作动画对象
【发布时间】:2011-08-06 17:02:21
【问题描述】:

我的意思只是 ActionScript。是否可以为对象设置动画,使其在 Flash Professional 轨迹中预先绘制的移动?我知道,我可以使用 onEnterFrame 和一些数学方程来移动对象,但是如果轨迹太复杂怎么办?你看,我什至不知道如何提出这个问题。希望你说对了。感谢您提前提供任何提示或提示:))

【问题讨论】:

  • 所以您想沿路径制作动画,其中路径是在 Flash IDE 中绘制的一条线?为什么需要 ActionScript?
  • 因为我想对随机对象重复执行此操作,因此在编译时既不知道顺序也不知道实际移动的对象......另外,我可能想在它们移动时删除一些对象在他们的路径上,这也将在运行时安排:SS 那么,这可能吗? :SS

标签: flash actionscript-3 animation


【解决方案1】:

直观地创建补间动画。右键单击时间轴中的补间。选择“将动作复制为 ActionScript 3.0”。

之后,您可以使用该代码构建一个函数,并将您的对象作为参数传递给该函数。

【讨论】:

    【解决方案2】:

    在 Flash Professional 中,沿路径附加并补间空精灵或带有虚拟对象的精灵,您可以在其中隐藏/删除(如果您想在 IDE 中拥有视觉参考),就像使用“静态”动画。诀窍在于,使用 ActionScript,您将能够在运行时引用父 sprite,并在原点向其添加您选择的子代。如果您选择使用假人,请不要忘记移除或隐藏假人。

    这样,您将获得沿路径动画添加的子精灵的印象。根据您的要求,您的代码可以在运行时选择顺序和要移动的内容。

    要么,或者像其他人建议的那样,你通过 ActionScript 用点定义你的路径,然后沿着想象的插值路径对你选择的对象进行补间,再次使用代码。那里不乏补间库。

    我很确定第一个选项需要更少的代码,并且就生成的动画而言对播放器的负担更少。这就是人们在过去的 Flash 中所做的 :-) 但是现在许多 Flash Player 应用程序开发人员经常希望尽可能多地使用代码,原因有很多。

    【讨论】:

    • 到目前为止这是最实用的方法,需要最少的代码!
    【解决方案3】:

    无论轨迹多么复杂,它总会归结为一系列点。在 Array/Vector 中获取这些点,您应该能够沿着该路径操作任何显示对象。所以是的,这应该是可能的。

    为了移动你的对象,你可以使用 Timer 类或一些补间,而不仅仅是进入帧。

    【讨论】:

    • 我一如既往地推荐 Greensock 的 Tweening 类来处理这类事情。在这种情况下,TweenMax 和贝塞尔数组。
    • 谢谢,但我如何将路径转换为数组? o.O
    • @PatrickS 沿着弯曲的轨迹移动比你想象的要困难得多 - 只是一系列点。有哪些要点?这些点有多密集——在轨迹的最卷曲部分周围均匀分布还是变得更密集?物体是否会沿所有点以恒定速度移动?没那么容易!
    • @Vladimir 困难的不是移动部分,而是一系列点的创建。你在说的是一系列点的分辨率,需要它有多精细......
    • @PatrickS 没错!即使您计算简单贝塞尔曲线的序列,该函数也很可能会为您提供更多靠近曲线末端的点,而在中间提供更少的点。当你沿着这些点移动一个物体时,它会看起来开始缓慢,在曲线处加速,然后在终点附近减速。这只是数学。沿着曲线获得均匀分布的点的问题并不是那么简单。
    【解决方案4】:

    您需要使用使用 ActionScript 计算的路径来定义您希望对象采用的路径(至少这样可以更轻松地沿着该路径移动对象)。

    当您在 Flash Auth 中绘制路径时。工具,您存储的不是实际路径,而只是路径的图形(在运行时),因此您没有可用的点数据来告诉您的对象去哪里。

    如果您创建Points 中的Vector,其中点是舞台上的x、y 坐标,那么您可以在Vector 中的每个点之间使用Tween

    您将拥有存储在Vector 中的积分,它们可以随机应用于任何SpriteMovieClipTween 类可以“填补”Vector 中点之间的空白。

    有趣的是:您可以使用 Catmull-Rom 曲线样条在点之间(在向量中)自动创建更平滑的路径。这是一个包含该功能的类库:http://www.algorithmist.net/as3pc.html

    人们使用这些样条线来加载 3D 视口摄像机遵循的路径,以便在摄像机围绕场景移动时获得平滑的视图。

    【讨论】:

    • 好的,但是我要如何创建VectorPoints? o.O
    【解决方案5】:

    要获取点的值(按照此处其他答案的建议使用),您可以尝试使用 Mario Klingemann 的形状解码器,最好在仅包含路径的 swf 上:

    http://www.quasimondo.com/shapedecoder/qm_shape_decoder.php

    【讨论】:

      猜你喜欢
      • 2011-08-24
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      相关资源
      最近更新 更多