构造函数 public function Dot(x_:Number = 0,y_:Number = 0,_isListen:Boolean = false) 前两个参数表示Dot的初始位置,第三个参数表示是否是一个功能性强的点 如果为false,当xy发生改变的时候,就不会发布事件,为true则会发布事件、
bind 绑定显示对象方法 public function bind(_dis:DisplayObject,isInTime:Boolean = false):void 当Dot绑定到DisplayObject上之后,Dot的xy属性会随着_dis改变而改变 第一个参数为绑定的对象,第二个参数表示是否即时绑定 如果为false,Dot的xy属性不会随着_dis的改变而即时改变,但在获取Dot的xy属性,或者调用Dot的方法时,将会立即改变并且以_dis的xy属性为基准 如果为true,Dot的xy属性会随着_dis的改变而立即改变,如果isListen为true,还会即时发布xy改变的事件,那么等于可以侦听显示对象的xy属性,并且在改变后做出即时的反应
updata 刷新方法 public function updata():void 更新显示对象与Dot的xy属性
from 返回两点之间距离 public function from(_dot:Dot,isQuadrant:Boolean = false):Number 第一个参数表示,结束点,第二个参数表示,是否为真实距离 如果为false,返回的两点距离绝对是正数,指的是两点之间的绝对距离 如果为true,则返回相对坐标,那么是有可能的为负的!
angle 返回两点所形成的夹角 public function angle(_dot:Dot,isRadian:Boolean = false):Number 第一个参数表示,另外一个点,第二个参数表示,是否为弧度值 返回的角度是相对顺时间的真实角度值,具体的数值变化可以从上面的例子看出
quadrant 返回相对点所在的象限 public function quadrant(_dot:Dot,isMaster:Boolean = true):int 第一个参数表示另外一个点,第二个参数表示是否以该点为标准,具体请看示例 返回0,表示两点在同一条横着或者竖着的直线上 返回1,表示在第一象限,返回2表示第二象限………… 最高是第四象限。。 不知道象限是什么意思的,请看这 点击跳转"象限"的百度百科页面
clear 方法 public function clear():void 清空显示对象
length 属性(只读) public function get length():Number 获取该点距0,0点的距离
x 属性 public function set x(num:Number):void public function get x():Number 设置x属性,如果isListen为true,则会发布x改变的事件
y 属性 public function set y(num:Number):void public function get y():Number 设置y属性,如果isListen为true,则会发布y改变的事件
isListener 属性 public var isListen:Boolean 指定设置isListen的值,是否为可侦听xy
private var _x:Number; private var _y:Number; private var dis:DisplayObject;
public var isListen:Boolean;
public function Dot(x_:Number = 0,y_:Number = 0,_isListen:Boolean = false){ _x = x_; _y = y_; isListen = _isListen; }
//绑定DisplayObject public function bind(_dis:DisplayObject,isInTime:Boolean = false):void{ dis = _dis; updata(); if(isInTime) dis.addEventListener("enterFrame",enterFrameFun); }
//帧频繁事件 private function enterFrameFun(e:Object):void{ if(_x != dis.x) x = dis.x; if(_y != dis.y) y = dis.y; }
//更新xy数据 public function updata():void{ if(dis != null){ _x = dis.x; _y = dis.y; } }
//计算该点与另外一点的距离 public function from(_dot:Dot,isQuadrant:Boolean = false):Number{ updata(); var num:Number = Math.sqrt(Math.pow(_dot.x - _x,2) + Math.pow(_dot.y - _y,2)); if(!isQuadrant) num = Math.abs(num); return num; }
//计算该点与另外一点所形成的线段与水平线的夹角,按顺时间计算 public function angle(_dot:Dot,isRadian:Boolean = false):Number{ updata(); var numx:Number = _dot.x - _x; var numy:Number = _dot.y - _y; var num:Number = Math.atan(numy/numx); if(!isRadian) num = num * 180 / Math.PI; return num; }
//返回当前点处在另外一点的哪个象限中 或 返回另外一点处在当前点的哪个象限中 public function quadrant(_dot:Dot,isMaster:Boolean = true):int{ updata(); if(_x == _dot.x || _y == _dot.y){ return 0; }