使用 Point 物件
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()
|
用來定義矩形的位置,這些矩形都會定義作業。
|
Matrix
|
deltaTransformPoint()
transformPoint()
|
用來定義您要針對其套用變形的點。
|
Rectangle
|
bottomRight
size
topLeft
|
用來定義這些屬性。
|