先來看個as3支援的filter特效吧!!
http://sakri.net/technology/flash/flex/convolution_filter/ConvolutionFilterExplorer.html
每個displayObject都有filter property, 型態是Array, 預設值是null.
所以要對displayObject使用filter,
就需asign一個塞著filter的Array給它的filter屬性.
如:
比較簡易的寫法,如下:
還有更簡潔的方式:
以上的方法, 是直接覆蓋掉原本sprite的filter array.
若是想要append新的filter至原本的filter array的話,
千萬不可以寫成下面這行:
mySprite.filters.push(blur);
因為flash並沒有監聽filter array, 所以array的內容有所變動時, 並不會觸發flash去執行它.
只有在filter array被assign時, flash才會重新執行array中的filter.
所以正確append filter array的方法如下:
也可以寫成
BlurFilter的prototype.
public function BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)
第三個參數是blur的次數.
也可以用BitmapFilterQuality來設置.
但是此參數較耗render資源,所以䀆量以設置前兩個參數來達到需要的blur強度.
demo: http://imlab.cs.nccu.edu.tw/~pie/Filter.swf
沒有留言:
張貼留言