Flex对图片的处理例子

对我有一定的参考价值,所以放在这里。

 

 

这段时间研究了一下flex的图片处理,参照了网上一个flash的代码.弄了个flex版的图片波动特效,感觉挺好的.

  简单功能:  鼠标放上去,进入每桢,开始波动;鼠标离开,波动停止.

  主要部分代码:(没有太多注释!)

     public function drawWaves():void
  {
     
      particles = new Array();
      FBitmapData = new BitmapData(width,height+20,false,0x00000000);//这个 BitmapData用来生成一个波纹的位图

      FPerlinBitmapData = new BitmapData(width,20,false,0x00000000);//这是一个存放Perlin杂色的位图
      
      FBitmapData.draw(FImg,null,null,BlendMode.OVERLAY);
    

      addChild(FImg); 
     
      this.scrollRect= new Rectangle(0,0,width,height);
      FRectangle = new Rectangle(0,0,width,height);
      FPoint_1 = new Point(0,0);
      FPoint_2 = new Point(0,0);     
      FMatrix.translate(0,height-20);
      FBlur = new BlurFilter(4,4,3);//一个模糊滤镜,用来为生成波纹位图服务
          
       
     }
      
    private function onEnterFrame(aEvent:Event):void //之后每进入一帧都重复此过程,这样就出现了一系列连续的波纹位图
    {
     if(FStartWave)
     {
      //以下主要就是如何生成连续的波纹位图的代码
      FPoint_1.x += 1;
      FPoint_1.y += .5;
      FPoint_2.x += 5;
      FPoint_2.y += 2;//这些都是为生成连续Perlin 杂点服务的 
      FPerlinBitmapData.perlinNoise(width/2,10,2,12345,false,true,1,true,[FPoint_1, FPoint_2]);//生成杂点函数
      FBitmapData.draw(FPerlinBitmapData,FMatrix);//将杂点画在上一个波纹位图最底端,作为新的激荡点
      FBitmapData.applyFilter(FBitmapData, FRectangle, new Point(0,-5), FBlur);//使用前面的那个模糊滤镜,主要模拟波纹扩散的效果
      FDisplacement = new DisplacementMapFilter(FBitmapData, new Point(0,0), 1,1,0,-40,"color",0x000000,100);//用这张波纹位图创建一个DisplacementMapFilter,用来产生折射效果
      FImg.filters=[FDisplacement];
      
     }
   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值