在Y轴ActionScript 3上旋转MovieClip 90度

时间:2013-06-01 14:44:49

标签: flash adobe 3d actionscript-3

我真的很困惑,试图理解3D在Flash和ActionScript中的工作原理。

我想通过解释如何做以下事情可能会让事情变得更加清晰。

我在MovieClip中创建了一个绿色矩形并为其指定了一个类。然后我在舞台上创建了这个类的几个实例。如果我将它们放在屏幕上的一行并将rotationY属性设置为90,那么它们看起来就不同了。如果你通过相机看着它们,它们看起来就像它们一样。

这是动作脚本代码:

package  {

    import flash.display.MovieClip;
    import flash.events.Event;


    public class Main extends MovieClip {

        public function Main() {

            for (var i:uint=0; i<21; i++)
            {
                var obj = new Test();
                obj.y = 300;
                obj.x = i * 80;
                obj.rotationY = 90;
                addChild(obj);
            }
        }
    }

}

这是输出的屏幕截图: screenshot 1

这是MovieClip的截图: screenshot 2

我如何在屏幕上安排它们以便它们全部出现在中间(如中间的一声巨响)?我实际上想要禁用通过相机查看它。< / p>

同样,这是否意味着即使舞台上y旋转为0的物体也被视为处于3d空间中并略微旋转?

谢谢!

1 个答案:

答案 0 :(得分:1)

找到了http://backroom.bostonproductions.com/?p=761,这很好地解释了它。

  

这是因为90度旋转与消失有关   阶段的点,(可以使用3D变换工具设置)   IDE)。消失点将影响所有显示对象   默认情况下,导致3D旋转成为消失的产物   点。但是,如果您不希望显示对象以3D旋转,该怎么办?   空间按照消失点?如果你想要怎么做   旋转你的方块90度,看到一个旋转90度的方块,   不管它在舞台上的位置?你可以用这个来处理   ActionScript 3和PerspectiveProjection。通过改造   PerspectiveProjection你的方块和设置投影中心   在你的方块的X和Y位置,你现在可以旋转它   独立于舞台的消失点。

因此需要为每个MovieClip分配自己的PerspectiveProjection对象。

此外,元素仅在按照http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS7D38179D-58B9-409c-9E5C-257DDECB1A02.html

所述设置x或y旋转或z位置时(自动)转换为3d
  

将显示对象的z属性显式设置为a时   数值,对象自动创建3D变换   矩阵。您可以更改此矩阵以修改3D变换   该对象的设置。

     

此外,3D旋转与2D旋转不同。在2D的轴   旋转始终垂直于x / y平面 - 换句话说,开启   z轴。在3D中,旋转轴可以围绕x,y中的任何一个,   或z轴。设置显示的旋转和缩放属性   object使其能够在3D空间中移动。