Flash实例制作:彩纸文字贺新年
春节即将到来,我们的flash里自然也要充满喜庆的气氛,下面我们就来学习一种非常喜庆的文字特效的制作方法。我们先看看效果实例。
文字就象一个容器,其中充满了节日欢乐的彩纸碎片,随机漂浮变化,用来渲染喜庆的气氛再合适不过了。
实现原理:
利用duplicateMovieClip复制movieclip,用setProperty与random函数所取的随机数决定复制出的movieclip的位置。利用new Color,setRGB与random函数来随机决定复制出的movieclip的颜色。最后利用mask遮照完成动画。
本例重点语法:
相关函数:random(),new color(),setRGB(),duplicatemovieclip,setProperty,文章最后给出它们的详细语法和用法参考以及源文件下载学习。
本例完成步骤:
一、基本元件的建立:
建立文字元件“Happy New Year”,设置为黄色,命名为“text”,再新建symbol命名为“feng”,用pencil tool随意绘制一个无规则的几何形状(如图2),在第25,50帧建立关键帧,并改变这两帧上的几何图形的大小与位置,用arrow工具改变其形状,最后从第1帧到25帧,第25帧到50帧建立shape动画。
二、as控制部分
新建symbol,命名为“feng movie”,将“feng”拖拽到scene 1,命名为“xx”在第2帧新建关键帧,双击此帧,输入如下actions:
while (i<500) {
duplicateMovieClip ("xx", "xx" add i, i); //复制名字为xx的mc
setProperty ("xx" add i, _xscale, random (80));
setProperty ("xx" add i, _yscale, random (80));//设置复制出的mc的变形,用random设置其变形值在0到80之间
setProperty ("xx" add i, _x, random ( 130));
setProperty ("xx" add i, _y, 5+random ( 40));//设置复制出的mc的位置
col = Random(0xafafaf)+0x999999;
xzcol = new Color("xx" add i);
xzcol.setRGB( col ); //使复制出的mc有随机的颜色
i = i+1;
}
//当i>500时,停止复制mc,也就是说将名字为xx的mc复制了500个,并且每一个都拥有随机的颜色、大小、位置。
stop ();
在library中双击feng元件,开始对其进行编辑,双击其第50帧,输入如下as:
gotoAndPlay (random ( 40));
//当此mc播放一次后,会随机的从第1帧到第40帧之间的任意一帧开始播放。
三、最后组装
回到scene1,将“text”元件拖拽到layer 1,再新建两层,分别拖拽“feng movie"与“text”到layer2,layer3。注意将layer 1中的文字与layer3中的文字对齐,右键单击layer3, 选择mask。好!到此为止,我们完成了文字特效的制作,你可以预览一下效果,再进行一些细致的调整。
四、重点说明
大家可以发现,本例中所用到的都是最基本的as命令,但是效果却非常的好,因此要提醒大家,并不是要深奥的技术才能做出漂亮的效果,重要的是你的思维方法,你的创造力,你应用技术的能力。在本例中重点不在于如何作出随机的彩色碎片,而在于利用文字对as效果遮照而产生的精彩画面。希望大家能好好掌握。
附:相关函数语法说明:
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
本例源代码下载:
(本文原发于《大众网络报》,经作者同意发表于此。)