使用 Point 物件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 之顯示物件的註冊點與「舞台」上特定點之間的距離,請使用 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 物件:
|
|