flash on 2012-3-29

by bradsedito
♥0 | Line 84 | Modified 2012-03-29 13:49:10 | MIT License
play

ActionScript3 source code

/**
 * Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/wve5
 */






package 
{
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import flash.ui.*
    import flash.filters.BlurFilter
    import flash.filters.GlowFilter
    import com.greensock.*
    import com.greensock.easing.*  
    import net.hires.debug.Stats
      
    [SWF(width="470", height="470", frameRate="60", backgroundColor="#ffffff")]
    
    
    public class Sketch extends Sprite 
    {
        public  const SW:Number  = stage.stageWidth
        public  const SH:Number  = stage.stageHeight
        public  var canvas:Bitmap;
        public  var originalBD:BitmapData;
        public  var rgbBD:BitmapData;
        public  var rBD:BitmapData;
        public  var gBD:BitmapData;
        public  var bBD:BitmapData;        
        public  var rDig:Number;
        public  var gDig:Number;
        public  var bDig:Number;
        private var blurr:BlurFilter  = new BlurFilter( 10,10,3 )
        private var gloww:GlowFilter = new GlowFilter( 0xCCCCCC,10,10,3 )

        public function Sketch() 
        {
            addEventListener(Event.ADDED_TO_STAGE, initialize);
            addEventListener(Event.REMOVED_FROM_STAGE, uninitialize);
            addEventListener(Event.ENTER_FRAME, enterframe);
        }
        private function initialize(e:Event):void 
        {
            rgbBD = new BitmapData(stage.stageWidth, stage.stageHeight, true);
            originalBD = new BitmapData(stage.stageWidth, stage.stageHeight, true);
            rBD = new BitmapData(stage.stageWidth, stage.stageHeight, true);
            gBD = new BitmapData(stage.stageWidth, stage.stageHeight, true);
            bBD = new BitmapData(stage.stageWidth, stage.stageHeight, true);
            rDig = 0;
            gDig = 0;
            bDig = 0;

            var s:Sprite = new Sprite();
            var radius:int = 100;
            s.graphics.beginFill(0x000000);
            s.graphics.drawCircle(0, 0, radius);
            s.graphics.drawCircle(0, 0, radius - radius / 2);
            s.graphics.endFill();
            s.x = stage.stageWidth / 2;
            s.y = stage.stageHeight / 2;
            addChild(s);
            originalBD.draw(this);
            removeChild(s);
            rgbBD.copyPixels(originalBD, originalBD.rect, new Point(0, 0));
            canvas = new Bitmap(rgbBD, PixelSnapping.AUTO, true);
            addChild(canvas);
        }
        private function uninitialize(e:Event):void 
        {
        }
        private function enterframe(e:Event):void 
        {
            rgbBD.copyPixels(originalBD, originalBD.rect, new Point(0, 0));
            var p:Point = new Point();
            var r:Rectangle = new Rectangle(rgbBD.rect.x, rgbBD.rect.y, rgbBD.rect.width, rgbBD.rect.height);
            var radius:uint = 15;
            // RED
            rDig += 11;
            rBD.copyPixels(rgbBD, r, p);
            rBD.scroll(Math.cos(Math.PI / 180 * rDig) * radius, Math.sin(Math.PI  /180 * rDig) * radius);
            // GREEN
            gDig += 13;
            gBD.copyPixels(rgbBD, r, p);
            gBD.scroll(Math.cos(Math.PI / 180 * gDig) * radius, Math.sin(Math.PI / 180 * gDig) * radius);
            // BLUE
            bDig += 17;
            bBD.copyPixels(rgbBD, r, p);
            bBD.scroll(Math.cos(Math.PI / 180 * bDig) * radius, Math.sin(Math.PI / 180 * bDig) * radius);
            rgbBD.copyChannel(rBD, r, p, BitmapDataChannel.RED, BitmapDataChannel.RED);
            rgbBD.copyChannel(gBD, r, p, BitmapDataChannel.GREEN, BitmapDataChannel.GREEN);
            rgbBD.copyChannel(bBD, r, p, BitmapDataChannel.BLUE, BitmapDataChannel.BLUE);
            
            this.filters = [ blurr ]
            this.blendMode = "add"
        }
    }
}