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
之顯示物件的註冊點與「舞台」上特定點之間的距離,請使用 DisplayObject 類別的
localToGlobal()
方法:
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);
依指定的角度與距離移動顯示物件
您可以使用 Point 類別的
polar()
方法,依特定的角度將顯示物件移動特定的距離。例如,下列程式碼會將
myDisplayObject
物件以 60° 移動 100 個像素:
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()
|
用來定義矩形的位置,這些矩形都會定義作業。
|
矩陣
|
deltaTransformPoint()
transformPoint()
|
用來定義您要針對其套用變形的點。
|
Rectangle
|
bottomRight
size
topLeft
|
用來定義這些屬性。
|
|
|
|