论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

如何使用as复制多个影片剪辑?

文章类别:Flash | 发表日期:2008-9-21 15:03:50

  

如何使用as复制多个影片剪辑?
解决思路
duplicateMovieClip为复制影片剪辑(mc)语句。这个复制语句在ActionScript中应用十分广泛。通过这个语句的使用,我们可以不费吹灰之力就可以复制出足够多的影片剪辑(只要你的资源够的话)。
具体步骤(必须要有)
我们先来看看duplicateMovieClip的参数面板。如图3.2.3-4所示。


图3.2.3-4????duplicateMovieClip参数面板
它一共有三个参数框,分别是目标,名称,深度。
【目标】就是我们要复制的原始的影片剪辑。例如我们要复制影片剪辑yourname,那么我们就在目标框中填入yourname。
【新名称】就是我们复制出来的影片剪辑的名称,例如:yourname1。
【深度】就是我们复制出来的影片剪辑的层数级别。较高级别的影片剪辑覆盖较低的影片剪辑。此参数应该是唯一的。
下面我们就来实际应用一下duplicateMovieClip语句,看看它能产生什么惊人效果!
1,?复制一个影片剪辑
我们要复制一个影片剪辑,就要先创建一个原始的影片剪辑。好!我们打开Flash,建立元件:名称为name,类别为影片剪辑。我们可以用按钮来实现这一效果,这样更直观一些。我们建立一个按钮,外形随便一些就可以了。把名称为name的影片剪辑和建立的按钮,分别拖放在主场景的两个层中。点击影片剪辑name实例,给它取一个分身名为name。然后点击按钮,在Action面板上加入下列语句:
on(release){???????//当按钮点击时,执行以下语句
duplicateMovieClip(“name”,”name1”,1);??//复制名称为name的影片剪辑,复制出来的影片剪辑名称为name1。深度为1
}
这样,我们就得到了一个复制出来的影片剪辑name1。但是,复制出来的mc在原来的mc的上面,看起来的效果不太直观,我们就用以前介绍过的set?property语句,设定复制的影片剪辑的属性。Set?Property(“name1”,_x,300);
完整的Action为:
on(release){
duplicateMovieClip(‘name”,”name1”,1);
setProperty(“name1”,_x,300);//设定影片剪辑name1的x轴上的坐标为300。
}
完成。请参考源文件dup--1.fla


2,复制多个影片剪辑
在实际应用中,我们很少用到复制一个影片剪辑的情况。那么要复制多个影片剪辑的时候,我们应该怎样设置呢?好,我们来复制四个影片剪辑。与上例相同,首先制作一个名称为name的影片剪辑,和一个按钮。分别放在场景中的两个层中。在属性面板中填入影片剪辑名称name。点击按钮加入ActionScript:
on(elease){???//当按钮点击时,程序执行下面的语句。
duplicateMovieClip(“name”,”name1”,1);//复制名称为name的mc,名称为name1,深度为1。(下同)
duplicateMovieClip(“name”,”name2”,2);
duplicateMovieClip(“name”,”name3”,3);
duplicateMovieClip(“name”,”name4”,4);
set?Property(“name1”,_x,150);???//设置name1的x轴坐标为150。(下同)
set?Property(“name2”,_x,250);
set?Property(“name3”,_x,350);
set?Property(“name4”,_x,450);
}
这样,我们复制出了比较多的影片剪辑了。请参见源文件dup--2.fla


但是,这里面存在一个问题。就是,假如我们复制少一些的影片剪辑的时候,这种Action的写法还可以。假如我要复制30个影片剪辑的时候,按照这种写法就比较麻烦了。有没有解决的方法呢?当然有。计算机不是给我们增加负担的,而是给我们提供捷径的。我们可以利用变量来完成。
3,利用变量复制
我们同样做出一个影片剪辑(名称为name)和一个按钮。分别把他们放到主场景中的两个层中。在属性面板中填入影片剪辑的名称name。给场景中的按钮加入Action:
on(release){
i=1;
while(I<30){
duplicateMovieClip(“name”,”name”+I,I);
setProperty(“name”+I,_x,random(550));
setProperty(“name”+I,_y,random(200));
setProperty(“name”+I,_xscale,random(100));
setProperty(“name”+I,_yscale,random(100));
i=i+1;
}
}
解释如下:
on(release){?????????????????????????//当按钮点击时,执行下面的语句。
i=1;?????????????????????????????????//设置变量i等于1。

while(I<30){???//作一个循环语句while,条件是当i小于30的时候,进行下面的语句。
duplicateMovieClip(“name”,”name”+i,i);??//复制名称为name的mc,复制出来的mc名称为name1,name2……..,把复制出来的mc放到不同的深度。
setProperty(“name”+I,_x,random(550));???//设定复制出来的mc的x轴坐标为随机,范围是550。
setProperty(“name”+I,_y,random(200));???//设定复制出来的mc的y轴坐标为随机,范围是200。
setProperty(“name”+I,_xscale,random(100));??//设定复制出来的mc的x轴标尺为随机100
setProperty(“name”+I,_yscale,random(100));?//设定复制出来的mc的y轴标尺为随机100。
i=i+1;????????//变量i等于i加上数值1。
}
}
请参考源文件drag----3.fla


4,?利用时间线
我们可以利用时间线,制作出复制语句的动态效果。先期预备同上,在这里就不多说了。我们在时间线的第一帧添加Action:
i=1;
while(i<20){
???????duplicateMovieClip("name1","name"+i,i);
???????setProperty("name"+i,_x,random(550));
???????setProperty("name"+i,_y,random(150));
???????setProperty("name"+i,_xscale,random(150));
???????setProperty("name"+i,_yscale,random(100));
???????i=i+1;
}
在第十帧插入空白要害帧,并在此帧上添加Action:
gotoAndPlay(1);
关于Action代码,此例就不一一讲述了,完成。参看源文件drag----4.fla


注??意?——是用duplicateMovieClip的时候,其【深度】是唯一的。当复制出来的影片剪辑出现在同一层的时候会覆盖掉。
提??示?——我们在用duplicate的时候,假如你给所复制的mc与原来mc?相同的实例名字的时候,那就是说原来的mc?要被复制以后的mc所取代。例如:原始mc的名称为name1,那么,用上面的程序作完后,你就看不到原始的mc的影子了。
技??巧?——使用变量,我们可以减小书写代码的工作量。在类似的语句块中,我们应该尽量的使用变量来替代规律的变化。
试一试?——在本节中我们只是给复制出来的影片剪辑定义了X轴和Y轴,大家还可以利用上一节学习到的影片剪辑的属性自由制作,例如使用旋转,高度等等。
非凡提示
本例提供的源文件之用作duplicateMovieClip的基础学习。其实利用这个语句还可以制作出非常多的效果,我们将在以后给大家一一介绍。

非凡说明


通过本节的学习,我们基本把握了duplicateMovieClip命令的用法。需要注重的是,复制影片剪辑需要cup不断地进行运算,所以当你复制过多的时候,你的计算机很可能会罢工的。
相关问题
removeMovieClip删除用duplicateMovieClip复制出来的影片剪辑。这两条语句可以添加在帧或者按钮上。

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058