用Flash制作漂亮的变幻线
这是一个比较简单的actionscript实例教程,但是效果很不错,发挥一下你的想像力,可以在这个基础上创建更cool的视觉效果。让我们先看看实例,文章末尾提供.fla源文件下载学习。 实现原理:
先做一个有色彩变化的movieclip,再利用duplicateMovieClip复制movieclip,用setProperty决定复制出的movieclip的位置,并用隔一帧执行一次复制以及变量的累加来实现移动效果。
本例重点语法:
duplicatemovieclip,当动画正在播放是复制一个movie clip。复制出的moveclip与被复制的movieclip完全一样,并从第一帧开始播放。
语法:
duplicatemovieclip(target,newname,depth)
参数
target:要复制的movieclip的路径与名称
newname:复制出的movieclip唯一的名称
depth:景深
setProperty,在movieclip播放时设置其属性。
语法:
setProperty(target,property,expression)
参数
target:要设置属性值的movieclip的路径与名称
property:待设置的属性
expression:待设置的属性值
实例
setProperty("xxx",_x,100)
将xxx的x座标设为100
if条件语句,检验条件并决定下一个将要执行的操作。如果条件为真,则执行if{}中的语句,否则不执行。
语法:
if(condition){
statement;
};
参数:
condition:条件表达式,值为真或假。
statement:当执行if语句或检验条件为真的内嵌语句。
本例完成步骤:
新建文件,设置文件宽、高均为300,背景色为黑色。
insert/new sysmbol 建立新的元件sysmbol 1,用方型工具,画一个无边框的红色矩型,window/panels/info 在弹出的info面板上设置其宽为15.0,高为1。
insert/new sysmbol建立新的movie clip元件sysmbol 2,从library中拖拽sysmbol 1到sysmbol 2的layer1层。分别在第10,20,30帧建立关键帧,单击第10帧,window/panels/effect 在弹出的effect面板中设tint color为黄色,单击第20帧,window/panels/effect 在弹出的effect面板中设tint color为浅蓝色,单击第30帧,window/panels/effect在弹出的effect面板中设tint color为深蓝色。
分别在第1/10,10/-20,20/30帧建立动画。
在第50,70帧新建关键帧,单击第70帧,window/panels/effect在弹出的effect面板advaced中设alpha=-100%,从第50帧开始建立动画。回到scene 1,双击第1帧,在弹出的action面板上输入如下actions:
a = 50;
b = 50;
a1 = 250;
b1 = 50;
a2 = 100;
b2 = 100;
i = 1;
j = 101;
这里声明了一些变量并赋初值。
在第2帧建立关键帧,从library中拖拽sysmbol 2到这一帧,命明为xz,双击第2帧,在弹出的action面板上输入如下actions:
if (i<100) {
///i已被设初值为1,1<100,因此将执行以下actions。
duplicateMovieClip ("/xz", "xz" add i, i);
///复制名字为xz的元件为xz add i
setProperty ("xz" add i, _x, a+2);
///设置复制出的xz add i元件的x座标为:a+2
setProperty ("xz" add i, _y, b+2);
///设置复制出的xz add i元件的y座标为:b+2
setProperty ("xz" add i, _rotation, c+5);
///设置复制出的xz add i元件的旋转角度为:c+5
a = getProperty ("xz" add i, _x );
///将xz add i的x座标赋值给变量a
b = getProperty ("xz" add i, _y );
///将xz add i的x座标赋值给变量b
c = getProperty ("xz" add i, _rotation );
///将xz add i的x旋转角度赋值给变量c
}
if (j<200) {
duplicateMovieClip ("/xz", "xz" add j, j);
setProperty ("xz" add j, _x, a1-2);
setProperty ("xz" add j, _y, b1+2);
setProperty ("xz" add j, _rotation, c+5);
a1 = getProperty ("xz" add j, _x );
b1 = getProperty ("xz" add j, _y );
c1 = getProperty ("xz" add j, _rotation );
}
在第3帧建立关键帧,双击第3帧,在弹出的action面板上输入如下actions:
i = Number (i)+1;
j = Number (j)+1;
gotoAndPlay (2);
///完成循环
技巧提示:
我们设立了一个循环,但此循环并不在一帧内完成,而是有一帧的延迟,(从第2帧到第3帧再到第2帧的循环)。这样,我们就能作出movieclip一个接一个出现并永不终止的效果。也才能实现各个movieclip不同时间开始播放。.fla源文件下载学习
【责任编辑:Shiny】