FlashAS学习:讲解MovieClipDepth(深度)的问题

2008-04-02 11:02:29来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  大家对duplicateMovieClip()应该不会陌生吧,他用来复制MC。duplicateMovieClip()有个参数----Depth,他就是用来控制新复制出来的MC的深度,数字越大,代表越顶层。

   举个例子:

   舞台上有1个MC1,在帧上写

   mc1.duplicateMovieClip("mc2",2);

   mc1.duplicateMovieClip("mc3",20);

   再加上这几句,为了让复制出来的MC2 MC3不重叠在一起

  mc2._x = 25;

   mc3._x = 50;

   mc2._y = 50;

   mc3._y = 100;

  如下图:mc3在mc2上,mc2在mc1上

  

  


  下面讲一下决定Depth的数字

  新手可能面对过这种问题,根据图层的位置,原本的MC是被其他图像覆盖着的,但新复制出来的MC总是覆盖着时间轴任何图层上的任何图像。无论Depth的数字有多小,甚至是负数,新复制出来的MC总是在时间轴任何图层上的任何图像之上,如下图:

  


  

  


  

  


  红色MC覆盖了蓝色上新复制出来的MC的Depth是负数


  

  新复制出来的仍然覆盖在红色之上

  Flash深度共分为3个区域:

  ● 时间轴区(-16384~-1)

  主要用于放置Flash IDE编辑时的图象、MC等,此区域的MC不能够用AS删除,但 能够用AS动态创建MC到这里。

  ● 动态区(0~1048575)

   允许执行时用AS动态创建或删除MC。

  ● 保留区(1048576~2130690045)

  允许执行时用AS动态创建MC,但创建后不能够删除。超出2130690045这个深度的MC是无法用duplicateMovieClip()或attachMovie()创建的。

   由于时间轴区和保留区里的MC都不能够动态删除,如要删除,能够先用swapDepths()交换到动态区才删除。

  ★ 控制MC深度的方法

   有3种方法使新复制出来的MC在红色之下。

   1)Flash6支持一个getDepth()的指令,能够知道MC的Depth,先将红色的MC命名为red,蓝色的命名mc1 ,在帧上写:

  
trace("mc1depth:" mc1.getDepth());

  trace("reddepth:" red.getDepth());


  按CTRL 回车测试影片,结果她们的Depth原来是:

  
mc1depth:-16383

  reddepth:-16380


  现在知道了就好办了,只要duplicateMovieClip()时Depth设定在-16383~-16380间就能够让新复制出来的MC放在红色之下了,比如这么写:

  
mc1.duplicateMovieClip("mc2",-16382);

  mc1.duplicateMovieClip("mc3",-16381);


  测试结果:

  

   新复制出来的MC在红色的MC下了。。。。。

   假如将Depth设定得很小,新复制出来的MC是否能够在任何图像之下呢?这又不是,因为-1638* 是flash中Depth支持的最低数字,低过他的MC是不可能存在的,例如:

  
mc1.duplicateMovieClip("mc2",-20000);

  mc1.duplicateMovieClip("mc3",-30000);


  两个新的MC都不会产生.....

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: Flash制作夜色雨水滴溅和涟漪动画

下一篇: Flash中关于过场的一些想法和简单的教程