Ein
Point
-Objekt definiert ein Paar kartesischer Koordinaten. Es gibt eine Position in einem zweidimensionalen Koordinatensystem an, in dem
x
die horizontale Achse und
y
die vertikale Achse darstellt.
Ein Point-Objekt wird durch Festlegen der entsprechenden
x
-Eigenschaft und
y
-Eigenschaft definiert:
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;
Ermitteln des Abstands zwischen zwei Punkten
Mithilfe der
distance()
-Methode der Point-Klasse können Sie den Abstand zwischen zwei Punkten in einem Koordinatenraum ermitteln. Mit dem folgenden Code wird beispielsweise der Abstand zwischen den Registrierungspunkten der beiden Anzeigeobjekte
circle1
und
circle2
im gleichen Anzeigeobjektcontainer ermittelt:
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);
Versetzen von Koordinatenräumen
Wenn zwei Anzeigeobjekte in verschiedenen Anzeigeobjektcontainern enthalten sind, können sie sich in verschiedenen Koordinatenräumen befinden. Mithilfe der
localToGlobal()
-Methode der DisplayObject-Klasse können Sie die Koordinaten in den gleichen (globalen) Koordinatenraum versetzen, d. h. in den Koordinatenraum der Bühne. Mit dem folgenden Code wird beispielsweise der Abstand zwischen den Registrierungspunkten der beiden Anzeigeobjekte
circle1
und
circle2
in zwei verschiedenen Anzeigeobjektcontainern ermittelt:
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);
Ebenso können Sie den Abstand zwischen dem Registrierungspunkt des Anzeigeobjekts
target
und einem bestimmten Punkt auf der Bühne mithilfe der
localToGlobal()
-Methode der DisplayObject-Klasse ermitteln:
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);
Verschieben eines Anzeigeobjekts um einen bestimmten Winkel und Abstand
Mithilfe der
polar()
-Methode der Point-Klasse können Sie ein Anzeigeobjekt in einem bestimmten Winkel um einen bestimmten Abstand verschieben. Mit dem folgenden Code wird das
myDisplayObject
-Objekt beispielsweise um 100 Pixel im Winkel von 60° verschoben:
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;
Andere Verwendungen der Point-Klasse
Sie können Point-Objekte mit den folgenden Methoden und Eigenschaften verwenden:
Klasse
|
Methoden oder Eigenschaften
|
Beschreibung
|
DisplayObjectContainer
|
areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()
|
Wird zum Zurückgeben einer Liste mit Objekten an einem bestimmten Punkt in einem Anzeigeobjektcontainer verwendet.
|
BitmapData
|
hitTest()
|
Wird zum Definieren der Pixel im BitmapData-Objekt und des Punktes verwendet, der auf Übereinstimmung geprüft wird.
|
BitmapData
|
applyFilter()
copyChannel()
merge()
paletteMap()
pixelDissolve()
threshold()
|
Wird zum Festlegen der Position von Rechtecken verwendet, mit denen Operationen definiert werden.
|
Matrix
|
deltaTransformPoint()
transformPoint()
|
Wird zum Definieren von Punkten verwendet, auf die eine Transformation angewendet werden soll.
|
Rectangle
|
bottomRight
size
topLeft
|
Wird zum Definieren der Eigenschaften verwendet.
|
|
|
|