AS3 使用Bitmap+Matrix实现的:径向+转旋+叠加图层效果的模糊效果
2012-05-27 19:56
615 查看
以下是天地会的:金牌长老:给出的:使用Bitmap+Matrix实现的:径向+转旋+叠加图层效果的模糊效果。 相信这种效果很多游戏都会用上。 先收藏一下。赞一个! http://bbs.9ria.com/viewthread.php?tid=69188 package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BlurFilter; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; import ghostcat.filter.ColorMatrixFilterProxy; public class aaaa extends Sprite { [Embed(source="img1.jpg")] public var cls:Class; public var bmd:BitmapData; public var screen:Bitmap; public var scale:Number; public var r:Number; public function aaaa() { bmd = new cls().bitmapData; screen = new Bitmap(bmd.clone()); addChild(screen); scale = 1.0; r = 0.0; stage.addEventListener(MouseEvent.CLICK,clickHandler); } private function clickHandler(event:MouseEvent):void { if (hasEventListener(Event.ENTER_FRAME)) { removeEventListener(Event.ENTER_FRAME,tickHandler); scale = 1.0; r = 0.0; screen.bitmapData = bmd.clone(); } else { addEventListener(Event.ENTER_FRAME,tickHandler); } } private function tickHandler(event:Event):void { r += 0.05; scale *= 1.05; var m:Matrix = new Matrix(); m.translate(-bmd.width / 2,-bmd.height / 2); m.scale(scale,scale); m.rotate(r); m.translate(bmd.width / 2,bmd.height / 2); screen.bitmapData.draw(bmd,m,new ColorTransform(1,1,1,0.2),BlendMode.ADD); } } } 第二类:http://bbs.9ria.com/viewthread.php?tid=73048 import flash.display.BitmapData; import flash.filters.BlurFilter; import flash.geom.ColorTransform; import flash.geom.Matrix; addChild(new Bitmap(getZoomed(new 元件1(),5,1))); function getZoomed(obj:DisplayObject, dist:Number, qual:Number):BitmapData { var width0:Number = obj.width+(dist*0.05*obj.width)+4; var height0:Number = obj.height+(dist*0.05*obj.height)+4; var out:BitmapData = new BitmapData(width0, height0, true, 0x00000000); var buffer:BitmapData = new BitmapData(width0, height0, true, 0x00000000); var blur:BlurFilter = new BlurFilter(3, 3, qual); var cmat:ColorTransform = new ColorTransform(1, 1, 1, 0.2, 0, 0, 0, 0); var mat:Matrix = new Matrix(); var step:Number; for (var i:Number = dist+20; i>1; i--) { step = 0.05*i; mat.identity(); mat.scale(step,step); mat.translate(width0/2-obj.width*step/2,height0/2-obj.height*step/2); buffer.fillRect(buffer.rect,0x00000000); buffer.draw(obj,mat); buffer.applyFilter(buffer,buffer.rect,new Point,blur); mat.identity(); out.draw(buffer,mat,cmat); } mat.identity(); mat.translate(dist*0.05*obj.width/2+2,dist*0.05*obj.height/2+2); cmat.alphaMultiplier = 0.3; buffer.dispose(); out.draw(obj,mat,cmat,null,null,true); return out; }
相关文章推荐
- [ActionScript 3.0] AS3实现图像径向转旋效果
- Android编程实现图片背景渐变切换与图层叠加效果
- iOS8使用UIVisualEffectView实现模糊效果
- 使用bitmapData简单实现涂鸦中的橡皮功能(as3)
- AS3 (BitmapData perlinNoise)模糊动态云、烟效果
- 使用GPUImage实现iOS 7的模糊效果
- android RelativeLayout属性和使用, 实现上面view叠加在下面view之上的效果
- 使用Alpha Blending的方式来实现伪运动模糊的效果
- iOS开发之使用UIimage+ImageEffects实现图片模糊效果
- as3使用滤镜实现高亮效果(GlowFilter)
- 使用GPUImage实现iOS 7的模糊效果
- 使用 drawBitmapMesh 实现仿真水波纹效果
- 高仿小米时钟 - 使用Camera和Matrix实现3D效果
- css使用text-shadow实现字体模糊效果
- layer-list多图层叠加效果实现圆角功能 sharp属性详解
- bitmap和canvas实现图层叠加(可实现灰色遮罩)
- Lucene使用单字分词及短语查询实现类似全模糊查询效果
- ViewPager、Fragment、Matrix综合使用实现Tab滑页效果
- Span使用之利用系统Span样式实现模糊搜索,匹配变色的特殊UI效果
- iOS8使用UIVisualEffectView实现模糊效果