Uso de objetos Point

Flash Player 9 y posterior, Adobe AIR 1.0 y posterior

Un objeto Point define un par cartesiano de coordenadas. Representa una ubicación en un sistema de coordenadas bidimensional, en el que x representa el eje horizontal e y representa el eje vertical.

Para definir un objeto Point, se establecen sus propiedades x e y del siguiente modo:

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 de la distancia entre dos puntos

Se puede usar el método distance() de la clase Point para calcular la distancia entre dos puntos en un espacio de coordenadas. Por ejemplo, el código siguiente calcula la distancia entre los puntos de registro de dos objetos de visualización, circle1 y circle2 , en el mismo contenedor de objetos de visualización:

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);

Traslación de los espacios de coordenadas

Si dos objetos de visualización se encuentran en diferentes contenedores, es posible que se ubiquen en distintos espacios de coordenadas. Se puede usar el método localToGlobal() de la clase DisplayObject para trasladar las coordenadas al mismo espacio de coordenadas (global), es decir, el del escenario. Por ejemplo, el código siguiente calcula la distancia entre los puntos de registro de dos objetos de visualización, circle1 y circle2 , en diferentes contenedores de objetos de visualización:

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);

Asimismo, para calcular la distancia del punto de registro de un objeto de visualización denominado target con respecto a un punto específico del escenario, se puede usar el método localToGlobal() de la clase 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);

Desplazamiento de un objeto de visualización con un ángulo y una distancia especificados

Se puede usar el método polar() de la clase Point para desplazar un objeto de visualización una distancia específica con un ángulo determinado. Por ejemplo, el código siguiente desplaza el objeto myDisplayObject 100 píxeles por 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;

Otros usos de la clase Point

Los objetos Point se pueden usar con los métodos y las propiedades siguientes:

Clase

Métodos o propiedades

Descripción

DisplayObjectContainer

areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()

Se usa para devolver una lista de objetos bajo un punto en un contenedor de objetos de visualización.

BitmapData

hitTest()

Se usa para definir el píxel en el objeto BitmapData, así como el punto en el que se busca una zona activa.

BitmapData

applyFilter()

copyChannel()

merge()

paletteMap()

pixelDissolve()

threshold()

Se usa para definir las posiciones de los rectángulos que definen las operaciones.

Matrix

deltaTransformPoint()

transformPoint()

Se usa para definir los puntos para los que se desea aplicar una transformación.

Rectangle

bottomRight

size

topLeft

Se usa para definir estas propiedades.