Blurry, bouncy ball butr0s forked:0favorite:0lines:50license : MIT License modified : 2009-07-01 03:55:41 Embed Tweet package { import flash.display.Sprite; import flash.display.Shape; import flash.display.Graphics; import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Point; import flash.geom.ColorTransform; import flash.events.Event; [SWF(width="200", height="400", frameRate="30")] public class Blur extends Sprite { public static var WIDTH:int = 200; public static var HEIGHT:int = 400; private var _canvas:BitmapData = new BitmapData(WIDTH, HEIGHT, false, 0xffffff); private var _bulletImg:BitmapData; private var pos:Point = new Point(WIDTH / 2, HEIGHT / 2); private var vel:Point = new Point(5, 2); public function Blur():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; addChild(new Bitmap(_canvas)); var s:Shape = new Shape; var g:Graphics = s.graphics; g.beginFill(0x00aaff, 0.5); g.drawCircle(16, 16, 16); g.beginFill(0x55ffff); g.drawCircle(16, 16, 8); g.endFill(); _bulletImg = new BitmapData(s.width, s.height, true, 0xffffff); _bulletImg.draw(s); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { // Lock canvas so all drawing operations are done at the same time (when unlock() is called) _canvas.lock(); // Draw alpha overlay over all canvas content, slowly fading drawn objects var cr:Rectangle = new Rectangle(0, 0, _canvas.width, _canvas.height); var ct:ColorTransform = new ColorTransform(1, 1, 1, 0.8); _canvas.colorTransform(cr, ct); // Draw object _canvas.copyPixels(_bulletImg, _bulletImg.rect, new Point(pos.x - (_bulletImg.width / 2), pos.y - (_bulletImg.height / 2))); // Unlock canvas _canvas.unlock(); // Update position based on velocity pos.x += vel.x; pos.y += vel.y; // Detect/respond to collisions w/ edge of screen if(pos.x + (_bulletImg.width / 2) > WIDTH || pos.x - (_bulletImg.width / 2) < 0) vel.x *= -1; if(pos.y + (_bulletImg.height / 2) > HEIGHT || pos.y - (_bulletImg.height / 2) < 0) vel.y *= -1; } } } Code Fullscreen Preview Fullscreen bitmap colortransform graphics colorTransform height width copyPixels unlock lock ColorTransform draw BitmapData rect Event.ENTER_FRAME Event int