



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本例继续讲解AS的基础知识,今天我们来学习Flash AS入门系列教程第七课第四节:影片剪辑的深度,对Flash的AS编程有兴趣的朋友可以到论坛与作者交流。上一篇文章:Flash as入门(9):控制时间轴第4节 MC的深度在flash创作环境中我们对层的概念已经比较熟悉了。深度与层的概念比较接近。每一个在舞台上的对象都有它自已的深度,深度数字大的盖住比它小的对象,这就象上面的层遮住下面的层一样。我们可以把MC放到-16384 至 1048575的任一深度上,但某一深度上原来已有一个对象时,那么新放入的对象将替换原来的对象。这可能会遇到一个问题,当我用使用 attachMovie(MovieClip.attachMovie 方法)、duplicateMovieClip(MovieClip.duplicateMovieClip 方法)或 createEmptyMovieClip(MovieClip.createEmptyMovieClip 方法)在运行时创建影片剪辑时,始终要指定MC的深度。应该用个什么深度值呢?如果指定的深度值上已有MC了,会不会将原来的覆盖了呢?为了解决这个问题,flash 为我们提供了getNextHighestDepth()方法。getNextHighestDepth()方法:MC的这个方法将返回下一个可用的深度值。更好的的理解就是当前最大的深度值加1。因此用这个深度值,MC将在最上面。 比如:this.createEmptyMovieClip(my_mc,this.getNextHighestDepth(); getInstanceAtDepth()方法:这个方法将返回某个特定深度值上的MC实例。 比如要确定当前最大深度值的MC,可以用如下代码: var zddepth = this.getNextHighestDepth()-1; /获得当前最大的深度值 var my_mc:MovieClip =this.getInstanceAtDepth(zddepth); getDepth()方法:返回某个MC的深度 比如要返回MC,my_mc的深度: var mymcdepth = my_mc.getDepth(); swapDepths()方法:交换两个MC的深度值,如果MC正在执行补间,则补间会停止。 比如有两个MC:mc1和mc2,现在要交换这两个MC的深度 mc1.swapDepths(mc2); 下面通过一个练习来熟悉本节课所介绍的内容。效果如下:用鼠标点击挡在下面的图片,这张图片将移到最上面一层来。制作方法:1.新建一flash文档,导入若干图片。 2.将这些图片分别做成MC,大小随意,但宽高不应超过200或可再小一些。在库中分别右击这些MC,点击“连接”,在弹出的面板中,在为ActionSpript导出前打钩。在标识框内输入:pic1.第二个MC则输入pic2,以此类推。 3.回到主场景,打开动作面板,输入下列代码:(注意下面的代码是以5张图片为例写的,如果你不是5张图片则应作相应修改,详细说明看后面的代码分析)for(i=1;i6;i+) this.attachMovie(pic+i,pic+i+_mc,this.getNextHighestDepth(); var pic_mc = eval(pic+i+_mc); pic_mc._x = 150 +random(200); pic_mc._y = 100 + random(200); pic1_mc.onRelease = function() var zddepth =_root.getNextHighestDepth()-1; var zd_mc:MovieClip =_root.getInstanceAtDepth(zddepth); this.swapDepths(zd_mc); pic2_mc.onRelease = function() var zddepth = _root.getNextHighestDepth()-1; var zd_mc:MovieClip = _root.getInstanceAtDepth(zddepth); this.swapDepths(zd_mc); pic3_mc.onRelease = function() var zddepth = _root.getNextHighestDepth()-1; var zd_mc:MovieClip = _root.getInstanceAtDepth(zddepth); this.swapDepths(zd_mc); pic4_mc.onRelease = function() var zddepth = _root.getNextHighestDepth()-1; var zd_mc:MovieClip = _root.getInstanceAtDepth(zddepth); this.swapDepths(zd_mc); pic5_mc.onRelease = function() var zddepth = _root.getNextHighestDepth()-1; var zd_mc:MovieClip = _root.getInstanceAtDepth(zddepth); this.swapDepths(zd_mc); 代码分析:首先用一个for循环,将库中的图片加载到舞台上,循环次数是你的图片元件的数量,下面i6中的6用你的图片元件数量加1替换。我这里是5张图片,所以我用6。 for(i=1;i6;i+) 接下来加载这些图片元件,这里加载的深度我们用到了this.getNextHighestDepth()方法。图片加载后指定图片的x,y坐标在一定的范围内随机的位置。这个范围应根据图片元件的大小来确定,不能太小,太小了,上面的图片会完全盖住下面的图片。也不能太大,太大了则不能产生重叠效果。总之就是要即要产生重叠效果,又不能完全盖住。 this.attachMovie(pic+i,pic+i+_mc,this.getNextHighestDepth(); var pic_mc = eval(pic+i+_mc); pic_mc._x = 150 +random(200); pic_mc._y = 100 + random(200); 现在图片已加载到舞台上了,并产生了不完全重叠效果。接下来就是实现点击图片让该图片移到最上层,所以用到图片MC的onRelease事件,以第一张图片为例: pic1_mc.onRelease = function() 在这个事件执行中首先确定最上面的图片的深度值。上面介绍了getNextHighestDepth()返回的是最大的深度值加1,那么最大的深度值自然就是getNextHighestDepth()减1了。 var zddepth = _root.getNextHighestDepth()-1; 有了最大的深度值后,就可以确定最上面的图片是哪张了: var zd_mc:MovieClip = _root.getInstanceAtDepth(zddepth); 最后将这张图片与最大深度那张图片交换深度,那这张图片深度值就最大了,当然也就在最上面了: this.swapDepth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版离婚协议书范本:夫妻自愿离婚、财产分配及子女抚养权约定
- 2025年度电力系统防雷接地装置更新换代合同
- 二零二五版全屋定制封阳台施工合同范本
- 2025版货物汽车运输及仓储一体化服务合同
- 二零二五年度钢铁产品定制加工与销售合同
- 二零二五年美陈项目售后服务与保修合同
- 2025版智慧农业公司股权转让及农业产业链合作合同
- 二零二五版个人医疗借款担保服务协议
- 2025年度房地产项目承包居间代理协议
- 二零二五版建筑行业垫资合同示范文本
- GB/T 21534-2008工业用水节水术语
- GB/T 15305.3-2009涂附磨具砂带宽度与长度组合的选择
- GB/T 15036.1-2001实木地板技术条件
- 平安一生无忧年金保险销售篇课件
- 产品退货处理流产品退换货处理流程图
- 2022年青岛市卫生健康系统事业单位招聘笔试试题及答案解析
- 10-1EJT-564-1991核电厂物项包装、运输、装卸、接收、贮存和维护要求
- 工程师职称工作证明模板
- 园林生态学(全套381张课件)
- 水印丝网版画
- 文言文《苏武传》翻译和考点解析
评论
0/150
提交评论