使用 Point 对象

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 类的其它用法

确定两点之间的距离

可以使用 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(circle1.x, circle1.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

用于定义这些属性。


Flash CS3

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000186.html