Actionscript 3 as3三维全局变换/旋转

Actionscript 3 as3三维全局变换/旋转,actionscript-3,flash,Actionscript 3,Flash,我有个小问题。我在舞台上有轮盘赌的2D图像,并使用3D旋转工具获得了一些3D效果(图1)。现在我想在Z轴上旋转它,这样我就可以得到轮子的旋转效果。我尝试使用rotationZ+=。。。但它没有按我想要的方式旋转。我在flash工具栏上看到一个叫做“全局变换”的工具(图2)。当我点击它时,我看到图像(图3)的变换线,我需要旋转,蓝色的线是我需要的(Z轴)。但我不知道如何通过代码使用这种转换。我甚至不知道这是局部旋转还是全局旋转。我希望你能理解我,也许照片会帮助你!谢谢 这里是图像的DROPBOX链

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


这里是图像的DROPBOX链接-->

您试图做的只是嵌套元素并以特定方式对其应用效果的问题

若要按需要完成旋转,您需要在2D中创建轮盘赌轮图像,就像从鸟瞰视图中观看一样。我强烈建议以矢量格式创建此图形。将此图形导入Flash并将其转换为movieclip。为了便于讨论,我将给这个movieclip一个
wheel
的实例名,这样我们就可以很容易地遵循这些说明。现在,在
wheel
实例中,您需要对轮盘赌轮盘应用旋转。您可以通过在时间轴上使用运动夹来实现这一点,但最好的方法可能是使用编程方法,以便您可以以某种方式随机化旋转

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

现在,如果您在wheel实例中正确执行了旋转,您将拥有旋转的轮子

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

  • 样本汇编

  • 实际上,理解3D变换(包括旋转)以及它们如何相互结合需要一些数学知识。 如果你对进一步的解释感兴趣,并且有一点数学背景,可以看看

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

    roulette.transform.matrix3D.prependRotation(10, new Vector3D(0,0,1));
    
    其中,10将是您为旋转选择的角度,对象的轴将是旋转的轴(ohterwise,通过传递额外的Vector3D指定您自己的轴)

    要完成图片,如果使用
    appendRotation()
    而不是
    prependRotation()
    ,则将在世界(全局)坐标的z轴上旋转对象(在其当前TRN信息之后)


    您也可以按照建议创建一个用作容器的符号,并在其容器内旋转对象,但在最后使用Matrix3D会给您更多的控制权,通常只需一行代码,就像在这种情况下一样。

    哇,非常感谢,我现在就知道了。我不会在容器内制作运动tween,但会在容器内制作另一个movieclip将“轮子”旋转。这是一个简单的解决方案,在我的脑海中变得如此复杂。我花了大约3-4个小时来寻找解决方案。再次非常感谢!!!使用编程方法可以让你有机会随机旋转轮子,这非常适合这种情况。