mc深度的排序值设置办法

更新时间:15-11-02 22:21 热度:1075
 

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原创代码尽在
变态1.onrelease = function ()
{
trace(_root.arr)
setdepth (_root.mc1, 0, _root.arr);
trace(_root.arr)
};
变态2.onrelease = function ()
{
setdepth (_root.mc2, 0, _root.arr);
};
变态3.onrelease = function ()
{
setdepth (_root.mc3, 0, _root.arr);
};
变态4.onrelease = function ()
{
setdepth (_root.mc4, 0, _root.arr);
};