在某些情况下,我们需要将displayObject中的本地点转换为其父对象。 当displayObject未旋转或缩放时,结果很容易计算:
var xAtParent:Number= displayObject.x+ localX;
var yAtParent:Number= displayObject.y+ localY;
// where localX& localY are with respect to displayObject
但是,当displayObject被旋转或缩放时,它不是直接计算的,所以问题是,动作脚本3中是否有开箱即用的解决方案来解决这个问题?
答案 0 :(得分:1)
因为它建立在具有仿射(Matrix)变换的显示列表上,所以Flash提供了易于使用的坐标空间转换功能。从src
坐标系转到dst
坐标系(假设舞台上src
和dst
都是DisplayObject
):
var p:Point = new Point(src_local_x, src_local_y);
p = src.localToGlobal(p);
p = dst.globalToLocal(p);
// p.x is dst_local_x
// p.y is dst_local_y
您还可以轻松获取任何其他src
对象的本地坐标空间中任何dst
对象的边界:
var dst_local_bounds:Rectangle = src.getBounds(dst);