O objeto
Point
define um par de coordenadas Cartesianas. Ele representa um local em um sistema de coordenadas bidimensional, em que
x
representa o eixo horizontal e
y
, o vertical.
Para definir um objeto Point, defina as propriedades de
x
e
y
da seguinte forma:
import flash.geom.*;
var pt1:Point = new Point(10, 20); // x == 10; y == 20
var pt2:Point = new Point();
pt2.x = 10;
pt2.y = 20;
Cálculo da distância entre dois pontos
Você pode usar o método
distance()
da classe Point para calcular a distância entre dois pontos em um espaço de coordenadas. 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
, no mesmo contêiner de objetos de exibição:
import flash.geom.*;
var pt1:Point = new Point(circle1.x, circle1.y);
var pt2:Point = new Point(circle2.x, circle2.y);
var distance:Number = Point.distance(pt1, pt2);
Transposição de espaços de coordenadas
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);
Mover um objeto de exibição usando um ângulo e uma distância especificados
Você pode usar o método
polar()
da classe Point para mover um objeto de exibição a uma distância específica em um ângulo específico. Por exemplo, o código a seguir move o objeto
myDisplayObject
100 pixels em 60°:
import flash.geom.*;
var distance:Number = 100;
var angle:Number = 2 * Math.PI * (90 / 360);
var translatePoint:Point = Point.polar(distance, angle);
myDisplayObject.x += translatePoint.x;
myDisplayObject.y += translatePoint.y;
Outros usos da classe Point
É possível usar os objetos Point com os seguintes métodos e propriedades:
Classe
|
Métodos ou propriedades
|
Descrição
|
DisplayObjectContainer
|
areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()
|
Usada para retornar uma lista de objetos sob um ponto em um contêiner de objetos de exibição.
|
BitmapData
|
hitTest()
|
Usada para definir o pixel no objeto BitmapData bem como o ponto cuja ocorrência você está verificando.
|
BitmapData
|
applyFilter()
copyChannel()
merge()
paletteMap()
pixelDissolve()
threshold()
|
Usada para definir as posições de retângulos que definem as operações.
|
Matriz
|
deltaTransformPoint()
transformPoint()
|
Usada para definir os pontos para os quais você deseja aplicar uma transformação.
|
Retângulo
|
bottomRight
size
topLeft
|
Usada para definir essas propriedades.
|
|
|
|