[AS3][倒影算法][转载]

效果如图:

 

ContractedBlock.gifShadowArithmetic ExpandedBlockStart.gif
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); 
    }

转载于:https://www.cnblogs.com/Memo/archive/2007/11/29/977464.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值