2

我对rotationX 和rotationY 有一点问题。

如果我在下面做一个 roationX 和 rotaionY 那就太酷了

_eventParent.rotationY =_differentX; 
_eventParent.rotationX =_differentY;

但是,一旦我将鼠标移动分配给 _eventParent。当鼠标移动时,roationX 和 roationY 会发生透视变化。因此,该项目保持相同的大小。它会前瞻性地增加和减少大小。知道为什么要这样做吗?有没有可能阻止这种行为?

谢谢

请在下面找到图片。

在此处输入图像描述

4

2 回答 2

4

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

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

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

_eventParent.transform.perspectiveProjection = new PerspectiveProjection();

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

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

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

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

于 2013-02-23T05:41:29.090 回答
0

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

为简化起见,我们不要在 X 轴和 Y 轴上都应用旋转。让我们拍摄一个矩形影片剪辑,然后我们执行 onMouseMove ++myMovieClip.rotationX

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

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

于 2013-02-22T07:08:42.460 回答