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
|
Используется для определения этих свойств.
|
|
|
|