forked from: Function Use
forked from Function Use (diff: 12)
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/qKM4
*/
// forked from shapevent's Function Use
package {
import flash.display.*;
import flash.events.*;
import flash.filters.BlurFilter;
[SWF(width = 500, height=500)]
public class FunctionUse extends MovieClip {
private var canvas:BitmapData;
private var walkerNum:int;
private var walkers:Vector.<Function>;
private var blurr:BlurFilter = new BlurFilter(3,3,3);
public function FunctionUse(){
// init
canvas = new BitmapData(800,800,false, 0x000000);
addChild(new Bitmap(canvas,"auto",true));
scaleX = scaleY = 500 / 800
walkerNum = 250;
walkers = new Vector.<Function>(walkerNum, true);
makeWalkers();
runWalkers();
}
// private methods
private function makeWalkers():void{
for (var i:int = 0; i<walkerNum; i++){
walkers[i] = makeWalker();
}
}
private function runWalkers():void{
addEventListener(Event.ENTER_FRAME, onRun);
}
private function onRun(evt:Event):void{
for (var i:int = 0; i<walkerNum; i++){
walkers[i]();
}
}
private function makeWalker(xp:Number=400, yp:Number=400):Function{
var x:Number = xp, y:Number = yp;
var z:Number = z*(Math.random());
var rad:Number = Math.random() * 4;
var theta:Number = Math.random() * Math.PI * 2;
var speed:Number = 0.01 * Math.random() * 2
if (int(Math.random() * 2) == 1){
speed *= -100;
}
this.filters = [blurr];
canvas.scroll( 30, -30);
canvas.scroll(-30, 30);
return function():void{
x += rad * Math.cos(theta);
y += rad * Math.sin(theta);
theta += speed
if (int(Math.random() * 100) == 1){
theta = Math.random() * Math.PI * 2;
}
if (x > 800 || x < 0 || y > 800 || y < 0){
x = xp, y = yp;
}
canvas.setPixel32(x, y, 0xFFFFFF*Math.random());
}
}
}
}