本教程是向武林網的朋友介紹利用FLASH制作數字天地特效,教程比較簡單,里面涉及到了AS代碼,不過實用性很強,推薦過來,希望對大家有所幫助!
一、算法分析
每個數字的運動軌跡是如圖2的曲線,曲線的方程為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。新建一層,輸入下列AS:
myNum=random(10);
并插入一幀,讓其循環,這樣動態文本就能顯示從0到9的隨機數字。如圖3所示
3、返回主場景,按CTRL+L打開庫,從庫中拖出隨機數字的MC,實例名設為num,在此MC上輸入下列AS
onClipEvent (load) {
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相同。
if (_y<0) {
this.removeMovieClip();//如果超出場景,刪除MC
}
} else {
n = (n>50) ? 0 : n+1;//限定MC的數目為50
this.duplicateMovieClip("num"+n, n);//復制MC
mc = _parent["num"+n];//獲得MC的實例名
mc._xscale = mc._yscale=random(80)+10;//MC的大小隨機
}
}
4、新建一層,按CTRL+R導入位圖,按CTRL+B打散位圖,選取位圖中間的在石塊,按F8轉換為MC,實例名為bg。并在幀中輸入
bg.swapDepths(100);
把此MC的深度設為100,這樣數字就好像從石塊底部不斷冒出,形成虛幻的效果。
本例的視覺沖擊力極強,如果加到你的網頁中,會使大家對你的網頁的專業性刮目相看。把程序稍加修改,即可做出多種隨機特效,這留給大家去完成。