Использование объектов Point

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Точечный объект Point определяется парой декартовых координат. Он представляет точку в двумерной системе координат, где x является значением по горизонтальной оси, а y — значением по вертикальной оси.

Для определения объекта Point необходимо задать его свойства x и y следующим образом:

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;

Определение расстояния между двумя точками

В классе Point для нахождения расстояния между двумя точками в координатном пространстве используется метод distance() . Например, следующий код позволяет найти расстояние между точками регистрации двух экранных объектов circle1 и circle2 , расположенных в одном контейнере:

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

Перемещение координатных пространств

Если два экранных объекта находятся в различных контейнерах, они могут быть в различных координатных пространствах. Для класса 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);

Перемещение экранного объекта на заданный угол и расстояние

Для перемещения экранного объекта на заданный угол и расстояние можно использовать метод polar() из класса Point. Например, следующий код позволяет переместить объект myDisplayObject на 100 пикселов и 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;

Другое использование класса Point

Объекты Point можно использовать со следующими функциями и свойствами.

Класс

Методы или свойства

Описание

DisplayObjectContainer

areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()

Используется для возвращения списка объектов под точкой в контейнер экранных объектов.

BitmapData

hitTest()

Используется для определения пиксела в объекте BitmapData, а также точки, проверяемой на попадание.

BitmapData

applyFilter()

copyChannel()

merge()

paletteMap()

pixelDissolve()

threshold()

Используется для определения позиций прямоугольников, определяющих операции.

Matrix

deltaTransformPoint()

transformPoint()

Используется для определения точек, к которым требуется применить преобразование.

Rectangle

bottomRight

size

topLeft

Используется для определения этих свойств.