AS3倒影算法

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 width: 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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值