| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
建站定位及发展策
Flash Remoting -
用Flash MX制作MO
MOMO源码
flashremoting实践
Flash8 Remoting 
使用 Flash Remot
loadMovie作为跨域
unloadMovie反应比
Flash中锚记讲解

讲解Movie Clip Depth(深度)的问题           

讲解Movie Clip Depth(深度)的问题

作者:佚名 来源:不详 更新:2007-1-13 20:37:40 错误报告 我要投稿
  大家对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("mc1 depth:"+mc1.getDepth());
         trace("red depth:"+red.getDepth());

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

           mc1 depth:-16383
           red depth:-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都不会产生.....
嘎嘎,先写到这里吧,这几天喜欢看书了,边看边和大家分享...

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。