如何翻译DisplayObject的本地点?

时间:2013-08-29 14:30:22

标签: flash actionscript

在某些情况下,我们需要将displayObject中的本地点转换为其父对象。 当displayObject未旋转或缩放时,结果很容易计算:

var xAtParent:Number= displayObject.x+ localX; 
var yAtParent:Number= displayObject.y+ localY;
// where localX& localY are with respect to displayObject

但是,当displayObject被旋转或缩放时,它不是直接计算的,所以问题是,动作脚本3中是否有开箱即用的解决方案来解决这个问题?

1 个答案:

答案 0 :(得分:1)

因为它建立在具有仿射(Matrix)变换的显示列表上,所以Flash提供了易于使用的坐标空间转换功能。从src坐标系转到dst坐标系(假设舞台上srcdst都是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);