如何将Point转换为像素坐标?

时间:2012-08-27 15:17:09

标签: actionscript-3 flash flex

获取某些DisplayObject的全局屏幕位置(以像素为单位!)我正在调用DisplayObject::localToGlobal

var o: DisplayObject = ...;
var topLeft: Point = o.localToGlobal( new Point( 0, 0 ) );

我注意到我偶尔得到topLeft.y的双倍值,即使我期望一些整数值。我是否需要考虑一些缩放或坐标系统?

2 个答案:

答案 0 :(得分:2)

这可能是由于应用于DisplayObject的父母的转化。

您可以使用

找出影响DisplayObject的所有转化
myDisplayObject.transform.concatenatedMatrix;

这是应用于目标及其父级直到显示列表根目录的所有转换的结果。

More info.

答案 1 :(得分:0)

x / y坐标和width / height是Flash中的浮点值。使用子像素值(即:非整数值)对对象进行大小/定位是完全合法的。

关于缩放,您可以查询对象scaleXscaleY属性以查看它们是否正在缩放,或者将这些值强制为1。