仓酷云

标题: 来讲讲:Flash ActionScript 3.0教程:进修Dot类-Flash actionscript [打印本页]

作者: 透明    时间: 2015-1-15 21:05
标题: 来讲讲:Flash ActionScript 3.0教程:进修Dot类-Flash actionscript
可以为受众提供跨计算机、智能手机、平板电脑和电视平台的令人痴迷的一致性体验。
ActionScript3.0自写类收拾条记(一)——类的分包处置

分包情形



base包:基本包,用于寄存低级使用类
bat包:使用包,用于寄存初级使用类
com包:体系化包,用于寄存体系化的初级使用模块类
exe包:框架包,用于寄存框架方面的类
item包:项目包,用于项目上靠履历堆集下的类
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暗示第二象限…………最高是第四象限。。
不晓得象限是甚么意义的,请看这点击跳转"象限"的百度百科页面
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("
物体2坐标:"+po2.x+","+po2.y);
te.appendText("
两点之间间隔:"+po1.from(po2));
te.appendText("
所构成的角度:"+po1.angle(po2));
te.appendText("
物体1地点象限:"+po1.quadrant(newDot,false));
te.appendText("
物体2地点象限:"+po2.quadrant(newDot,false));
te.appendText("
物体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);
}
}
}

您是否有着精彩的Flash作品,您是否想把他转化为屏保程序。
作者: 深爱那片海    时间: 2015-1-17 15:37
不能制作色彩丰富变化的图像,核心竞争力小,而且有一定的局限性。要想制作优秀的动画,就要充分了解软件的优点和缺陷。
作者: 冷月葬花魂    时间: 2015-1-21 13:28
它包含了下列常见的形式之一或者几种的组合:流媒体、声音、Flash、以及Java、Javascript、DHTML等程序设计语言。  
作者: 小妖女    时间: 2015-1-30 19:28
Rich Media并不是一种具体的互联网媒体形式,而是指具有动画、声音、视频和/或交互性的信息传播方法。 
作者: 分手快乐    时间: 2015-2-6 15:42
FLASH在网站建设过程中既然有这么多的问题,那为什么我们还继续使用FLASH,不可否认FLASH的问题的确存在,但也不可忽视FLASH在网站建设中。
作者: 简单生活    时间: 2015-2-16 22:57
动画广告相对于传统广告而言,它的优势在于不受时间、地点等条件限制,可以通过动画的形式将那些复杂又抽象的广告内容更加简单化、生动形象化。
作者: 莫相离    时间: 2015-3-5 11:54
缺点也必然会会有的,但是不同的产品有不同的缺点吧,比如说flash建站它的速度会比较慢。
作者: 活着的死人    时间: 2015-3-19 20:12
Flash也支持alpha通道,这会使设计者高兴。没有太多的技术性,alpha通道是附加在图像上的信息 - 允许图像以不同的方式渲染。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2