Flex:用旋转移动一个点不会改变XY点吗?

时间:2011-07-15 09:44:39

标签: flex actionscript-3

我有以下问题:

我有一个在组件边界处设置的点, 将变换点更改为组件的中心,以匹配组件旋转。

重要的部分是当我试图在旋转后获得XY点时 - 它们保持与旋转前相同。

enter image description here

  • 旋转后如何获得XY(将point.rotation属性更改为特定的旋转度)

2 个答案:

答案 0 :(得分:3)

如果您只想要旋转后的点,cos(r) * x, sin(r) * y是最简单的方法。

如果您希望在所有转换后获得该点,则应该能够使用displayObject.transform.transformPoint(x, y)

还有DisplayObject.localToGlobal。在这种情况下,您可以致电localToGlobal(x, y)localToGlobal(0, 0)并计算差异。

请参阅Transform livedocsDisplayObject livedocs

答案 1 :(得分:0)

我完全同意肖恩的回答。但是要添加一些上下文:显示列表中任何对象的x,y位置都相对于它所在的容器。旋转容器不会更改该容器中项目的x,y相对位置。

因此,如果您有一个显示对象的显示对象并且它位于Sprite或MovieClip中,那么容器的任何旋转量都不会改变点DisplayObject的x,y位置。