第7章AS30显示编程

上传人:飞*** 文档编号:48591797 上传时间:2018-07-17 格式:PPT 页数:24 大小:392KB
返回 下载 相关 举报
第7章AS30显示编程_第1页
第1页 / 共24页
第7章AS30显示编程_第2页
第2页 / 共24页
第7章AS30显示编程_第3页
第3页 / 共24页
第7章AS30显示编程_第4页
第4页 / 共24页
第7章AS30显示编程_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《第7章AS30显示编程》由会员分享,可在线阅读,更多相关《第7章AS30显示编程(24页珍藏版)》请在金锄头文库上搜索。

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

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

3、。7.1.2 显示对象的种类 在ActionScript3.0中,所有的显示对象都属于同 一个类:DisplayObject类。所有的显示对象都是 其子类。本节将对显示对象的种类进行简单的介 绍,并且进行简要的分类。 1显示对象的具体种类 2显示对象分类7.1.3 显示列表在前文中已经说到,ActionScript 3.0支持的显示对象的结构类 似于“树状结构”,这上面的所有的显示对象和容器,就构成了 显示列表。显示列表是ActionScript 3.0中的一个新概念。显示 列表就是一个显示对象的清单,只要在Flash Player中显示出来 的对象,都是该显示列表中的内容。 在ActionS

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

5、isplayObject,该类总结了大 部分显示对象的共有的特征和行为。特征对应于 显示对象的属性,行为对应于显示对象的方法。 在ActionScript 3.0中,DisplayObject类共有25 个属性,6个方法和6个事件。下面将简单介绍一 些常用的属性和方法,对于复杂的应用,将在后 面的章节结合具体的实例讲解。7.2.1 显示对象的常见属性显示对象的属性共有25个,本节将介绍常用的一些基本属性。 (1)横坐标x:显示对象注册点距离自己父级容器注册点之间的水平距离 ,以象素为单位。如果父容器是舞台,那么就是自身注册点与舞台原点间 的水平距离。 (2)纵坐标y:显示对象注册点与父级容器注

6、册点之间的竖直距离,以象 素为单位。若父容器为根对象root,则为自身注册点与舞台原点之间的竖 直距离。 (3)宽度width:显示对象最左边到最右边之间的距离,以象素为单位。 (4)高度height:显示对象最上边到最下边之间的距离,以象素为单位 。 (5)横向缩放比例scaleX:一个比例值,01之间的数字。控制显示对 象的横向缩放比例。 (6)纵向缩放比例scaleY:一个比例值,01之间的数字。控制显示对 象的纵向缩放比例。 (7)鼠标横向横坐标mouseX:鼠标相对于当前显示对象注册点之间的水 平距离。 (8)鼠标横向纵坐标mouseY:鼠标相对于当前显示对象注册点之间的竖 直距离。

7、7.2.1 显示对象的常见属性(9)顺时针旋转角度rotation:显示对象绕轴点顺时针旋转的角度。0180度表示 顺时针旋转角度,0-180度表示逆时针旋转角度。如果超过了这个范围,则自动减 去360的整数倍。 (10)透明度alpha:01之间的值,0表示完全透明,1表示完全不透明。 (11)可见性visible:Boolean值,用于控制显示对象是否可见。true表示将对象显 示,false表示不显示对象。但不管设置成何值,该显示对象始终位于显示对象列表 中。 (12)遮照mask:持有的引用是用来遮照的显示对象。 (13)显示对象名字name:通常生产显示对象时,会分配默认的名字。若有

8、需要,可 以使用代码进行修改。 (14)父容器parent:在显示列表中每个显示对象都有其父容器。parent属性指向显 示对象的父容器,若显示对象不在父容器,则该属性为null。 (15)根对象root:返回SWF文件主类的实例。若显示对象不在父容器,则该属性为 null。 (16)舞台stage:该属性持有的引用指向该显示对象所在的舞台。每个Flash程序, 都有一个舞台。 除了以上的16个属性之外,DisplayObject对象还有9个属性,分别为:loaderInfo、 cacheASBitmap、filters、scale9Grid、blendMode、accessibilityPr

9、operties、 opaqueBackground、scrollRect和transform。这些属性在后面的章节中根据需要进 行讲解。7.2.2 显示对象的方法显示对象的基本方法有6个,常用的方法如下: (1)getBounds()方法:返回一个矩形区域,该矩形定义 相对于显示对象所在坐标系的显示对象区域。 (2)getRect()方法:返回一个矩形区域,该矩形定义相 对于显示对象所在坐标系的显示对象区域,注意该区域不 包含形状上的笔触宽度。 (3)hitTestObject()方法:返回一个Boolean值,若为 true,表示两个对象重叠或相交,否则为不相交。 (4)hitTestPo

10、int()方法:返回一个Boolean值,若为 true,表示该对象对应点重叠或相交,否则为不相交。7.2.3 显示对象的事件显示对象的事件有6个,常见的如下: (1)added事件:将显示对象添加到显示列表中时会调度该时间。下面的两种方法会 触发此事件:将显示对象添加到容器、将显示对象添加到容器的某一层次。 (2)addedToStage事件:将显示对象直接添加到舞台显示列表或将包含显示对象的 子对象添加至舞台显示列表中时会调度该事件。下面的两种情况下会触发此事件:将 显示对象添加到容器、将显示对象添加到容器的某一层次。 (3)removed事件:要从显示列表中删除显示对象时会调度该事件。以

11、下两种情况下 会生成此事件:将显示对象容器的某个显示对象删除、将显示对象容器中的某个层次 的显示对象删除。 (4)removedFromStage事件:要从显示列表中删除显示对象或者删除包含显示对象 的子对象时会调度该事件。以下两种情况下会生成此事件:将显示对象容器的某个显 示对象删除、将显示对象容器中的某个层次的显示对象删除。 (5)enterFrame事件:播放头进入新帧时调度该事件。若播放头不移动,或者只有 一帧,则会继续以帧频调度此事件。 (6)render事件:在显示器述评之前调度该事件。当使用render事件的显示对象进 入舞台时,或者显示对象存在于显示列表时才会触发该事件。要保证

12、render事件在当 前帧触发,必须调用stage.invalidate()。7.3 管理显示对象 显示对象只有显示在屏幕之上,才能达到要实现 的效果。显示对象容器就是用来储存和显示显示 对象的对象。要实现在显示对象容器中显示对象 ,就需要把显示对象加入到显示对象列表中。本 节主要介绍如何添加和删除显示对象,如何通过 深度管理对象以及如何访问显示对象。7.3.1 容器的概念 所有的显示对象都要放入显示对象容器中才能够 显示,为了方便区分,把显示对象容器简称为容 器。容器是可以嵌套的,容器中可以放置非容器 显示对象,也可以放置子容器对象。 容器的主要功能有一下几点: 提供访问、添加、删除显示对象

13、的功能。 具有深度管理功能。 其中深度管理也就是管理容器中子对象的叠放次 序。所谓的叠放次序,表示显示对象重叠时从前 到后的显示顺序。处于显示顺序最前面的完整显 示,后面的对象依次被前面的对象遮挡,甚至有 的不能显示出来。7.3.2 添加显示对象在ActionScript 3.0中,要把一个对象显示在屏幕中,需要作两 步工作,一是创建显示对象,二是把显示对象添加到容器的显示 列表中。加入显示列表的方法有addChild()和addChildAt()。 要在ActionScript 3.0中创建一个显示对象,只需使用new关键字 加类的构造函数即可。只要是继承自DisplayObject类或者其

14、子类 的的实例都可以添加到显示对象列表中,比如Sprite,MovieClip ,TextField,或自定义类。用下列代码创建TextField(文本框 )的代码如下所示。 var mytext:TextField =newTextField( ); 上面已经使用代码建立了一个文本框实例,但是它并没有位于显 示列表中,也就是说它现在还没有显示在屏幕上。要把这个文本 框显示在屏幕中,必须使用容器类的addChild()或者 addChildAt()方法加入到显示列表中。 1将显示对象直接添加到显示列表中 2将显示对象添加到指定位置7.3.3 删除显示对象 要移除位于显示对象列表中的显示对象,需

15、要使 用容器类的removeChild()和removeChildAt()方 法。 1移除指定名称的显示对象 要移除已经知道显示对象名称的显示对象,可以 使用显示对象类的removeChild()方法其用法格式 如下: 容器对象.removeChild(显示对象) 2删除指定索引的显示对象要删除指定位置索引 的显示对象,可以使用显示对象类的 removeChildAt()方法。其用法格式如下所示。 容器对象.removeChildAt(位置索引)7.3.4 深度管理深度,也就是前文所说的位置索引,用于说明同一个容器 中同一级别的所有显示对象从前到后的叠放次序。 在ActionScript 3.

16、0中,使用了全新的深度管理体系和轻 巧的深度管理方法,使我们可以很方便和舒适的添加和访 问对象。此深度管理体系有两个重要的特点: 深度由各自的容器对象所管理。每一个容器都知道自己有 多少个子对象,这个数目记录在自己容器的numChildren属 性中。每一个对象在容器显示列表中的位置索引代表了其 深度值。每一个容器的深度范围为0numChildren-1。 添加显示对象会自己调整各个显示对象的深度,避免层次 冲突。比如某一个深度已经有了一个显示7.3.5 访问显示对象要访问加入到容器中的显示对象,可以通过3种方法来实现:通过 深度访问、通过名字访问和通过全局坐标访问。 1通过深度访问显示对象:通过深度来访问显示对象,要使用 getChildAt()方法。用法格式如下: 容器对象.getChildAt(深度) 2通过名字访问显示对象:每一个显示对象都有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号