Ett
Point
-objekt definierar ett kartesiskt koordinatpar. Det representerar en plats i ett tvådimensionellt koordinatsystem där
x
representerar den vågräta axeln och
y
den lodräta.
Du definierar ett Point-objekt genom att ange
x
- och
y
-egenskaperna enligt följande:
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;
Hitta rätt avstånd mellan två punkter
Du använder metoden
distance()
i klassen Point för att finna rätt avstånd mellan två punkter i en koordinatmodell. I nästa exempel hittas avståndet mellan registreringspunkterna för två objekt,
circle1
och
circle2
, i samma visningsobjektsbehållare:
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);
Översättning av koordinatmodeller
Om det finns två visningsobjekt i olika visningsobjektsbehållare kan de finnas i olika koordinatmodeller. Du använder metoden
localToGlobal()
i klassen DisplayObject för att översätta koordinaterna till samma (globala) koordinatmodell som på scenen. I nästa exempel hittas avståndet mellan registreringspunkterna för två objekt,
circle1
och
circle2
, i olika visningsobjektsbehållare:
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);
Du kan på liknande sätt hitta avståndet till registreringspunkten för ett visningsobjekt med namnet
target
från en viss punkt på scenen genom att använda metoden
localToGlobal()
i klassen 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);
Flytta ett visningsobjekt ett visst antal grader och en viss sträcka
Om du använder metoden
polar()
i klassen Point kan du flytta ett visningsobjekt en viss sträcka i en viss vinkel. I nästa exempel flyttas objektet
myDisplayObject
100 pixlar i 60 grader:
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;
Andra användningsområden för klassen Point
Du kan använda Point-objekt med följande metoder och egenskaper:
Klass
|
Metoder eller egenskaper
|
Beskrivning
|
DisplayObjectContainer
|
areInaccessibleObjectsUnderPoint()getObjectsUnderPoint()
|
Används för att returnera en lista med objekt under en punkt i en visningsobjektsbehållare.
|
BitmapData
|
hitTest()
|
Används för att definiera pixlar i BitmapData-objektet samt punkten som du kontrollerar för händelsen.
|
BitmapData
|
applyFilter()
copyChannel()
merge()
paletteMap()
pixelDissolve()
threshold()
|
Används för att definiera positionen för de rektanglar som definierar operationen.
|
Matris
|
deltaTransformPoint()
transformPoint()
|
Används för att definiera punkter för vilka du vill tillämpa en omformning.
|
Rectangle
|
bottomRight
size
topLeft
|
Används för att definiera dessa egenskaper.
|
|
|
|