AS2duplicateMovieClip的理解 flash movieclip

duplicateMovieClip为复制影片剪辑(mc)语句。这个复制语句在ActionScript中应用十分广泛。通过这个语句的使用,我们可以不费吹灰之力就可以复制出足够多的影片剪辑(只要你的资源够的话)。
我们先来看看duplicateMovieClip的位置。
图3.2.36duplicateMovieClip参数面板
它一共有三个参数框,分别是目标,名称,深度。
duplicateMovieClip参数
【目标】就是我们要复制的原始的影片剪辑。例如我们要复制影片剪辑yourname,那么我们就在目标框中填入yourname。
【新名称】就是我们复制出来的影片剪辑的名称,例如:yourname1。
【深度】就是我们复制出来的影片剪辑的层数级别。较高级别的影片剪辑覆盖较低的影片剪辑。此参数应该是唯一的。
下面我们就来实际应用一下duplicateMovieClip语句,看看它能产生什么惊人效果!
1、复制一个影片剪辑
我们要复制一个影片剪辑,就要先创建一个原始的影片剪辑。好!我们运行Flash,建立元件:名称为name,类别为影片剪辑。
创建新元件
我们可以用按钮来实现这一效果,这样更直观一些。我们建立一个按钮,形状随便一些就可以了。把名称为name的影片剪辑和建立的按钮,分别拖放在主场景的两个层中。点击影片剪辑name实例,给它取一个实例名为name。


设置影片剪辑的实例名
然后点击按钮,在Action面板上加入下列语句:
on(release){//当按钮点击时,执行以下语句
duplicateMovieClip(“name”,”name1”,1);//复制名称为name的影片剪辑,复制出来的影片剪辑名称为name1。深度为1
}
这样,我们就得到了一个复制出来的影片剪辑name1。但是,复制出来的mc在原来的mc的上面,看起来的效果不太直观,我们就用以前介绍过的setproperty语句,设定复制的影片剪辑的属性。Set Property(“name1”,_x,350);
完整的Action为:
on(release){
duplicateMovieClip(‘name”,”name1”,1);
setProperty(“name1”,_x,300);//设定影片剪辑name1的x轴上的坐标为300。
}

2、复制多个影片剪辑
在实际应用中,我们很少用到复制一个影片剪辑的情况。那么要复制多个影片剪辑的时候,我们应该怎样设置呢?好,我们来复制四个影片剪辑。与上例相同,首先制作一个名称为name的影片剪辑和一个按钮。分别放在场景中的两个层中。在属性面板中填入影片剪辑名称name。点击按钮加入ActionScript:
on(elease){//当按钮点击时,程序执行下面的语句。
duplicateMovieClip(“name”,”name1”,1);//复制名称为name的mc,名称为name1,深度为1。(下同)
duplicateMovieClip(“name”,”name2”,2);
duplicateMovieClip(“name”,”name3”,3);
AS2duplicateMovieClip的理解 flash movieclip
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);
}
这样,我们复制出了比较多的影片剪辑了。


添加复制影片剪辑命令

但是,这里面存在一个问题。就是,如果我们复制少一些的影片剪辑的时候,这种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。
}
}


设置复制影片剪辑命令

4、利用时间轴
我们可以利用时间轴,制作出复制语句的动态效果。先期准备同上,在这里就不多说了。我们在时间线的第一帧添加Act ion:
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代码,此例就不一一讲述了,完成。

注 意——是用duplicateMovieClip的时候,其【深度】是唯一的。当复制出来的影片剪辑出现在同一层的时候会覆盖掉。
提 示 ——我们在用duplicate的时候,如果你给所复制的mc与原来mc相同的实例名字的时候,那就是说原来的mc要被复制以后的mc所取代。例如:原始mc的名称为name1,那么,用上面的程序作完后,你就看不到原始的mc的影子了。也可以在语句中加入设置属性语句visible,设置原影片剪辑name为不可见。
技 巧——使用变量,我们可以减小书写代码的工作量。在类似的语句块中,我们应该尽量的使用变量来替代规律的变化。

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/300906.html

更多阅读

一年级学生的理解能力差怎么办 一年级知识与能力训练

随着新课标理念的实施,对学生的各方面发展要求也越来越高了,记得以前的数学知识,只需要把计算弄懂就行啦,做的题也就是一些简单的算式计算,对题目的理解要求不高,可是现在拿起一年级的题目来看看——难呀,现在的孩子真不容易,就说一个简单的

食不厌精脍不厌细的理解 食不厌精 烩不厌细

今天读《论语》中“食不厌精,脍不厌细”一段。看了书上的解释,觉得孔子对饮食的要求太高了。又觉得解释似乎并不妥当,于是到网上搜罗,发现对这一段的理解是仁者见仁智者见智。最后还是倾向于下面这篇文章的观点:食物不能只是满足于精细,

2014年高考理解文中重要词语的含义附答案 对mis含义的理解

一、考点解读考试手册针对阅读提出六种三个层次的能力,即认读、理解的能力,分析、综合的能力,鉴赏、评价的能力。其中认读、理解的能力的第一个要求就是“能读懂文章的内容,能结合语言环境理解词句的意义。今天我们来谈谈如何理解文中重

数据库三大范式的理解 数据库三大范式详解

一: 引言作为一个数据库的学习者,搞懂关系数据库的三大范式是很有用的。然而教科书上有关数据库范式的介绍都是采用学术性的定义,语法羞涩,让人难懂,故写下自己对数据库范式的理解,给初学者提供帮助,也备日后查看。本文不介绍规范化程度高

声明:《AS2duplicateMovieClip的理解 flash movieclip》为网友明晨紫月分享!如侵犯到您的合法权益请联系我们删除