1

如何扩展按钮等组件以使用 x 和 y 值作为组件的中心,而不是左上角?

4

2 回答 2

2

在 Flex 4 中这很容易 :)。他们transformAround在 UIComponent 中有一个方法,允许您围绕任意枢轴转换组件的位置/缩放/旋转。所以你可以这样做:


override public function set x(value:Number):void
{
    var pivot:Vector3D = new Vector3D(this.width/2, this.height/2, 0);
    var translation:Vector3D = new Vector3D(value, this.y, this.z);
    transformAround(pivot, null /* scale vector */, null /* rotation vector */, translation);
}

您可以自定义/优化它,但这就是 jist :)。

如果您使用的是 Flex 3,那么我会研究他们是如何做到的。它非常硬核,有很多 Matrix/Matrix3D 的东西。

于 2009-10-18T19:32:02.140 回答
0

好吧,你可以编写一个翻译函数,它接受一个控制、x 和 y,并返回中心点:

Xc = (Control.x + (Control.width / 2))
Yc = (Control.y + (Control.height / 2))
return new Point(Xc,Yc)

然后只需使用您的翻译器来设置位置,否则您将使用 x 和 y。

于 2009-10-18T19:31:16.180 回答