如何扩展按钮等组件以使用 x 和 y 值作为组件的中心,而不是左上角?
user178302
问问题
2956 次
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 回答