复制影片剪辑duplicateMovieClip
duplicateMovieClip的作用
使用duplicateMovieClip命令可以动态地复制影片剪辑,从而制作出一些复杂的特效。如要实现下雨、下雪等效果,如果手动地向场景中添加众多的影片剪辑,是很麻烦的事情;使用duplicateMovieClip命令即可用少量的脚本实现这些复杂的效果,达到事半功倍的目的。
表达式中参数的含义
duplicateMovieClip命令的使用方法如下:
duplicateMovieClip(instanseName, newName, depth);
或者:
instanseName.duplicateMovieClip(newName, depth);
其中的参数instanseName、newName都是字符串,参数depth是一个正整数,也可以是一个代表正整数的变量。该命令复制场景中的影片剪辑实例instanseName,将复制得到的影片剪辑命名为newName,并将复制得到的新影片剪辑置于深度级别(level)depth。
深度级别的概念与图层的概念相似,但又有很大的区别。深度级别高的影片剪辑相当于位于上面的图层。同一个深度级别中只能放置1个影片剪辑,当将新的影片剪辑放置在与旧影片剪辑的同一深度时,旧影片剪辑将被新影片剪辑取代。
由于使用duplicateMovieClip命令可以需要复制许多影片剪辑,所以通常将深度级别设为变量,每复制得到一个新影片剪辑,即将该变量的值加1,这样就可避免旧影片剪辑被新影片剪辑取代的情况。
duplicateMovieClip语句的示例
如图1所示是运用duplicateMovieClip语句动态地复制影片剪辑制作的一个鼠标跟随特效。

图1
该动画的制作步骤如下:
(1)按Ctrl+F8键,打开Create New Symbol对话框。
(2)在对话框中进行如图2所示的设置,单击OK按钮,进入图形元件star_gra的编辑场景。

图2
(3)选择椭圆工具,将笔触颜色设为无色,填充颜色设为红色,在场景中绘制一个15×15的圆形,按Ctrl+G键将其组合,然后将其对齐场景中心。
(4)按Shift+F9键打开Color Mixer对话框,选择Radial颜色模式,将左右滑块中的颜色分别设为如图3和8-4所示。

图3

图4
(5)使用椭圆工具分别绘制一个50×5和5×50的椭圆,分别按Ctrl+G键将其组合,然后对齐场景中心。
(6)在“混色器”面板中将如图3和8-4所示的橙色改成黄色,将其设置成黄色透明渐变,然后使用椭圆工具绘制一个30×30的圆,按Ctrl+G键将其组合,然后对齐场景中心,如图5所示。
图5
(7)选中所有组对象,按Ctrl+G键将其组合,如图6所示。

图6
(8)按Ctrl+F8键新建一个影片剪辑元件,并命名为star,进入其编辑场景。
(9)将图形元件star_gra拖到元件star的编辑场景中,并对齐场景中心。
(10)选中时间轴中的第1帧,在“属性”面板Tween后的下拉列表框中选择Motion选项,如图7所示。

图7
(11)选中第10帧,按F6键插入关键帧。
(12)选中第10帧中的图形元件,在“属性”面板中将其缩小为1×1,并保持与中心对齐,在Color后的下拉列表框中选择Alpha,将透明度的值设为0%,如图8所示。

图8
(13)选中第10帧,按F9键打开其“动作”面板,在其中添加如下语句:
stop();
添加语句后的时间轴如图9所示。

图9
(14)单击时间轴顶部的图标回到主场景。
(15)从“库”面板中将影片剪辑元件star拖到场景中的灰色区域,使其在动画播放时不可见。
(16)选中场景中的影片剪辑star,打开其“属性”面板,在文本框中输入star,作为其实例名称,如图10所示。
图10
(17)按Ctrl+F8键新建一个影片剪辑元件empty,不对其进行任何操作,回到主场景。
(18)将影片剪辑元件empty拖到场景中的灰色区域,此时只能看到该影片剪辑为 状。
(19)选中场景中的影片剪辑empty,按F9键打开其“动作”面板,此时“动作”面板的标题栏显示“Actions-Movie Clip”。在其中添加如下脚本:
onClipEvent (load) {
_root.i = 1;
}
onClipEvent (mouseMove) {
duplicateMovieClip(_root.star, "star"+_root.i, _root.i);
_root["star"+_root.i]._x = _root._xmouse;
_root["star"+_root.i]._y = _root._ymouse;
_root.i++;
if (_root.i == 50) {
_root.i = 1;
}
}
添加脚本后的“动作”面板如图11所示。

图11
(20)将背景颜色设为黑色,按Ctrl+Enter键测试动画,效果如图12所示。

图12
在上面的脚本中,_root是指主时间轴,_root.star就是指主场景中的影片剪辑star。_root.i是一个变量,用于记录影片剪辑的深度级别。
_x和_y分别是指影片剪辑的横坐标和纵坐标,在复制影片剪辑后,复制的影片剪辑与原影片剪辑的坐标位置相同,所以需要重新为其指定位置。_root._xmouse和_root._ymouse分别是指鼠标光标相对于主场景的坐标位置。这里将鼠标光标的位置赋给复制出的影片剪辑,从而实现了鼠标跟随效果。
onClipEvent是影片剪辑特有的事件处理函数,这是为影片剪辑添加的脚本中特有的。在“动作”面板的脚本编辑窗口中输入onClipEvent(后,将会看到如图13所示的提示。

图13
根据提示即可选择相应的影片剪辑事件。当对应的影片剪辑事件发生时,即会执行预先定义的函数。
在本例中用到的影片剪辑事件是load和mouseMove,load是在动画的载入事件,mouseMove是指鼠标移动的事件。
点击浏览该文件
点击浏览该文件
附加影片剪辑attachMovie
attachMovie的作用
attachMovie的作用与duplicateMovieClip类似。但是使用duplicateMovieClip命令时需要先将影片剪辑添加到场景中,并为其指定实例名称。使用attachMovie命令不需要预先将影片剪辑添加到场景中,但是需要在“库”面板中为要附加到场景中的影片剪辑定义链接。
表达式中参数的含义
attachMovie的使用方法如下:
mcName.attachMovie(linkName, newName, depth);
其中,mcName是要将影片剪辑附加到的影片剪辑对象名称。如果mcName是_root,则是将影片剪辑附加到主场景中。linkName是用于附加的影片剪辑在“库”面板中的链接标识符,newName是附加的影片剪辑的新名称,depth是影片剪辑的深度级别。
attachMovie语句的示例
使用attachMovie可以实现与duplicateMovieClip相同的效果。如图14所示是使用attachMovie语句制作的鼠标跟随效果。

图14
在该动画中,元件的制作方法与duplicateMovieClip.fla中相同,只需要将空影片剪辑元件empty添加到场景中,而不需要将元件star添加到场景中。下面介绍操作步骤中不同的部分。
(1)单击“库”面板右侧的按钮,将“库”面板展开成宽库视图,如图15所示。

图15
(2)在影片剪辑元件star上单击鼠标右键,在弹出的快捷菜单中选择Linkage(链接)命令,打开Linkage Properties(链接属性)对话框。
(3)在“链接属性”对话框中选择复选框,如图16所示。

图16
(4)Identifier(标识符)后面的文本框中默认的名称与元件名称相同,使用默认标识符star,单击OK按钮,添加的链接如图17所示。

图17
(5)在主场景中选中添加的元件empty,在其“动作”面板中添加如下脚本:
| onClipEvent (load) {
_root.i = 1;
}
onClipEvent (mouseMove) {
_root.attachMovie("star", "star"+_root.i, _root.i);
_root["star"+_root.i]._x = _root._xmouse;
_root["star"+_root.i]._y = _root._ymouse;
_root.i++;
if (_root.i == 50) {
_root.i = 1;
}
}
|
添加脚本后的“动作”面板如图18所示。
图18
(6)按Ctrl+Enter键测试动画,效果如图19所示。

图19
点击浏览该文件
点击浏览该文件
删除影片剪辑removeMovieClip
removeMovieClip的作用
使用duplicateMovieClip和attachMovieClip命令可以动态地复制影片剪辑,使用removeMovieClip命令即可以动态地删除影片剪辑。
表达式中参数的含义
removeMovieClip命令的使用方法如下:
mcName.removeMovieClip();
或:
removeMovieClip(target);
第1种方法在要删除的影片剪辑后面使用removeMovieClip命令,不需要使用参数;第2种方法在removeMovieClip命令的参数中指定要删除的影片剪辑。
removeMovieClip语句的示例
使用removeMovieClip命令动态删除影片剪辑的示例如图20所示。每使用鼠标在动画窗口中单击一次,即可添加一个影片剪辑;每按一下空格键,可以删除一个影片剪辑;当按Enter键时将删除所有的影片剪辑。

图20
该动画的制作步骤如下:
(1)选择File→Import→Open External Library菜单命令,在打开的Open as Library对话框中找到attachMovie.fla,单击打开按钮将其作为库打开。打开的外部库如图21所示。