- 相干保举
java“类的分包处置”具体教程
ActionScript 3.0 自写类清算条记(一)——类的分包处置
分包情况:
base包:根本包,用于寄存低级利用类
bat包:利用包,用于寄存高等利用类
com包:体系化包,用于寄存体系化的高等利用模块类
exe包:框架包,用于寄存框架方面的类
item包:名目包,用于名目上靠经历堆集下的类
module包:组件包,用于寄存组件的类
这段时辰,我小我的情感很是降低,为了挣脱这段时辰的悲观状况
是以起头清算在做名目中,碰着的各种题目,来清算出一套可用性高的类库
但愿本身会对峙下去!
ActionScript 3.0 自写类清算条记(二)——Dot类
index.base.geom.Dot类讲授
根基功效:记实xy两点
机关函数
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
举例:
上面的flash展现源代码:
import index.base.geom.Dot;
import index.base.events.DotEvent;
var po1:Dot = new Dot(0,0,true);
var po2:Dot = new Dot(0,0,true);
po1.bind(p1,true);
po2.bind(p2,true);
po1.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun);
po2.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun);
function dotChangeFun(e:DotEvent):void{
te.text = "物体1坐标:" po1.x "," po1.y;
te.appendText("n物体2坐标:" po2.x "," po2.y);
te.appendText("n两点之间间隔:" po1.from(po2));
te.appendText("n所构成的角度:" po1.angle(po2));
te.appendText("n物体1地点象限:" po1.quadrant(new Dot,false));
te.appendText("n物体2地点象限:" po2.quadrant(new Dot,false));
te.appendText("n物体1对物体2在象限:" po2.quadrant(po1));
}
p1.addEventListener(MouseEvent.MOUSE_DOWN,p1MouseDownFun);
p2.addEventListener(MouseEvent.MOUSE_DOWN,p2MouseDownFun);
function p1MouseDownFun(e:MouseEvent):void{
p1.startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun);
}
function p1MouseUpFun(e:MouseEvent):void{
p1.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun);
}
function p2MouseDownFun(e:MouseEvent):void{
p2.startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun);
}
function p2MouseUpFun(e:MouseEvent):void{
p2.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun);
}
上面是类的源代码:
package index.base.geom{
import flash.events.EventDispatcher;
import flash.display.DisplayObject;
import index.base.events.DotEvent;
public class Dot extends EventDispatcher{
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;
}
var num:int;
var p1:Boolean = (_x - _dot.x) > 0;
var p2:Boolean = (_y - _dot.y) > 0;
num = isMaster ? (p1 ? (p2 ? 2 : 3) : (p2 ? 1 : 4)) : (p1 ? (p2 ? 4 : 1) : (p2 ? 3 : 2));
return num;
}
//前往该点距0点的间隔
public function get length():Number{
updata();
var num:Number = Math.sqrt(Math.pow(_x,2) Math.pow(_y,2));
return num;
}
//断根显现工具
public function clear():void{
dis = null;
}
//转变X坐标
public function set x(num:Number):void{
_x = num;
if(dis != null) dis.x = num;
if(isListen) dispatchEvent(new DotEvent(DotEvent.DOT_CHANGE,true));
}
//设置X坐标
public function get x():Number{
updata();
return _x;
}
//转变Y坐标
public function set y(num:Number):void{
_y = num;
if(dis != null) dis.y = num;
if(isListen) dispatchEvent(new DotEvent(DotEvent.DOT_CHANGE,true));
}
//设置Y坐标
public function get y():Number{
updata();
return _y;
}
}
}
事务类的代码:
package index.base.events{
import flash.events.Event;
public class DotEvent extends Event{
public static const DOT_CHANGE:String = "dotChange";
public function DotEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false){
super(type,bubbles,cancelable);
}
}
}
【java“类的分包处置”具体教程】相干文章:
linux设置装备摆设java情况变量具体步骤教程08-13
对于Java类的界说和履行挨次进修教程10-17
java教程之Java编程根本09-12
Java面向进程教程10-05
java selenium根基教程09-27
Photoshop调色具体教程05-17
java四系列的具体讲授10-05
Java法式从头设置装备摆设教程07-07
Java构建JSE开辟情况教程06-17
Java法式设想示例教程09-19