forked from: Moon in Water

by makc3d forked from Moon in Water (diff: 15)
♥2 | Line 61 | Modified 2013-03-14 22:16:56 | MIT License
play

ActionScript3 source code

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

// forked from J.J's Moon in Water
package {
    import flash.filters.BlurFilter;
    import flash.utils.setInterval;
    import flash.display.BlendMode;
    import flash.geom.*;
    import flash.events.Event;
    import flash.filters.ConvolutionFilter;
    import flash.geom.Matrix;
    import flash.display.Shape;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.media.*;
    import flash.net.*;
    public class FlashTest extends Sprite {
        private var h:Number,w:Number;
        private var mainbmp:BitmapData,bmpbuff:BitmapData,bmptmp:BitmapData
        private var cf:ConvolutionFilter
        private var rect:Rectangle
        private var p:Point
        private var s:Sound, c:SoundChannel, ct:ColorTransform;
        private var circle:Shape
        public function FlashTest() {
            // write as3 code here..
            w=stage.stageWidth,h=stage.stageHeight;
            mainbmp=new BitmapData(w,h,false,0);
            bmpbuff=mainbmp.clone();
            stage.addChild(new Bitmap(mainbmp))
            circle=new Shape;
            circle.graphics.beginFill(0xffffff)
            circle.graphics.drawCircle(0,0,40);
            circle.x=circle.y=w/2
           // stage.addChild(circle)
            var  cmatrix:Array=[
            .5,1,.5,
            1 ,0, 1,
            .5,1,.5
            ]
            rect=mainbmp.rect;p=mainbmp.rect.topLeft
            cf=new ConvolutionFilter(3,3,cmatrix,3);
            addEventListener('enterFrame',loop);
            s = new Sound (new URLRequest ("http://audiotool.s3.amazonaws.com/documents/Lp8exSpI58RBDvs1AUGSuUYhzDdkD/0/mixdown/834e8a75-fc3b-481a-8d0e-55e344663d3c.mp3"));
            c = s.play();
            ct = new ColorTransform;
        }
        private var a:Number=0;
        private function drawCircle():void{
            a = 0.6 * ( (c.leftPeak * c.rightPeak + c.leftPeak + c.rightPeak) / 3 ) + 0.3 * a; // + 0.1 * 0 :)
            ct.alphaMultiplier = a;
            mainbmp.draw(circle,new Matrix(a+1,0,0,a+1,w/2,h/2),ct);
            }
        private function loop(e:Event):void{
            drawCircle();
            bmptmp=mainbmp.clone();
            mainbmp.applyFilter(bmpbuff,rect,p,cf);
            mainbmp.draw(bmptmp,null,null,BlendMode.DIFFERENCE);
            bmptmp.dispose();
            bmptmp=bmpbuff;
            bmpbuff=mainbmp;
            mainbmp=bmptmp;
           
         }
    }
}