我真的很困惑,试图理解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);
}
}
}
}
这是输出的屏幕截图:
这是MovieClip的截图:
我如何在屏幕上安排它们以便它们全部出现在中间(如中间的一声巨响)?我实际上想要禁用通过相机查看它。< / p>
同样,这是否意味着即使舞台上y旋转为0的物体也被视为处于3d空间中并略微旋转?
谢谢!
答案 0 :(得分:1)
找到了http://backroom.bostonproductions.com/?p=761,这很好地解释了它。
这是因为90度旋转与消失有关 阶段的点,(可以使用3D变换工具设置) IDE)。消失点将影响所有显示对象 默认情况下,导致3D旋转成为消失的产物 点。但是,如果您不希望显示对象以3D旋转,该怎么办? 空间按照消失点?如果你想要怎么做 旋转你的方块90度,看到一个旋转90度的方块, 不管它在舞台上的位置?你可以用这个来处理 ActionScript 3和PerspectiveProjection。通过改造 PerspectiveProjection你的方块和设置投影中心 在你的方块的X和Y位置,你现在可以旋转它 独立于舞台的消失点。
因此需要为每个MovieClip分配自己的PerspectiveProjection对象。
所述设置x或y旋转或z位置时(自动)转换为3d将显示对象的z属性显式设置为a时 数值,对象自动创建3D变换 矩阵。您可以更改此矩阵以修改3D变换 该对象的设置。
此外,3D旋转与2D旋转不同。在2D的轴 旋转始终垂直于x / y平面 - 换句话说,开启 z轴。在3D中,旋转轴可以围绕x,y中的任何一个, 或z轴。设置显示的旋转和缩放属性 object使其能够在3D空间中移动。