用Flash制作有趣的彩色泡泡动画
这是一个反复随机出现彩色圆点的动画,我们先看看效果实例,接下来我们谈谈实现的原理、所用的重点函数以及具体实现方法,最后提供.fla源文件下载学习。实现原理:利用duplicateMovieClip复制movieclip,用setProperty与random函数所取的随机数决定复制出的movieclip的位置。最后利用new Color,setRGB与random函数来随机决定复制出的movieclip的颜色。
本例重点语句:
random()函数:random在actionscrip中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇妙效果的前提。
语法:
random(value);
参数
value:所生成随机整数的上限
实例
random(4)所返回值可能为0,1,2,3
new color()函数:new color()是一个面向对象color的函数,在使用color对象前必需使用构造器new color()来创建一个color对象
实例。new color()的语法:
new color(target)
参数
target是使用这个颜色方案的电影剪辑
setRGB()函数:setRGB()也是一个面向对象color的函数,它可以为一个颜色对象指定一个RGB值。语法:
xxx.setRGB(0xRRGGBB)
参数0xRRGGBB设置一个16进制的RGB值,RR,GG,BB各为16进制数,用来指定颜色。
实例
xxx.setRGB(0x006699)
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
本例完成步骤:
新建文件,设置文件宽,高均为200,背景色为黑色。
选择菜单insert/new sysmbol建立新的元件sysmbol 1,用圆形工具在ball元件中画一个无边线的圆,任意填充一种颜色。
选择菜单window/panels/info,在弹出的info面板上设置其宽高均为31.0,window/panels/align,在弹出的align面版上使其居中对齐。
选择菜单insert/new sysmbol,建立新的元件sysmbol 2,从library中将sysmbol 1 拖入,在align面板中设置对齐,使其距中,在第15,30帧新建关键帧。单击第1帧,选择菜单window/panels/effect在弹出的effect面板中设alpha=0%。
单击第15帧,将sysmbol 1的宽,高设为71.0。
单击第30帧,window/panels/effect在弹出的effect面板中设alpha=0%。从第1到15帧与第15到30帧分别创建动画。
回到scene 1,将sysmbol 2拖入场景命名为xx,在scene 1中新建一层layer2,在第2帧新建关键帧,双击第2帧,弹action面板,输入如下action:
if (Number(i)>50) {
i = 0;}
///当i>50时令i=0,这样可以使复制的movieclip保持在50个,不会浪费系统资源。
duplicateMovieClip ("/xx", "xx" add i, i);
///将scene1中的xx元件复制为xx add i,即当i=1时复制为xx1,当i=2时复制为xx2......
setProperty ("xx" add i, _x, random(400));
///设置xx add i的x座标,random(400)是因为我们的动画宽为400。
setProperty ("xx" add i, _y, random(400));
///设置xx add i的y座标,random(400)是因为我们的动画高为400。
col = random(0xafafaf)+0x999999;
///随机设置一个颜色值
xzcol = new Color(_root["xx" add i]);
xzcol.setRGB(col);
///定义xx add i的颜色
i = Number(i)+1;
gotoAndPlay (1);
///从scene1的第一帧开始播放,重复以上过程
技巧提示:
我们设立了一个循环,但此循环并不在一帧内完成,而是有一帧的延迟,(从第2帧到第1帧再到第2帧的循环)。这样,我们就能作出movieclip一个接一个出现并永不终止的效果。也才能实现各个movieclip不同时开始播放。怎么样,很简单吧?希望本文能对您熟悉flash的基本操作,了解actionscript语法有所帮助。.fla源文件下载学习
【责任编辑:Shiny】