路径及深度交换 |
| 作者:佚名 来源:不详 更新:2007-1-13 20:48:59 错误报告 我要投稿 |
点击浏览该文件
[全屏欣赏]
[全屏欣赏]
[全屏欣赏]
[全屏欣赏]
一点补充。
在看本帖以前,确信你已经掌握以下知识点。 _root是指当前影片剪辑所在的根影片时间轴。//为什么这么说?看下面就知道了。 _parent是指相对于当前影片剪辑或对象的前一时间轴。 _level是指相对于根影片时间轴的级别。 默认的根影片时间轴的级别为_level0; 越往上,级别越大,在舞台中所处的位置离我们越近。 在同一级别中,新的电影剪辑会覆盖原来的电影剪辑。 //这个是特别要注意的地方,就是_root和_level0并不是绝对相同的。 _level0所指的就是根电影时间轴,永远都不会变化,是绝对的路径。 而_root则是一个相对于_level的相对路径,这也是我刚刚学到的,请大家注意一下。 比如说,我们在_level1里面有一个mc,我们求路径的时候,会发现返回值也可以是_root.mc,但实际上他的绝对路径为_level1.mc. 绝对路径是在任何时候任何地方都可以使用的,而且总是相对于根时间轴而言的。 相对路径的使用则要注意影片或对象所在的位置。 比如说: 在主场景中有一个电影剪辑,实例名称为mc,在电影剪辑中又有一个文本变量x. 那么文本变量的绝对路径就是:_root.mc.x; 相对路径则为:_parent.x;
[全屏欣赏]
[全屏欣赏]
点击浏览该文件 这是导入后的效果。 [全屏欣赏]
以上实例通过点击按钮可以看到最终的效果。 如果有不清楚的可以留言,请继续关注。 我们来看另外一个例子。是关于swap depths. 首先看一下帮助中的例子。 MovieClip.swapDepths
可用性 Flash Player 5。 用法 myMovieClip.swapDepths(depth) myMovieClip.swapDepths(target) 参数 target 其深度将被 myMovieClip 中指定的实例交换的影片剪辑实例。两个实例必须具有相同的父级影片剪辑。 depth 一个数字,指定 MovieClip 将被放置的深度级别。
说明 方法;交换影片的堆栈 (stacking) 或 z 顺序(深度级别),这些影片分别是指定实例 (MovieClip) 和由 target 参数指定的影片或者当前占据着 depth 参数中指定深度级别的影片。两个影片必须具有相同的父级影片剪辑。交换影片剪辑的深度级别的作用是将一个影片移到另一个影片的前面或后面。如果调用该方法时影片正在过渡,则过渡会停止。
[全屏欣赏]
在做第二个例子之前,我们先回顾一个知识点。 就是startdrag()和stopdrag(),你一定对它不陌生吧,你知道吗?这两个语法同样可以用在电影剪辑上,用法和在按钮上是一样的,如果你已经了解,就让我们来做第二个例子。如果你不了解,请看一个简单的例子。
[全屏欣赏] 下面我们来做一个比较复杂的例子: 首先在主场景中创建你的电影剪辑,充分发挥你的想象力和创造力吧! 最后从库中拖动你想要的个数到场景中。在我的例子中是拖了四个。 实例名称分别为mc0,mc1,mc2,mc3. 在这里我们试着做一个交换电影剪辑深度的例子,我们把as直接加到电影剪辑上试一下。 先看一下效果。电影剪辑可以拖动并且可以互相交换深度。
[全屏欣赏] 看一下主要的as: 1.在主场景的第一帧添加: _level0.highest=3; //这是我们要调用的最大值,因为我们前面设定了mc0~mc3. 2.在每一个电影剪辑本身添加: on(press){ this.swapDepths("_level0.mc"+_level0.highest);//交换深度 _level0.highest=substring(_name,3,1);//提取电影剪辑实例名称字符串的第三个。 startDrag(this);//开始拖拽 } on(release){ stopdrag(); }//停止拖拽
/*应该不难理解吧!后面我们将介绍一下有关提取字符串的知识。 下面这是一个导入以后可以交换深度的例子,因为它并没有什么复杂的地方,只是把交换深度的as写在要导入的电影中,在主影片中的第一帧写_level0.highest=1;//这儿为什么是一而不是三需要高手的解答。在写上导入的as就可以了。 具体的请看下面的原文件。 希望能对闪吧的朋友有所帮助。
点击浏览该文件 这是一个复制以后可以交换深度的例子,先看一下效果,如果认为好,你继续看下面的教程,如果你已经会了,去看别的帖子吧,毕竟每个人的时间都很宝贵! duplicateMovieClip 可用性 Flash Player 4。 用法 duplicateMovieClip(target, newname, depth) 参数 target 要复制的影片剪辑的目标路径。 newname 复制的影片剪辑的唯一标识符。 depth 复制的影片剪辑的唯一深度级别。深度级别是复制的影片剪辑的堆叠顺序。这种堆叠顺序很像时间轴中图层的堆叠顺序;较低深度级别的影片剪辑隐藏在较高堆叠顺序的剪辑之下。必须为每个复制的影片剪辑分配一个唯一的深度级别,以防止它替换现有深度上的影片。 返回 无。 说明 动作;当影片正在播放时,创建一个影片剪辑的实例。无论播放头在原始影片剪辑(或“父级”)中处于什么位置,复制的影片剪辑的播放头始终从第一帧开始。父影片剪辑中的变量不拷贝到复制的影片剪辑中。如果删除父影片剪辑,则复制的影片剪辑也被删除。使用 removeMovieClip 动作或方法可以删除由 duplicateMovieClip 创建的影片剪辑实例。 示例 该语句复制影片剪辑实例 flower 十次。变量 i 用于为每个复制的影片剪辑创建新实例名和唯一的深度。 on (release) { amount = 10; while (amount>0) { duplicateMovieClip (_root.flower, "mc"+i, i); setProperty ("mc"+i, _x, random(275)); setProperty ("mc"+i, _y, random(275)); setProperty ("mc"+i, _alpha, random(275)); setProperty ("mc"+i, _xscale, random(50)); setProperty ("mc"+i, _yscale, random(50)); i++; amount--; } }
removeMovieClip 可用性 Flash Player 4。 用法 removeMovieClip(target) 参数 target 用 duplicateMovieClip 创建的影片剪辑实例的目标路径,或者用 MovieClip 对象的 attachMovie 或 duplicateMovieClip 方法创建的影片剪辑的实例名。 返回 无。 说明 动作;删除用 MovieClip 对象的 attachMovie 或 duplicateMovieClip 方法创建的,或者用 duplicateMovieClip 动作创建的影片剪辑实例。
[全屏欣赏] 把原文件传上来,有兴趣的先研究一下,有时间的话我会写一下方法的。
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |