Если два экранных объекта находятся в различных контейнерах, они могут быть в различных координатных пространствах. Для класса DisplayObject можно использовать метод
localToGlobal()
для перевода координат в единое (глобальное) координатное пространство, применяемое для рабочей области. Например, следующий код позволяет найти расстояние между точками регистрации двух экранных объектов
circle1
и
circle2
, расположенных в различных контейнерах:
import flash.geom.*;
var pt1:Point = new Point(circle1.x, circle1.y);
pt1 = circle1.localToGlobal(pt1);
var pt2:Point = new Point(circle2.x, circle2.y);
pt2 = circle2.localToGlobal(pt2);
var distance:Number = Point.distance(pt1, pt2);
Аналогичным образом можно найти расстояние от точки регистрации экранного объекта
target
до заданной точки рабочей области, используя метод
localToGlobal()
класса DisplayObject:
import flash.geom.*;
var stageCenter:Point = new Point();
stageCenter.x = this.stage.stageWidth / 2;
stageCenter.y = this.stage.stageHeight / 2;
var targetCenter:Point = new Point(target.x, target.y);
targetCenter = target.localToGlobal(targetCenter);
var distance:Number = Point.distance(stageCenter, targetCenter);