// forked from checkmate's fladdict challenge for amateurs /** * Every frame you get screen caputre of the stage. * Generate new frame image with using last frames screen capture. * This is a starting point of recursive generative art. */ package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.Sprite; import flash.events.Event; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Point; public class Beginner extends Sprite { /** * Overwrite this update function. * Every frame the function is invoked with two bitmaps. * First one contains reference to the stage bitmap. * Second one contains static copy of stage. */ public var canvas:BitmapData; public var drawHere:BitmapData; public var mat:Matrix; public function update():void{ drawStep(); transformStep(); renderStep(); fadeStep(); } public function drawStep():void { //drawHere.setPixel(stage.mouseX, stage.mouseY, 0x11111111); drawHere.setPixel( Math.random()*480, Math.random()*480, 0xffffffff); } public function transformStep():void { mat = new Matrix(); mat.translate(-240,-240); mat.scale(Math.random()*1.50, Math.random()*1.35); mat.rotate(10); mat.translate(240,240); } public function renderStep():void{ canvas.draw(drawHere, mat, null,BlendMode.SCREEN); } public function fadeStep():void { canvas.colorTransform(drawHere.rect, new ColorTransform(Math.random()*0.4+0.6,Math.random()*0.4+0.6,Math.random()*0.4+0.6,1,0,0,0,0)); } /** * --------------------------------------- * DO NOT CHANGE FOLLOWING CODES * DO NOT ACCESS FOLLOWING PROPERTIES DIRECTLY * --------------------------------------- */ private var bitmap:Bitmap; public function Beginner() { canvas = new BitmapData(480,480,false,0x000000); bitmap = new Bitmap(canvas); addChild(bitmap); addEventListener(Event.ENTER_FRAME, _update); } public function _update(e:Event):void{ if(drawHere) drawHere.dispose(); drawHere = canvas.clone(); update(); } } } forked from: fladdict challenge for amateurs