收藏本站
 
设为主页
     您的位置:首页资源库动画制作Flash教程
== 资 源 搜 索 ==
 
高级搜索
== 学 习 资 源 ==
操 作 系 统
Windows DOS
Linux Unix
Novell OS/2
办 公 软 件
Word Excel
Access Powerpoint
Outlook Wps
媒 体 处 理
网页制作 动画制作
图片处理 视频处理
媒体播放 音频处理
课件制作 其它……
网 络 工 具
网页浏览 下载工具
FTP 工具 邮件工具
网络安全 服 务 器
联络聊天 其它……
工 具 软 件
压缩工具 系统工具
文件工具 磁盘工具
病毒防治 阅读工具
测试工具 程序设计
== 素 材 资 源 ==
GIF动画 Flash动画
按钮图库 图标图库
线条图库 背景图库
创意图库 音频素材
== 教 程 下 载 ==
 
Flash制作水波效果

作者:pcking / 5D多媒体

 

先看看效果实例:





实现原理:
本例只有两moviclip,一个是单独水波,一个是连串的水波运动。利用duplicateMovieClip复制单独水波movieclip,用while决定复制
movieclip的个数,setProperty与random函数所取的随机数决定复制出的单独水波movieclip的位置。最后同样用setProperty与random函数
来随机决定单独水波随机播放。用同样的方法可以完成连串的水波运动的随机播放。

本例重点语法:
random()函数:random在actionscrip中是一个应用相当广的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们
可以解决随机显示,随机移动等一系列的效果。是复杂动画的基础,对random函数的灵活应用,是我们解决很多实际问题,创造奇
妙效果的前提。我们来看看它的语法:
random(value);
参数
value:所生成随机整数的上限
实例
random(4)所返回值可能为0,1,2,3

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

telltarget
语法:
telltarget(target);{
statement;
}
target:指定时间轴线的目标路径字符串
statement:目标时间轴线代码

本例完成步骤:

新建文件,设置文件宽,高均为100,背景色为黑色。insert---new sysmbol建立新的元件wave,用圆形工具在ball元件中画一个无填充色
的圆,window---panels---info在弹出的info面板上设置其宽高均为3.0,window---panels---align在弹出的align面版上使其距中对齐。
modify---shape---convert lines to fills将线条转换成色块填充。颜料桶工具,选择白---黑色的射线渐变,transform tool调整填充的
角度和范围,如图所示:

insert---new sysmbol建立新的元件wave movie,在第1帧建立关键帧,双击第1帧,在弹出的action面板中加入stop()。在第2帧建立关键帧。
从library中拖拽wave元件到这一帧。在第30帧新建关键帧,window---panels---info在弹出的info面板上设置其宽高均为24,window---
panels---effect在弹出的effect面板中设alpha=0%,建立动画。

insert---new sysmbol建立新的按钮元件button,在其hit帧上建立一个10*10的方型色块填充。切换到wave movie,新建一层layer2,从
library中拖拽button元件到这一层,并在button上加入如下action:
on (rollOver) {
gotoAndPlay (2);
}

insert---new sysmbol建立新的元件wave movie 2,从library中拖拽wave元件到这一层,window---panels---align在弹出的align面版上使
其距中对齐。在第50帧新建关键帧,window---panels---info在弹出的info面板上设置其宽高均为45,window---panels---effect在弹出的
effect面板中设alpha=0%,建立动画。双击第50帧,在弹出的action面板中输入stop()。
insert---new sysmbol建立新的元件wave movie 3,从library中拖拽wave movie 2元件到第一帧,window---panels---align在弹出的align面版上使
其距中对齐,在第105帧建立关键帧,双击,在弹出的action面板上加入stop()。新建第2,3,4....13层,每层的起始帧均相差5,即第2层从第5帧,第3层从底10帧.....
第13层从第55帧开始,分别将wave movie 2拖拽到这些层中。

insert---new sysmbol建立新元件text,用text工具输入你想要的文字,我当然就写上大名pc-king.

回到scene 1,拖拽text到第1帧,调整好位置,insert frames 到第40帧.

新建一层layer2,拖拽wave movie到第1帧,并命名为wave,双击第1帧,输入如actions:


i = -1;
xx = 0;
///设置初值
while (xx<100) {
///当xx<100时,执行以下语句
yy = 0;
///设置初值
while (yy<100) {
///当xx<100时,执行以下语句
i = i+1;
///i的计次
duplicateMovieClip ("/wave", "wave" add i, i);
///复制wave为wave add i,即当i=1时为wave1,i=2时为wave2....
setProperty ("wave" add i, _x, xx);
///设置复制出的movieclip的x座标
setProperty ("wave" add i, _y, yy);
///设置复制出的movieclip的y座标
yy = Number (yy)+5;
}
xx = Number (xx)+5;}
///这段action的作用实际是使wave这个movieclip被复制,并且一个接一个的平铺满整个movie,由于wave中有按钮响应鼠标动作,可
以实现鼠标到哪里,哪里就有水波出现的效果.

在layer2的第10,20,30帧建立关键帧,分别输入如下action:


tellTarget ("/wave" add random (400)) {
gotoAndPlay (2);
}
///随机播放400个复制出的movieclip中的一个
tellTarget ("/wave" add random (400)) {
gotoAndPlay (2);}
tellTarget ("/wave" add random (400)) {
gotoAndPlay (2);
}
///这段action的作用是每次随机播放400个复制出的movieclip中的三个

新建一层layer3,在第40帧建立关键帧,拖拽wave movie 3元件到这一帧,命名为xz,双击第40帧,输入如下action:


if (i>8) {
i = 0;
}
///使复制的movieclip控制在8个以内
duplicateMovieClip ("/xz", "xz" add i, i);
///复制xz为xz add i,即当i=1时为xz1,i=2时为xz2....
xzx1 = random (100)+10;
xzy1 = random (100)+10;
///设定初值
setProperty ("xz" add i, _x, xzx1);
///设置复制出的movieclip的x座标
setProperty ("xz" add i, _y, xzy1);
///设置复制出的movieclip的y座标
i = Number (i)+1;
gotoAndPlay (2);
///完成循环

技巧提示:
本例对于actionscript的初学者来说可能会有些困难,在学习教程时应当注意到每一次操作,每一句action会对作品的完成产生什么样的
影响,多想一想,就会有提高的。

希望本文能对您熟悉flash的基本操作,了解actionscript语法有所帮助。尤于本人水平有限,如有疏漏之处,请与pc-king@21cn.com联系。

[上一页] [下一页]

 

Copyright © 2001-2002 东莞中学信息技术科 All Rights Reserved
IE4.0 or later / 800*600  For The Best View