Se dois objetos de exibição estiverem em contêineres de objetos de exibição diferentes, talvez estejam em espaços de coordenadas diferentes. Você pode usar o método
localToGlobal()
da classe DisplayObject para transpor as coordenadas para o mesmo espaço de coordenadas (global) que o Palco. Por exemplo, o código a seguir calcula a distância entre os pontos de registro de dois objetos de exibição,
circle1
e
circle2
, em contêineres de objetos de exibição diferentes:
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);
Da mesma forma, para calcular a distância do ponto de registro de um objeto de exibição chamado
target
a partir de um ponto específico no palco, use o método
localToGlobal()
da classe 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);