快速业务通道

as进阶---影片剪辑深度交换函数的实现

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-12


<序:好长时间没有写教程了,做网站太累了,写个教程换换气> 由于做的网站有一些应用要用到模仿窗口的深度交换,所以才进行了一些研究, 也可以通过本教程学习或复习一下数组的初级和中级应用。 Flash MX 2004也提供了几种用于深度交换的 函数,如 MovieClip.getNextHighestDepth(), MovieClip.getDepth(), MovieClip.swapDepths()等等 但是要对于一定区间深度的深度交换getNextHighestDepth函数可能就不太好用了。 例如要影片剪辑的深度有范围限制, 像下面描述的例子:(均为影片剪辑) a1_mc,a2_mc,a3_mc.......a100_mc 深度:1,2,3,....100 b1_mc,b2_mc,b3_mc.......b100_mc 深度:101,102,103,....200 c1_mc,c2_mc,c3_mc.......c100_mc 深度:201,202,203,....300 现在要对b系列的进行频繁的深度交换,但是不能超出101~199这个深度范围,如果用getNextHighestDepth可能就会 干涉到c系列的深度值。 即使影片剪辑中包含有输入文本等东东,本例点击后也会触发交换函数而进行深度交换。 原理:当MOUSE在一些层叠的影片上点击时,利用hitTest()函数进行捕获这些层叠的影片, 再对这些影片进行深度排序, 得到其中的最大的深度的影片,因为深度大就在上面,盖往了深度小的, 所以这个深度最大的将成为所有(也有这些层叠之外的)的影片中深度最大的。 例如:(下面均是影片和其深度) m1,m2,m3,m4,m5,m6 4, 1, 3, 5, 2, 6 可以知道m6是在最上面的。现在我点了一下m3,所以m3就应该是6,而m6就应当是第二深的,为5 深度3之前的(m2,m5)都不动,其它的要重新排列 排后如下: m1,m2,m3,m4,m5,m6 3, 1, 6, 4, 2, 5 这样就保持了原来的(除m3)深度顺序,如m6要在m4,m1,m5,m2之上。要是直接用 MovieClip.getNextHighestDepth()和MovieClip.swapDepths()来实现 m6就要在m1,m4的下面了,正常来说是不正确的 下面我们就来做这个交换函数吧 效果:
点击浏览该文件
http://www.flash8.net/bbs/UploadFile/2005-1/2005130187855.swf 怎么样,是不是有点心动了 先建立一个550*400的swap.fla的影片,背景任意,帧速最好选为40,如下图: 按此在新窗口浏览图片 拖一个按钮组件入主场景,用于产生新窗口的点击事件,如下图:
按此在新窗口浏览图片 属性如下: 按此在新窗口浏览图片 在按钮上加入下面的动作,如图: 按此在新窗口浏览图片 有人会问createWin()是什么,其实她就是以后要用到的窗口生成函数,这里为了方便,就先把按钮上的工作都 做完了,以后就不用再管按钮啦。 接下来就要构建主要部件了: 按Ctrl+F8新建一个影片剪辑,命名为win,如下图: 按此在新窗口浏览图片 先建立一个足够大的矩形,做为窗口的背景,再在上面新加入文本输入和输出区,还有一个小的关闭按钮(一会儿 我们一起做),如下图: 按此在新窗口浏览图片 文本输出区的属性如下: 按此在新窗口浏览图片 对于矩形,我们按F8,把她封装,属性如下(*注意要选Button*): 按此在新窗口浏览图片 属性如下: 按此在新窗口浏览图片 并在上面加入如下代码: on (press) {
startDrag(this);
}
on (release) {
this.stopDrag();
}
//
接下来我们就开始做关闭按钮:按Ctrl+F8新建一个剪辑,命名为close_btn,如下图: 按此在新窗口浏览图片 做成如下图所示的就可以啦,想怎么做

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号