本教程向朋友们介绍使用FLASH制作数码天地特效。教程比较简单,涉及AS代码,但是很实用。希望对大家有帮助!
一、算法分析
每个数的轨迹是一条曲线,曲线的方程是x=sin(i)。其实就是把普通的正弦曲线旋转90度,把原来的Y坐标转换成X坐标。num的x坐标表示如下:num。_x=Math.sin(i)。复制功能会复制多个数字。为了使每个数字的轨迹不同,数字的X坐标乘以一个随机值X,表达式如下:num。_x=x*Math.sin(i)。数字的y坐标也取随机值y,表示如下:num。_ y-=y。这样,数字从坐标原点沿曲线向上移动。为了使数字向不同方向移动,将X坐标乘以-1或1的随机值C,表达式如下:num。_x=c*a*Math.sin(i)。
二、生产流程
1.打开flashMX2004,新建一个400px*200px的文档,背景为白色,帧速率为12fps。
2.按CTRL+F8键创建一个新的MC。在这个MC中,创建一个动态文本,字体大小为18,字体为Impact,颜色为#339900,变量名为myNum。创建一个新层,并输入以下内容:
复制代码
代码如下:
myNum=random(10);
并插入一帧,让它循环,这样动态文本就可以显示从0到9的随机数。
3.返回主场景,按CTRL+L打开库,从库中拖出带有随机数的MC,将实例名设置为num,并在此MC上输入以下内容
复制代码
代码如下:
onClipEvent(加载){
var n=0;//拷贝的电影数量
var I=0;//弧度
var x=random(150)1;//曲线的宽度是随机的
var y=random(5)1;//MC的y坐标递减
var c=Math.pow(-1,random(2));//-1的0或1次方,即随机的1或-1值
}
onClipEvent (enterFrame) {
if (_name!='num') {
_ x=x * c * math . sin(I=0.1)200;
_ y-=y;//设置数字的坐标。起始x坐标为200,y坐标与num相同。
如果(_y0) {
this . removemovieclip();//如果超出场景,删除MC
}
}否则{
n=(n50)?0:n ^ 1;//将MC的数量限制为50
this.duplicateMovieClip('num' n,n);//复制MC
MC=_ parent[' num ' n];//获取MC的实例名
mc。_xscale=mc。_ y scale=random(80)10;//MC的大小是随机的
}
}
4.新建一个图层,按CTRL R导入位图,CTRL B打散位图,选择位图中间的石头,按F8转换成MC,实例名为bg。并在框架中输入。
复制代码
代码如下:
BG . swapdepths(100);
将这个MC的深度设置为100,让数字仿佛不断从石头底部弹出,形成一种虚幻的效果。