使用 Point 对象

Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本

Point 对象定义一对笛卡尔坐标。它表示二维坐标系中的某个位置。其中 x 表示水平轴,y 表示垂直轴。

要定义 Point 对象,请设置它的 xy 属性,如下所示:

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() 方法确定坐标空间两点之间的距离。例如,下面的代码确定同一显示对象容器中两个显示对象(circle1circle2)的注册点之间的距离:

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() 方法将坐标平移到舞台中相同(全局)坐标空间。例如,下面的代码确定不同显示对象容器中两个显示对象(circle1circle2)的注册点之间的距离:

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() 方法将显示对象按特定角度移动特定距离。例如,下列代码按 60° 角度将 myDisplayObject 对象移动 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

用于定义这些属性。