java类的分包处理详细教程.docx

上传人:b****4 文档编号:27060450 上传时间:2023-06-26 格式:DOCX 页数:9 大小:16.37KB
下载 相关 举报
java类的分包处理详细教程.docx_第1页
第1页 / 共9页
java类的分包处理详细教程.docx_第2页
第2页 / 共9页
java类的分包处理详细教程.docx_第3页
第3页 / 共9页
java类的分包处理详细教程.docx_第4页
第4页 / 共9页
java类的分包处理详细教程.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

java类的分包处理详细教程.docx

《java类的分包处理详细教程.docx》由会员分享,可在线阅读,更多相关《java类的分包处理详细教程.docx(9页珍藏版)》请在冰豆网上搜索。

java类的分包处理详细教程.docx

java类的分包处理详细教程

java“类的分包处理”详细教程

java“类的分包处理”详细教程

ActionScript3.0自写类整理笔记

(一)——类的分包处理

分包情况:

base包:

基础包,用于存放初级应用类

bat包:

应用包,用于存放高级应用类

com包:

系统化包,用于存放系统化的高级应用模块类

exe包:

框架包,用于存放框架方面的类

module包:

组件包,用于存放组件的类

这段时间,我个人的情绪非常低落,为了摆脱这段时间的消极状态

因此开始整理在做项目中,碰到的种种问题,来整理出一套可用性高的类库

希望自己会坚持下去!

ActionScript3.0自写类整理笔记

(二)——Dot类

index.base.geom.Dot类讲解

基本功能:

记录xy两点

构造函数

publicfunctionDot(x_:

Number=0,y_:

Number=0,_isListen:

Boolean=false)

前两个参数表示Dot的初始位置,第三个参数表示是否是一个功能性强的点

如果为false,当xy发生改变的时候,就不会发布事件,为true则会发布事件、

bind绑定显示对象方法

publicfunctionbind(_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刷新方法

publicfunctionupdata():

void

更新显示对象与Dot的xy属性

from返回两点之间距离

publicfunctionfrom(_dot:

Dot,isQuadrant:

Boolean=false):

Number

第一个参数表示,结束点,第二个参数表示,是否为真实距离

如果为false,返回的两点距离绝对是正数,指的是两点之间的绝对距离

如果为true,则返回相对坐标,那么是有可能的为负的!

angle返回两点所形成的夹角

publicfunctionangle(_dot:

Dot,isRadian:

Boolean=false):

Number

第一个参数表示,另外一个点,第二个参数表示,是否为弧度值

返回的角度是相对顺时间的真实角度值,具体的数值变化可以从上面的例子看出

quadrant返回相对点所在的象限

publicfunctionquadrant(_dot:

Dot,isMaster:

Boolean=true):

int

第一个参数表示另外一个点,第二个参数表示是否以该点为标准,具体请看示例

返回0,表示两点在同一条横着或者竖着的直线上

返回1,表示在第一象限,返回2表示第二象限…………最高是第四象限。

不知道象限是什么意思的.,请看这点击跳转"象限"的XX百科页面

clear方法

publicfunctionclear():

void

清空显示对象

length属性(只读)

publicfunctiongetlength():

Number

获取该点距0,0点的距离

x属性

publicfunctionsetx(num:

Number):

void

publicfunctiongetx():

Number

设置x属性,如果isListen为true,则会发布x改变的事件

y属性

publicfunctionsety(num:

Number):

void

publicfunctiongety():

Number

设置y属性,如果isListen为true,则会发布y改变的事件

isListener属性

publicvarisListen:

Boolean

指定设置isListen的值,是否为可侦听xy

举例:

上面的flash展示源代码:

importindex.base.geom.Dot;

importindex.base.events.DotEvent;

varpo1:

Dot=newDot(0,0,true);

varpo2:

Dot=newDot(0,0,true);

po1.bind(p1,true);

po2.bind(p2,true);

po1.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun);

po2.addEventListener(DotEvent.DOT_CHANGE,dotChangeFun);

functiondotChangeFun(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(newDot,false));

te.appendText("n物体2所在象限:

"po2.quadrant(newDot,false));

te.appendText("n物体1对于物体2在象限:

"po2.quadrant(po1));

}

p1.addEventListener(MouseEvent.MOUSE_DOWN,p1MouseDownFun);

p2.addEventListener(MouseEvent.MOUSE_DOWN,p2MouseDownFun);

functionp1MouseDownFun(e:

MouseEvent):

void{

p1.startDrag();

stage.addEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun);

}

functionp1MouseUpFun(e:

MouseEvent):

void{

p1.stopDrag();

stage.removeEventListener(MouseEvent.MOUSE_UP,p1MouseUpFun);

}

functionp2MouseDownFun(e:

MouseEvent):

void{

p2.startDrag();

stage.addEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun);

}

functionp2MouseUpFun(e:

MouseEvent):

void{

p2.stopDrag();

stage.removeEventListener(MouseEvent.MOUSE_UP,p2MouseUpFun);

}

下面是类的源代码:

packageindex.base.geom{

importflash.events.EventDispatcher;

importflash.display.DisplayObject;

importindex.base.events.DotEvent;

publicclassDotextendsEventDispatcher{

privatevar_x:

Number;

privatevar_y:

Number;

privatevardis:

DisplayObject;

publicvarisListen:

Boolean;

publicfunctionDot(x_:

Number=0,y_:

Number=0,_isListen:

Boolean=false){

_x=x_;

_y=y_;

isListen=_isListen;

}

//绑定DisplayObject

publicfunctionbind(_dis:

DisplayObject,isInTime:

Boolean=false):

void{

dis=_dis;

updata();

if(isInTime)dis.addEventListener("enterFrame",enterFrameFun);

}

//帧频繁事件

privatefunctionenterFrameFun(e:

Object):

void{

if(_x!

=dis.x)x=dis.x;

if(_y!

=dis.y)y=dis.y;

}

//更新xy数据

publicfunctionupdata():

void{

if(dis!

=null){

_x=dis.x;

_y=dis.y;

}

}

//计算该点与另外一点的距离

publicfunctionfrom(_dot:

Dot,isQuadrant:

Boolean=false):

Number{

updata();

varnum:

Number=Math.sqrt(Math.pow(_dot.x-_x,2)Math.pow(_dot.y-_y,2));

if(!

isQuadrant)num=Math.abs(num);

returnnum;

}

//计算该点与另外一点所形成的线段与水平线的夹角,按顺时间计算

publicfunctionangle(_dot:

Dot,isRadian:

Boolean=false):

Number{

updata();

varnumx:

Number=_dot.x-_x;

varnumy:

Number=_dot.y-_y;

varnum:

Number=Math.atan(numy/numx);

if(!

isRadian)num=num*180/Math.PI;

returnnum;

}

//返回当前点处在另外一点的哪个象限中或返回另外一点处在当前点的哪个象限中

publicfunctionquadrant(_dot:

Dot,isMaster:

Boolean=true):

int{

updata();

if(_x==_dot.x||_y==_dot.y){

return0;

}

varnum:

int;

varp1:

Boolean=(_x-_dot.x)>0;

varp2:

Boolean=(_y-_dot.y)>0;

num=isMaster?

(p1?

(p2?

2:

3):

(p2?

1:

4)):

(p1?

(p2?

4:

1):

(p2?

3:

2));

returnnum;

}

//返回该点距0点的距离

publicfunctiongetlength():

Number{

updata();

varnum:

Number=Math.sqrt(Math.pow(_x,2)Math.pow(_y,2));

returnnum;

}

//清除显示对象

publicfunctionclear():

void{

dis=null;

}

//改变X坐标

publicfunctionsetx(num:

Number):

void{

_x=num;

if(dis!

=null)dis.x=num;

if(isListen)dispatchEvent(newDotEvent(DotEvent.DOT_CHANGE,true));

}

//设置X坐标

publicfunctiongetx():

Number{

updata();

return_x;

}

//改变Y坐标

publicfunctionsety(num:

Number):

void{

_y=num;

if(dis!

=null)dis.y=num;

if(isListen)dispatchEvent(newDotEvent(DotEvent.DOT_CHANGE,true));

}

//设置Y坐标

publicfunctiongety():

Number{

updata();

return_y;

}

}

}

事件类的代码:

packageindex.base.events{

importflash.events.Event;

publicclassDotEventextendsEvent{

publicstaticconstDOT_CHANGE:

String="dotChange";

publicfunctionDotEvent(type:

String,bubbles:

Boolean=false,cancelable:

Boolean=false){

super(type,bubbles,cancelable);

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1