Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > 处理几何结构 > 使用 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(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 对象用于以下方法和属性:
|
类 |
方法或属性 |
说明 |
|---|---|---|
|
DisplayObjectContainer |
|
用于返回显示对象容器中某个点下的对象的列表。 |
|
BitmapData |
|
用于定义 BitmapData 对象中的像素以及要检查点击的点。 |
|
BitmapData |
|
用于定义那些定义操作的矩形的位置。 |
|
Matrix |
|
用于定义您要对其应用变形的点。 |
|
Rectangle |
|
用于定义这些属性。 |
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000186.html