設置PNG非透明區域爲mask區域

在Flash中我們可以畫一個任意的圖片爲mask區域..
有時候我們可能需要利用png中非透明區域爲mask..
如果直接使用

a.mask = b(b爲包含png圖片的對象);

出來的效果會這樣:(右圖爲png原圖)

顯示/隱藏FLASH

 



而我們希望得到的效果其實是:

顯示/隱藏FLASH

 



代碼如下:

//隨便加載一張圖片,來用處爲mask的目標
var image:Loader = new Loader();
image.cacheAsBitmap = true;//此步重要,把對象緩存爲位圖
addChild(image);
image.load(new URLRequest("001.jpg"));
 
//加載一張png圖,作爲mask區域;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete)
loader.filters = [new BlurFilter(0,0,0)]//此步重要,給對象加一個filter
addChild(loader)
loader.load(new URLRequest("10020601.png"));
 
//設置mask
image.mask = loader;
 
//以下代碼非必要...................................................................
 
//把png複製一份顯示出來
function complete(e:Event):void
{
    var bit:BitmapData = Bitmap(loader.content).bitmapData.clone();
    var bmp:Bitmap = new Bitmap(bit);
    bmp.x = 256;
    addChild(bmp);
}
From:http://blog.l4cd.net/post-old-97.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章