本教程是向大家介紹利用Flash AS3.0打造漂亮的水紋GIF動畫效果,教程很不錯,講解的也很詳細,很值得學習,推薦過來,喜歡的朋友可以過來學習一下!
在這個Flash AS3.0實例教程中,我們將用到置換圖濾鏡(DisplacementMapFilter)和BitmapData類的的雜點功能(perlinNoise),這兩個家伙常常給我們帶一些令人興奮的效果,它們今天的合作為我們創造了一個漂亮的的水汶,看看下面的動畫,應該還不錯吧。
現在我開始來構建這個漂亮的水紋:
既然是水紋,我想首先要找一張含水的圖片吧,百度一下吧,河道,湖泊,水池,你喜歡就行。
1、新建一AS3.0文檔,將幀頻設為30,將你剛百度到的圖片導入到庫中,點右鍵,在屬性面板中將“使用JPEG導入品質”前的鉤鉤去掉,這樣做圖片的體積就會大大地減小哦。
2、新建一個影片剪輯元件,將圖片拖到舞臺上,設置圖片的大小,你想設多大呢?反正我是按默認的550x400。圖片在大小與文檔大小一樣大。點擊對齊面板,相對于舞臺居中對齊。
3、回到主場景,將MC拖到舞臺上,居中放置,為它設置一個實例名稱,我用的是“pic”圖層上鎖。
4、新插入一圖層,將圖片(注意是圖片不是MC),拖到舞臺上,打開對齊面板,寬高匹配,居中對齊。現在第1,2層的圖像是完全重合的,請確認是這樣的。選擇圖片,點擊 修改>分離,將水面部分選出,刪除。可以將第1層隱藏,看看刪除后的效果。
如下圖:
5、新建一層用來寫代碼,打開動作面板,輸入下列代碼:
OK,測試影片,一個漂亮的水汶效果立即出現在你的眼前。
代碼分析:
首先聲明了一個與圖片一樣大的BitmapData類實例bmp,用來作為置換圖濾鏡的參數。
var bmp:BitmapData = new BitmapData(550,400);
然后聲明一個置換圖濾鏡zh,將bmp作為參數。
var zh:DisplacementMapFilter = new DisplacementMapFilter(bmp,new Point(0,0),1,2,10,600);
接下來聲明了兩個點,并將這兩個點放到到一個叫zdxg的數組中,這個數組將用于bmp產生雜點的參數。
var p1:Point = new Point();
var p2:Point = new Point();
var zdxg:Array = [p1,p2];
然后,在ENTER_FRAME事件中調用ld函數。
addEventListener(Event.ENTER_FRAME ,ld);
ld函數,動態改變兩個點的位置,然后使bmp應用雜點功能,在每一幀的間隔產生不同的雜點效果,使置換濾鏡效果產生變化,最后讓影片剪輯pic,應用濾鏡,實現水汶效果。
function ld(e:Event):void {
zdxg[0].x += 0.2;
zdxg[1].y += 0.1;
bmp.perlinNoise(168,5,2,4,true,true,2,true,zdxg);
pic.filters = [zh];
}
以上就是Flash AS3.0打造漂亮的水紋GIF動畫效果教程,希望大家喜歡!
新聞熱點
疑難解答