代码
function createRef(picSource:DisplayObject):void
{
// 倒置
var bd:BitmapData = new BitmapData(picSource.width, picSource.height, true, 0x12346f);
var mtx:Matrix = new Matrix();
mtx.d = -1;
mtx.ty = bd.height;
bd.draw(picSource, mtx);
// 添加渐变遮罩
var int = bd.width;
var height:int = bd.height;
mtx = new Matrix();
mtx.createGradientBox(width, height, 0.5 * Math.PI);
var shape:Shape = new Shape();
shape.graphics.beginGradientFill(GradientType.LINEAR, [0, 0], [0.9, 0.2], [0, 0xFF], mtx);
shape.graphics.drawRect(0, 0, width, height);
shape.graphics.endFill();
var mask_bd:BitmapData = new BitmapData(width, height, true, 0);
mask_bd.draw(shape);
// 生成最终效果
bd.copyPixels(bd, bd.rect, new Point(0, 0), mask_bd, new Point(0, 0), false);
// 将倒影放置于图片下方
var ref:Bitmap = new Bitmap();
ref.y = picSource.height + picSource.y;
ref.x = picSource.x;
ref.bitmapData = bd;
picSource.parent.addChild(ref);
}
{
// 倒置
var bd:BitmapData = new BitmapData(picSource.width, picSource.height, true, 0x12346f);
var mtx:Matrix = new Matrix();
mtx.d = -1;
mtx.ty = bd.height;
bd.draw(picSource, mtx);
// 添加渐变遮罩
var int = bd.width;
var height:int = bd.height;
mtx = new Matrix();
mtx.createGradientBox(width, height, 0.5 * Math.PI);
var shape:Shape = new Shape();
shape.graphics.beginGradientFill(GradientType.LINEAR, [0, 0], [0.9, 0.2], [0, 0xFF], mtx);
shape.graphics.drawRect(0, 0, width, height);
shape.graphics.endFill();
var mask_bd:BitmapData = new BitmapData(width, height, true, 0);
mask_bd.draw(shape);
// 生成最终效果
bd.copyPixels(bd, bd.rect, new Point(0, 0), mask_bd, new Point(0, 0), false);
// 将倒影放置于图片下方
var ref:Bitmap = new Bitmap();
ref.y = picSource.height + picSource.y;
ref.x = picSource.x;
ref.bitmapData = bd;
picSource.parent.addChild(ref);
}