对象不绕枢轴点旋转

时间:2014-01-11 20:50:23

标签: actionscript-3 flash actionscript air adobe

我有一个看起来像这样的对象: enter image description here

当我尝试使用[INSTANCENAME].rotation += 10;旋转它时 它仍然围绕物体的中间旋转。我做错了吗?

2 个答案:

答案 0 :(得分:1)

我做了一些研究,显然没有直接的方法来以编程方式更改枢轴点,AFAIK。相当奇怪,因为您可以在Flash Pro IDE中更改它。 (对于那些阅读,枢轴点与注册点不同。)

[编辑:更多地考虑它,我不认为枢轴点实际上“存在”,至少在可编程属性的背景下。它仅存在于Flash IDE中的某些工具的上下文中。]

您需要将对象ALONE放在另一个对象中,以便内部对象的所需枢轴点位于外部对象的中心上方。然后,旋转外部对象。

您可以稍后通过更改内部对象的位置来控制对象的“轴心点”。

由于外部对象的中心根据其大小移动,并且内部对象的位置决定了外部对象的大小,因此您需要应用一些数学运算。内部对象的x位置需要等于从内部对象上的期望枢轴点到该内部对象的最右边缘的距离。同样的概念适用于y位置。

无论您选择哪种方式,都可以直接在IDE中完成,也可以通过代码完成。

动态更改此代码的示例。此函数位于外部对象内。 (如果需要,可以从事件监听器中获取pivotX和pivotY。)[抱歉,代码未经测试。]

function newPivot(int pivotX, int pivotY):void
{
   inner.x = inner.width - pivotX;
   inner.y = inner.height - pivotY;
}

我希望能解决你的问题!

答案 1 :(得分:1)

一种非常简单的方法就是这样做。

  1. 将图像转换为符号(MovieClip)。 [你可能已经做过了]。
  2. 双击MovieClip / Sprite进入内部。
  3. 移动图像,使注册点对准枢轴。
  4. 注意:仅适用于FLASH IDE。