mc电影符号设置深度值的方法
在程序的过程,我们会常换多个mc深度,让它叠在上边。flash给我提供只有:两个mc深度的互换,却没有设置深度值的方法.
本人设计了一个方法,就是可以设置mc深度的排序值。不过前提就是这些mc已级把深度排序好,放在一个数组里。这个没有什么问题。
我们在程序生成的时候,完全可以做到一点。试试吧。
Flash: a 全屏浏览
代码如下:
//电影符号深度从小到大 var arr:Array = [mc4, mc3, mc2, mc1]; //setDepth (mc:要指定深度的电影符号,位置(注:从0开始), 排序数组) function setDepth (mc:MovieClip, num:Number, arr:Array) { //找到设置深度mc的位置 var numI:Number = 0; for (var i = 0; i < arr.length; i++) { if (arr[i] == mc) { numI = i; break; } } //移位并用mc.swapDepths()换深度 if(numI>num){ for(var i=numI;i>0;i--){ trace("i"+i) arr[i].swapDepths(arr[i-1]) var mcTem:MovieClip=arr[i] arr[i]=arr[i-1] arr[i-1]=mcTem } }else if(numI<num){ for(var i=0;i<numI;i++){ arr[i].swapDepths(arr[i+1]) var mcTem:MovieClip=arr[i] arr[i]=arr[i+1] arr[i+1]=mcTem } } } //smallerbird 2008-5-9 //flash原创代码尽在 www.webjx.com
bt1.onRelease = function () { trace(_root.arr) setDepth (_root.mc1, 0, _root.arr); trace(_root.arr) }; bt2.onRelease = function () { setDepth (_root.mc2, 0, _root.arr); }; bt3.onRelease = function () { setDepth (_root.mc3, 0, _root.arr); }; bt4.onRelease = function () { setDepth (_root.mc4, 0, _root.arr); };
|