0

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

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

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

4

1 回答 1

1

因为它建立在具有仿射(矩阵)变换的显示列表上,所以 Flash 提供了易于使用的坐标空间变换功能。从src坐标系到dst坐标系(假设srcdstDisplayObject在舞台上):

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);
于 2013-09-03T21:46:23.087 回答