Uso de objetos Point

Flash Player 9 e posterior, Adobe AIR 1.0 e posterior

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.