pixel benderでブラー keno42 forked:1favorite:2lines:70license : All rights reserved modified : 2009-03-07 03:28:19 Embed Tweet package { import flash.display.*; import flash.events.Event; import flash.geom.Matrix; import flash.filters.*; import flash.net.*; import flash.system.Security; import flash.text.*; public class Moji extends Sprite { private var loader:URLLoader; private var filter:ShaderFilter; private var sprite:Sprite = new Sprite(); private var back:Shape = new Shape(); private var backBmp:BitmapData = new BitmapData(400, 400, true, 0xFF000000); private var theta:Number = 0.0; public function Moji() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP; loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onComp); loader.load( new URLRequest("http://www.nyafuri.com/flash/blur.pbj")); this.x = 0; this.y = 0; } private function onComp(event:Event):void { var shader:Shader = new Shader((event.currentTarget as URLLoader).data); shader.data.c.value = [3.0]; shader.data.backImage.input = backBmp; stage.addEventListener(Event.ENTER_FRAME, onEnter); this.addChild( sprite ); this.graphics.beginFill(0xFFFFFF, 0); this.graphics.drawRect(0, 0, 400, 400); var textfield:TextField = new TextField(); textfield.defaultTextFormat = new TextFormat("_sans", 30); textfield.autoSize = TextFieldAutoSize.LEFT; textfield.text = "TEST TEST TEST"; textfield.y = -20; sprite.addChild( textfield ); sprite.graphics.beginFill(0x0,0.4); sprite.graphics.drawRect( 0, -20, 260, 40); sprite.x = 200; sprite.y = 200; filter = new ShaderFilter(shader); } private function onEnter(event:Event):void { theta += 0.015625; sprite.rotationY = theta * 180 / Math.PI; var matrix:Matrix = new Matrix(); var scaleVar:Number = sprite.width *0.0006; matrix.scale(scaleVar,1); matrix.translate(200 - scaleVar * 800,0); back.graphics.clear(); back.graphics.beginGradientFill( GradientType.LINEAR, [0x10000 * Math.floor(Math.abs(255*Math.sin(theta))), 0x0], [1, 1], [0, 255], matrix, SpreadMethod.REFLECT ); back.graphics.drawRect(0, 0, 400, 400); backBmp.draw( back ); this.filters = [filter]; } } } Code Fullscreen Preview Fullscreen h1ro : ブラー no48 : pixelbenderおもしろい pixelbender ブラー filter matrix ShaderFilter StageAlign.TOP loader URLLoader URLLoaderDataFormat.BINARY shader dataFormat align scaleMode rotationY beginGradientFill Event.COMPLETE StageScaleMode.NO_SCALE filters translate Shape width drawRect sort new page view favorite forked pv1474 遠近感ブラー keno42 forked:3 favorite:6lines:118 (diff:63) tag: pixelbender