As3精灵rotationX和rotationY

时间:2013-02-22 00:03:44

标签: actionscript-3 rotation

我对rotationX和rotationY有点问题。

如果我只是在

下面做一个roationX和rotaionY,这很酷
_eventParent.rotationY =_differentX; 
_eventParent.rotationX =_differentY;

但是,一旦我将鼠标移动到_eventParent。当鼠标移动时,roationX和roationY会透视变化。所以相反,项目保持相同的大小。它前瞻性地增加和减少尺寸。任何想法为什么这样做?是否有可能阻止这种行为?

由于

请找到下面的图片。

enter image description here

2 个答案:

答案 0 :(得分:4)

透视允许您的部分形状看起来比其他部分更接近您。问题是透视有一个中心或“消失点”,默认情况下它是固定的。当你的形状远离消失点时,视角会发生变化,导致你的形状变宽或变窄。

您可以通过更新消失点来解决此问题,使其始终与您的形状处于相同的坐标。由于形状总是处于消失点,因此视角不应改变。

为此,请为您的形状创建一个perspectiveProjection:

_eventParent.transform.perspectiveProjection = new PerspectiveProjection();

PerspectiveProjection位于flash.geom包中,所以不要忘记导入它。

然后,每当您更新形状的位置时,请更新它的消失点:

_eventParent.transform.perspectiveProjection.projectionCenter = 
    new Point(_eventParent.x, _eventParent.y);

您可能需要将消失点偏移一定数量的像素,以使透视图看起来像您想要的那样。

答案 1 :(得分:0)

如果我误解了你的问题,请纠正我。您的问题是,如果您将旋转应用于movieClip对象,那么为什么大小似乎在变化?

为简化起见,我们不在X轴和Y轴上应用旋转。让我们拍一个矩形的电影剪辑和onMouseMove我们做++myMovieClip.rotationX;

现在,这个语句将对X轴上的对象应用旋转,并且可以获得在X轴上翻转的影片剪辑的透视图,这种翻转将显示为对象大小的变化。

这同样适用于横跨y轴的旋转。