Flash as入门(10):影片剪辑的深度(3)

http://www.itjxue.com  2015-07-17 23:38  来源:未知  点击次数: 

代码分析:

首先用一个for循环,将库中的图片加载到舞台上,循环次数是你的图片元件的数量,下面i<6中的6用你的图片元件数量加1替换。我这里是5张图片,所以我用6。

for(i=1;i<6;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.swapDepths(zd_mc);
第一张图片的点击动作代码就完成了。下面写第二张图片的代码,因为每张图片点击事件中的代码是完全一样的,所以复制第一张图片的代码,粘帖到第一张图片代码的下面,将第一句pic1_mc.onRelease = function(){中的pic1改为pic2,就行了。

以后的以此类推,直到完成所有的图片的点击代码。

(责任编辑:IT教学网)

更多

推荐Flash actionscript文章