• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    使用ActionScript3實現(xiàn)真實的藍天白云

    2013-12-31 00:00:00許敏雷麗娟
    電腦迷 2013年11期

    摘 要 本文對制作藍天白云提出新的解決方案,就是使用ActionScript3代碼實現(xiàn)其動畫效果,使之能夠在低效的CPU運行順暢。

    關(guān)鍵字 藍天白云 ActionScript3.0

    中圖分類號:TP319 文獻標(biāo)識碼:A

    要想實現(xiàn)真實的藍天白云動畫,應(yīng)該拋棄原先的傳統(tǒng)方式,運用ActionScript腳本語言方可模擬真實的場景。根據(jù)現(xiàn)實的考慮和分析,我們使用了BitmapData類中兩個重要方法:perlinNoise和ColorMatrixFilter方法。通過使用這兩個方法,我們可以得到一個真實的動態(tài)云的效果并且對于天空和云的顏色也能輕易改變。當(dāng)然這樣的特效是非常消耗CPU資源。

    首先來說說AS3中BitmapData類的perlinNoise方法。

    PerlinNoise是基于一個復(fù)雜的算法來創(chuàng)建隨機紋理效果的方法。這個算法是完全定值的算法:只要輸入相同的參數(shù),必會輸出相同的結(jié)果。正是由于這種聰明的程序結(jié)構(gòu)使得我們將它用于產(chǎn)生隨機效果的變化。在AS3中,你可以創(chuàng)建BitampData對象,并在這個對象的顏色通道中對其參數(shù)使用PerlinNoise方法,從而使一個“原始”的BitmapData對象中包含PerlinNoise,能夠產(chǎn)生出大量的豐富效果。PerlinNoise方法很少單獨存在,大多數(shù)時候是與ColorMatrixFilter結(jié)合一起來使用。

    下面我們以DispMapFilter為例。

    rateX是負責(zé)水平方向的頻度。rateX的值越低,水平方向的頻度就越高。在rateX數(shù)值低的情況下,你將會看到大量的小云彩橫向散開分布。

    rateY是負責(zé)垂直方向的頻度。rateY的值越低,垂直方向的頻度就越高。

    usedCPUs是至關(guān)重要的,它主要負責(zé)改變動畫時CPU使用率。每調(diào)節(jié)不同的頻程不僅會改變云彩的細節(jié),更會影響CPU的使用率。當(dāng)usedCPUs設(shè)為2,云彩看起來太光滑而不真實;改為3,可以接受的,但效果不是太好。當(dāng)然,數(shù)值越大,占用CPU更多,從而動畫變慢,因此這里我們設(shè)置usedCPUs為5。

    randSeed是算法的起點。我們隨機一個起點,只需一次便可在ENTER_FRAME持續(xù)發(fā)生,用于創(chuàng)造出移動參數(shù)的偏移量。

    Stitch是使得PerlinNoise的圖像邊緣更近平滑。

    typeNoise將它設(shè)置為真或假,用于改變Noise的性質(zhì)種類。

    colorChannel指定Noise信號的顏色通道。1僅為紅色,3為紅和綠,7為紅綠藍,15為紅綠藍并帶alpha通道。

    grayNoise用于設(shè)置灰色Noise,當(dāng)然如果選擇1,則為彩色Noise。

    offset是一些點的數(shù)組。用于記錄水平和垂直方向的偏移量,以便控制云彩的運動。

    再來談?wù)凜olorMatrixFilter方法。

    在程序代碼中我們不再重復(fù)運算PerlinNoise,這是消耗CPU的根源所在。因為重復(fù)的圖案不會引人注意,因此云彩的移動才是關(guān)鍵,我們先可利用PerlinNoise的“stitch”參數(shù)來創(chuàng)建出一副圖像的無縫連接,然后通過BitmapData類中的scroll()方法實現(xiàn)即可。這種方法可完成連續(xù)的位圖數(shù)據(jù)的復(fù)制,并讓運動更加有效。

    最后我們一起來對分層云彩,使之效果更加逼真。前面我們已經(jīng)創(chuàng)建了一個非常不錯的效果。我們增加簡單的分層ScrollingClouds可實現(xiàn)三維方式的云彩效果,通過調(diào)節(jié)alpha層為頂層,在對構(gòu)造函數(shù)中useBackground變量進行設(shè)置其參數(shù)為1后,便能將透明背景的效果最終呈現(xiàn)出來了。

    參考文獻

    [1] Roger·Braunstein.ActionScript3.0寶典.清華大學(xué)出版社,2012.

    宝山区| 兴海县| 库尔勒市| 白沙| 遵义市| 平遥县| 揭阳市| 微博| 渝中区| 襄城县| 正镶白旗| 九龙坡区| 苗栗县| 宁波市| 浏阳市| 铜鼓县| 廉江市| 都安| 门头沟区| 静乐县| 蒙山县| 郑州市| 呼伦贝尔市| 岳池县| 平南县| 肃宁县| 怀仁县| 沁源县| 吕梁市| 营口市| 临猗县| 安西县| 全州县| 竹北市| 武冈市| 庆云县| 云和县| 河源市| 仲巴县| 东乌珠穆沁旗| 威远县|