第7章AS3.0显示编程

上传人:小** 文档编号:175331984 上传时间:2022-12-19 格式:DOC 页数:8 大小:181KB
收藏 版权申诉 举报 下载
第7章AS3.0显示编程_第1页
第1页 / 共8页
第7章AS3.0显示编程_第2页
第2页 / 共8页
第7章AS3.0显示编程_第3页
第3页 / 共8页
资源描述:

《第7章AS3.0显示编程》由会员分享,可在线阅读,更多相关《第7章AS3.0显示编程(8页珍藏版)》请在装配图网上搜索。

1、AS3.0显示编程ActionScript3.0的显示功能有了很大的革新,原有的显示结构发生了重大的改变。对于熟悉了ActionScript以前版本中MovieClip影片剪辑控制和使用的AS程序人员来说,这次革新将导致一个新的学习过程。Actionscript3.0显示编程的内容主要是关于如何使用ActionScript来生成和控制各种图形、动画等显示对象。显示对象通常指的是显示在FlashPlayer舞台上的可视化的对象。1显示对象简介显示对象(DisplayObject),指的是可以在舞台显示的一切对象,包括可以直接看得见的图形、动画、视频、文字等,也包括一些看不见的显示对象容器。在Ac

2、tionScript3.0中,任何的复杂的图形都是由显示对象和显示对象的容器共同构成。1)AS3.0中显示对象的等级结构编译完成的SWF文件,以最根部的stage(舞台)为基础,展现出不同的显示效果。利用ActionScript3.0构建的Flash播放文件都有都有一个由显示对象构成的层次结构,这个结构称为“显示列表”。这个显示列表按照一定的等级和层次在舞台上显示出来,构成复杂的显示对象。ActionScript3.0支持的显示对象的结构类似于“树状结构”以舞台为根,SWF文件为干,显示对象为枝叶。具体结构见图所示。2)显示对象的种类在ActionScript3.0中,所有的显示对象都属于同一

3、个类:Displayobject类。所有的显示对象都是其子类。本节将对显示对象的种类进行简单的介绍,并且进行简要的分类。1显示对象的具体种类2显示对象分类3)显示列表在前文中已经说到,ActionScript3.0支持的显示对象的结构类似于“树状结构”,这上面的所有的显示对象和容器,就构成了显示列表。显示列表是ActionScript3.0中的一个新概念。显示列表就是一个显示对象的清单,只要在FlashPlayer中显示出来的对象,都是该显示列表中的内容。在ActionScript3.0中,显示对象能否显示出来,取决于是否加入了显示列表。如果加入了显示列表,该对象就会被显示出来;否则,即使该对

4、象已经被创建,也不能被显示出来。ActionScript3.0显示列表进行了以下方面的改进,具有明显的优点。1呈现方式更为有效且文件较小,有效的提高了性能。2改进的深度管理,使层级管理更加容易3完整遍历显示列表,使对象的访问更方便4列表外的显示对象,方便了显示对象的管理5更便于创建显示对象的子类,创建可视化对象更容易2显示对象的一些基本概念在舞台上看到的显示对象,都有它们各自的属性,如位置、大小、透明度等等。这些属性都来自于显示对象的基类Displayobject,该类总结了大部分显示对象的共有的特征和行为。特征对应于显示对象的属性,行为对应于显示对象的方法。在ActionScript3.0中

5、,Displayobject类共有25个属性,6个方法和6个事件。下面将简单介绍一些常用的属性和方法,对于复杂的应用,将在后面的章节结合具体的实例讲解。1) 显示对象的常见属性显示对象的属性共有25个,本节将介绍常用的一些基本属性。(1) 横坐标x:显示对象注册点距离自己父级容器注册点之间的水平距离,以象素为单位。如果父容器是舞台,那么就是自身注册点与舞台原点间的水平距离。(2) 纵坐标y:显示对象注册点与父级容器注册点之间的竖直距离,以象素为单位。若父容器为根对象root,则为自身注册点与舞台原点之间的竖直距离。(3) 宽度width:显示对象最左边到最右边之间的距离,以象素为单位。(4)

6、高度height:显示对象最上边到最下边之间的距离,以象素为单位。(5) 横向缩放比例scaleX:个比例值,01之间的数字。控制显示对象的横向缩放比例。(6) 纵向缩放比例scaleY:一个比例值,01之间的数字。控制显示对象的纵向缩放比例。(7) 鼠标横向横坐标mouseX:鼠标相对于当前显示对象注册点之间的水平距离。(8) 鼠标横向纵坐标mouseY:鼠标相对于当前显示对象注册点之间的竖直距离。(9) 顺时针旋转角度rotation:显示对象绕轴点顺时针旋转的角度。0180度表示顺时针旋转角度,0-180度表示逆时针旋转角度。如果超过了这个范围,则自动减去360的整数倍。(10) 透明度

7、alpha:01之间的值,0表示完全透明,1表示完全不透明。(11) 可见性visible:Boolean值,用于控制显示对象是否可见。true表示将对象显示,false表示不显示对象。但不管设置成何值,该显示对象始终位于显示对象列表中。(12) 遮照mask:持有的引用是用来遮照的显示对象。(13) 显示对象名字name:通常生产显示对象时,会分配默认的名字。若有需要,可以使用代码进行修改。(14) 父容器parent:在显示列表中每个显示对象都有其父容器。parent属性指向显示对象的父容器,若显示对象不在父容器,则该属性为null。(15) 根对象root:返回SWF文件主类的实例。若显

8、示对象不在父容器,则该属性为null。(16) 舞台stage:该属性持有的引用指向该显示对象所在的舞台。每个Flash程序,都有一个舞台。除了以上的16个属性之外,DisplayObject对象还有9个属性,分别为:loaderInfo、cacheASBitmap、filters、scale9Grid、blendMode、accessibilityProperties、opaqueBackground、scrollRect和transform。这些属性在后面的章节中根据需要进行讲解。2) 显示对象的方法显示对象的基本方法有6个,常用的方法如下:(1) getBounds()方法:返回一个矩形

9、区域,该矩形定义相对于显示对象所在坐标系的显示对象区域。(2) getRect()方法:返回一个矩形区域,该矩形定义相对于显示对象所在坐标系的显示对象区域,注意该区域不包含形状上的笔触宽度。(3) hitTestObject()方法:返回一个Boolean值,若为true,表示两个对象重叠或相交,否则为不相交。(4) hitTestPoint()方法:返回一个Boolean值,若为true,表示该对象对应点重叠或相交,否则为不相交。3) 显示对象的事件显示对象的事件有6个,常见的如下:(1) added事件:将显示对象添加到显示列表中时会调度该时间。下面的两种方法会触发此事件:将显示对象添加到

10、容器、将显示对象添加到容器的某一层次。(2) addedToStage事件:将显示对象直接添加到舞台显示列表或将包含显示对象的子对象添加至舞台显示列表中时会调度该事件。下面的两种情况下会触发此事件:将显示对象添加到容器、将显示对象添加到容器的某一层次。(3) removed事件:要从显示列表中删除显示对象时会调度该事件。以下两种情况下会生成此事件:将显示对象容器的某个显示对象删除、将显示对象容器中的某个层次的显示对象删除。(4) removedFromStage事件:要从显示列表中删除显示对象或者删除包含显示对象的子对象时会调度该事件。以下两种情况下会生成此事件:将显示对象容器的某个显示对象删

11、除、将显示对象容器中的某个层次的显示对象删除。(5) enterFrame事件:播放头进入新帧时调度该事件。若播放头不移动,或者只有一帧,则会继续以帧频调度此事件。(6) render事件:在显示器述评之前调度该事件。当使用render事件的显示对象进入舞台时,或者显示对象存在于显示列表时才会触发该事件。要保证render事件在当前帧触发,必须调用stage.invalidate()。3管理显示对象显示对象只有显示在屏幕之上,才能达到要实现的效果。显示对象容器就是用来储存和显示显示对象的对象。要实现在显示对象容器中显示对象,就需要把显示对象加入到显示对象列表中。本节主要介绍如何添加和删除显示对

12、象,如何通过深度管理对象以及如何访问显示对象。1)容器的概念所有的显示对象都要放入显示对象容器中才能够显示,为了方便区分,把显示对象容器简称为容器。容器是可以嵌套的,容器中可以放置非容器显示对象,也可以放置子容器对象。容器的主要功能有一下几点:提供访问、添加、删除显示对象的功能。具有深度管理功能。其中深度管理也就是管理容器中子对象的叠放次序。所谓的叠放次序,表示显示对象重叠时从前到后的显示顺序。处于显示顺序最前面的完整显示,后面的对象依次被前面的对象遮挡,甚至有的不能显示出来。2)添加显示对象在ActionScript3.0中,要把一个对象显示在屏幕中,需要作两步工作,一是创建显示对象,二是把

13、显示对象添加到容器的显示列表中。加入显示列表的方法有addChild()和addChildAt()。要在ActionScript3.0中创建一个显示对象,只需使用new关键字加类的构造函数即可。只要是继承自DisplayObject类或者其子类的的实例都可以添加到显示对象列表中,比如Sprite,MovieClip,TextField,或自定义类。用下列代码创建TextField(文本框)的代码如下所示。varmytext:TextField=newTextField();上面已经使用代码建立了一个文本框实例,但是它并没有位于显示列表中,也就是说它现在还没有显示在屏幕上。要把这个文本框显示在屏

14、幕中,必须使用容器类的addChild()或者addChildAt()方法加入到显示列表中。1将显示对象直接添加到显示列表中2将显示对象添加到指定位置3) 删除显示对象要移除位于显示对象列表中的显示对象,需要使用容器类的removeChild()和removeChildAt()方法。1移除指定名称的显示对象要移除已经知道显示对象名称的显示对象,可以使用显示对象类的removeChild()方法其用法格式如下:容器对象.removeChild(显示对象)2删除指定索引的显示对象要删除指定位置索引的显示对象,可以使用显示对象类的removeChildAt()方法。其用法格式如下所示。容器对象.re

15、moveChildAt(位置索引)4) 深度管理深度,也就是前文所说的位置索引,用于说明同一个容器中同一级别的所有显示对象从前到后的叠放次序。在ActionScript3.0中,使用了全新的深度管理体系和轻巧的深度管理方法,使我们可以很方便和舒适的添加和访问对象。此深度管理体系有两个重要的特点:深度由各自的容器对象所管理。每一个容器都知道自己有多少个子对象,这个数目记录在自己容器的numChildren属性中。每一个对象在容器显示列表中的位置索引代表了其深度值。每一个容器的深度范围为0numChildren-1。添加显示对象会自己调整各个显示对象的深度,避免层次冲突。比如某一个深度已经有了一个

16、显示5) 访问显示对象要访问加入到容器中的显示对象,可以通过3种方法来实现:通过深度访问、通过名字访问和通过全局坐标访问。1.通过深度访问显示对象:通过深度来访问显示对象,要使用getChildAt()方法。用法格式如下:容器对象.getChildAt(深度)2通过名字访问显示对象:每一个显示对象都有一个名称,该名称可以使用该显示对象的name属性进行访问和设置。在创建显示对象的时候,可以指定显示对象的名字,也可以不指定显示对象的名字。若没有指定,FlashPlayer会自动的分配给该显示对象一个默认的名字,如:“instancel”“instance2”等。3通过坐标访问显示对象:在Acti

17、onScript3.0中,可以通过坐标来访问置于该坐标之上的所有显示对象。getObjectsUnderPoint()方法的用法格式如下:容器对象.getObjectsUnderPoint(点对象);4处理显示对象显示对象放在舞台之后,可以进行大量的操作,比如改变对象的位置、透明度、颜色,可以使显示对象旋转,也可以控制拖动显示对象。这些都要通过DisplayObject类及其子类的属性和方法来实现。本节通过一些实例,介绍使用这些属性和方法控制显示对象发生变化的方法。1)改变对象的位置要改变一个显示对象的位置,只用调整显示对象的横坐标x和纵坐标y这两个属性就可以了。注意x和y属性始终是指显示对象

18、相对于其父显示对象坐标轴的(0,0)坐标的位置。下面的实例在舞台创建一个显示对象圆和四个箭头对象。通过点击四个箭头控制圆上下左右移动。使用文档类:SetXY,改变显示对象位査效杲圈2)缩放显示对象若要缩放显示对象,可以采用两种方法来缩放显示对象的大小:使用尺寸属性(width和height)或缩放属性(scaleX和scaleY)。width和height属性使显示对象的宽和高,它们以象素为单位,可以通过指定新的宽度和高度值来缩放显示对象、scaleX和scaleY属性是指显示对象的显示比例,是一个浮点数字,最小值为0,最大不限,值为1表明和原始大小相同。缩放值大于1表示放大显示对象,小于1表

19、示所需显示对象。这两种方法都可以缩放显示对象,在使用一种属性进行缩放的时候,另一种属性的值也会对于发生变化。比如使用尺寸属性改变显示对象时,修改width的值为width/2,则该显示对象的缩放属性scaleX将变为0.5。3)旋转显示对象若要旋转显示对象,可使用显示对象的rotation属性来实现。如果要旋转某一个显示对象,可以将此属性设置为一个数字(以度为单位),表示要应用于该对象的旋转量。4)淡化显示对象Flash之所以“闪”透明度alpha这个属性起到了至关重要的左右。使用该属性可以使显示对象部分透明或者全部透明,也可以通过alpha属性控制显示对象的淡入淡出。alpha属性的值是0到

20、1之间的浮点数。0表示完全透明,1表示完全不透明。下面的实例实现这样的效果:鼠标滑上显示对象时,该显示对象透明度变为原来的一半;鼠标滑出显示对象时,该显示对象的透明度变为完全不透明。使用文档类:SetAlpha,代码如下所示。文件观囲妁伍制凋试淡化显示对象效果图5)拖曳显示对象在ActionScript3.0中,只有Sprite及其子类才具有StartDrag()、StopDrag()方法和dropTarget属性。也就是说,只有Sprite及其子类才可以被拖动,执行拖曳动作。ActionScript3.0中的StartDrag()方法的参数和使用格式如下所示。显示对象.startDrag(锁

21、定位置,拖动范围);格式说明如下:显示对象:Sprite对象及其子类生成的对象锁定位置:Boolean值,true表示锁定对象到鼠标位置中心false表示锁定到鼠标第一次单击该显示对象所在的点上。可选参数,不选默认为flase。拖动范围:Rectangle矩形对象,相对于显示对象父坐标系的一个矩形范围。可选参数,默认值为不设定拖动范围。6)遮罩显示对象遮罩(mask),是Flash中常用的一种图形处理技术。具体是指一个显示对象用作遮罩来创建一个孔洞,透过该孔洞使另一个显示对象的内容可见。具体的说,就是一个显示对象作为窗口,透过这个窗口显示另一个显示对象的内容。注意:用于遮罩的显示对象是不会出现

22、在显示屏幕中的。在ActionScript3.0中,遮罩效果要使用显示对象的mask属性来实现。用法格式如下:显示对象1.mask=显示对象2;若不想继续使用遮罩,那么将显示对象的mask属性设置为null即可。用法格式如下:显示对象1.mask=null;7)碰撞检测在ActionScript3.0中,所有的显示对象都可以作为检测和被检测的对象来检测碰撞。其方法有两种,用法格式如下:显示对象1.hitTestObject(显示对象2);说明:该方法用于检测两个显示对象是否发生碰撞,返回一个Boolean值,若为true,表示两个对象发生了碰撞,否则为没有碰撞。显示对象.hitTestPoint(x,y,检测方法);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!