as3 3D全局变换/旋转

时间:2014-09-07 22:11:58

标签: actionscript-3 flash

我有点问题。我在舞台上有轮盘赌轮的2D图像,并使用3D旋转工具获得一点3D效果(图1)。现在我想在它的Z轴上旋转它,这样我就能获得轮子的旋转效果。我尝试使用rotationZ + = ...但它不会按我想要的方式旋转它。我在flash工具栏中看到一个名为“Global transform”的工具(图2)。当我点击它时,我看到图像的转换线(图3),我需要旋转,蓝线是我需要的(Z轴)。但我不知道如何通过代码使用这种转换。我甚至不知道那是本地还是全球轮换。我希望你了解我,也许图片会帮助你!谢谢!

这里是用于图像的DROPBOX链接 - > Dropbox Images

2 个答案:

答案 0 :(得分:1)

您要做的只是嵌套元素并以某种方式对它们施加效果的问题。

要完成您想要的旋转,您需要在2D中创建轮盘图像,就像从鸟瞰图中看一样。我强烈建议以矢量格式创建此图形。将此图形导入Flash并将其转换为动画片段。为了论证,我将给这个movieclip一个实例名称wheel,因此我们很容易按照这些说明进行操作。现在,在wheel实例中,您需要对轮盘赌轮应用旋转。您可以通过在时间轴上使用补间动画来完成此操作,但最好的方法可能是使用编程方法,以便您可以以某种方式随机化旋转。

现在,将'wheel'实例放置在舞台上并使用3D旋转工具并在其X轴上旋转轮子,这将使轮子看起来像图像中的轮子。

现在,如果您已正确地在车轮实例中执行了旋转,那么您将拥有旋转轮。

我已经使用Flash CC 2014创建了以下文件的示例,您可以在此处下载:

  1. FLA File
  2. 示例编译SWF FILE

答案 1 :(得分:0)

实际上有一些数学涉及理解3D变换 - 包括旋转 - 以及它们如何相互结合。 如果您对进一步的解释感兴趣并且有一些数学背景,请查看theory

否则,你应该记住的第一件事是旋转/缩放/翻译可以组合(组合),但顺序非常重要。 rotationX,rotationY,rotationZ是"坐标"能够描述向量空间中的任何方向,如x,y,z描述任何位置。但它们不足以允许从任何当前方向围绕任何轴旋转。 在您的情况下,您想要的是围绕它自己的局部z(蓝色)轴组合旋转,这意味着之前已经应用的初始旋转。例如:

roulette.transform.matrix3D.prependRotation(10, new Vector3D(0,0,1));

其中10是你为旋转选择的角度,你的物体的枢轴将是旋转的枢轴(通过传递额外的Vector3D来指定你自己的枢轴

要完成图片,如果您使用appendRotation()代替prependRotation(),您将在世界(全球)坐标的z轴上旋转对象(在其当前的信息之后)

你也可以像已经建议的那样创建一个用作容器的符号,并在你的容器内旋转你的对象,但是搞乱Matrix3D最终会给你更多的控制,通常只需要一行代码就像在这种情况下一样。

相关问题