DropShadowFilter——投影濾鏡

來源:互聯網
上載者:User
DropShadowFilter投影濾鏡會在原始對象下建立一個副本,然後用純色填充後並模糊副本,實現投影的效果。它有很多參數可以建立多種不同的效果。DropShadowFilter的構造方法如下:
DropShadowFilter (
    distance:Number = 4,
    angle:Number = 45,
    color:uint = 0,
    alpha:Number = 1,
    blurX:Number = 4,
    blurY:Number = 4,
    strength:Number = 1,
    quality:int = 1,
    inner:Boolean = false,
    knockout:Boolean = false,
    hideObject:Boolean = false
);
還記得前兩天我們學的BlurFilter模糊濾鏡嗎?它只有三個參數,多簡單啊!事情到了DropShadowFilter就沒那麼簡單了。我們來一一看看這些選項:
  • distance:顯示對象副本較原始對象的位移量,以像素為單位
  • angle:投影的位移角度
  • color:投影顏色
  • alpha:投影的透明度
  • blurX:投影在x座標軸方向的模糊量
  • blurY:投影再y座標軸方向的模糊量
  • strength:設定投影的強度,值越大投影越暗,與背景產生的對比差異越大
  • quality:模糊執行的次數,和BlurFilter裡的quality一樣(實際上它們的模糊原理是一樣的)
  • inner:決定是投影是在繪製在對象內部還是外部。如果inner設定為true,則投影被限制繪製在對象內部。產生的效果讓人感覺背景被挖了一個洞。
  • knockout:設定是否應用挖空效果,即使顯示對象填色變為透明,並顯示文檔的背景顏色。如果不想顯示原對象的填充內容,可以設定knockout為true,此時下層的背景映像會顯示出來,同時保留投影(通俗的講,就是投影中原對象部分被挖掉,露出背景部分)。當需要在背景上挖個洞,但又要保持映像填充時,可以非常好的展現這個參數的功能。此時這隻knockout為true,投影效果2-18所示。 hideObject:當設定為true時會隱藏原對象,同時顯示投影而不挖空(如果knockout是false)。結果是只有投影而沒有對象,所以如果你只需要投影時,可以使用這個參數。想象一下效果,一架飛機從頭頂飛過,而你只看到了地面上的影子。在實際的應用開發中,我經常用它來讓兩個分別有和沒有投影的組件對齊。在複雜的組件上應用投影,會影響啟動並執行效能,所以,直接在組件下方添加一個對象,並在這個對象中繪製投影效果會更好。這樣我們可以取消原對象的投影濾鏡,而保持投影的效果。


圖2-18.應用的了DropShadowFilter濾鏡的矩形,其中inner和knockout屬性都是true
圖2-18效果的原始碼DropShadowFilterTest類如下:package {

    import flash.filters.BitmapFilterQuality;
    import flash.filters.DropShadowFilter;

    [SWF(width=550, height=400, backgroundColor=0xEEEEEE)]

   
    public class DropShadowFilterTest extends BitmapFilterTest {

       
        override protected function applyFilter():void {
            var filter:DropShadowFilter = new DropShadowFilter(10);
            filter.blurX = 15;
            filter.blurY = 15;
            filter.quality = BitmapFilterQuality.HIGH;
            filter.inner = true;
            filter.knockout = true;
            _shape.filters = [filter];
        }

    }

}
這個類繼承BitmapFilterTest類,並在shape對象上應用了DropShadowFilter。內部投影和挖空效果讓人感覺背景被挖空了一塊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.