forked from: Moon in Water
forked from Moon in Water (diff: 15)
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;
}
}
}