Pay for Hesitation: Bitmap倒影效果
Pay for Hesitation
Ideas are Worthless Unless Acted Upon
Pages
Home
Authors
2008年4月8日 星期二
Bitmap倒影效果
主要是藉由Bitmap支援混合多張影像的模式.
DEMO:
http://140.112.31.185/flextest/imageReflection.swf
source code + 說明
import flash.events.ProgressEvent;
import flash.display.Bitmap
import flash.display.BitmapData
import mx.controls.Image
internal function initApp():void {
var bd:BitmapData = new BitmapData(img.contentWidth, img.contentHeight, true, 0);
// 垂直翻轉, 矩陣第1,4個參數為水平垂直方向的縮放比例, 第2,3個參數為水平垂直方向的旋轉角度
// 最後兩個參數為坐標的相對位置, 影像翻轉後的y坐標可自行調整
var matrix:Matrix = new Matrix(1, 0, 0, -1, 0, img.contentHeight);
// 擷取輸入影像的pixels
bd.draw(img, matrix);
// 宣告一個visual component, 用來做漸變透明效果, 也可以是其它UIComponent, 如Canvas
var shape:Shape = new Shape();
// 定義一個漸變矩陣, 用來設置填充效果
var gradientMatrix:Matrix = new Matrix();
gradientMatrix.createGradientBox(img.contentWidth, img.contentHeight,0.5*Math.PI);
// 使用線性填充來達到漸變效果
// 第 1 個參數: 以何種方式來做漸層, 這裡使用線性填充
// 第 2 個參數: 使用何種顏色來做漸層, 這裡使用三種顏色
// 第 3 個參數: 指定相對應顏色的alpha值
// 第 4 個參數: 各顏色所佔的比例
shape.graphics.beginGradientFill(GradientType.LINEAR, [0,0,0], [0.4,0.25,0.01], [0,125,255], gradientMatrix);
shape.graphics.drawRect(0, 0, img.contentWidth,img.contentHeight);
shape.graphics.endFill();
// 透明化shape, 以融入背景顏色
bd.draw(shape, null, null, BlendMode.ALPHA);
var ba:Bitmap = new Bitmap(bd);
var newImage:Image = new Image();
newImage.source = ba;
newImage.x = img.x;
newImage.y = img.y + img.contentHeight + 2;
this.addChild(newImage);
}
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言