当前位置: 首页 > 图文教程 > Flash动画 > ActionScript > mc深度的排序值设置方法

ActionScript
Flash as与影片剪辑的调用
Flash AS2教程:缓冲运动
flash as2的缓动类
FLASH AS教程:ActionScript3简介
Flash AS3教程:编程基础
ActionScript和网页JavaScript互相调用
Flash ActinScript 3.0基础知识
ActionScript 3.0的流程控制语法
ActinScript3.0开发基础知识:可重用代码
Flash自定义函数实例
ActoinScript教程:小数坐标处理
AS教程:鼠标拖拽与旋转MC
Flash AS3基础教程:掌握鼠标事件应用
Flash AS3教程:快速制作烟雾动画
Flash AS代码书写约定和书写习惯
学习Flex:常见的Flex代码
Flex教程:ScriptLimits标签
Flash AS教程:propertydata问题解决
Flash AS3单列模式实现方式
as3中通过ByteArray进行对象的深度拷贝

ActionScript 中的 mc深度的排序值设置方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-16   浏览: 78 ::
收藏到网摘: n/a

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.ruanchen.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);
};