In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Blobs

Blobs (1,300bytes effect)
by Mr.doob
//
// Blobs (1,300bytes effect)
// by Mr.doob
//

package
{
import flash.display.Stage;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;
import flash.filters.BlurFilter;
import flash.utils.getTimer;
import flash.geom.Rectangle;
import flash.geom.Point;
import flash.events.Event;

public class Blobs extends Sprite
{
    private var bl : Array = [];
    private var r : Bitmap;
    private var c : Sprite;
    private var rect : Rectangle;
    private var point : Point = new Point;

    public function Blobs()
    {
        addEventListener(Event.ADDED_TO_STAGE, init);
    }

    public function init( e : Event ) : void
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);

        stage.align = "TL";
        stage.scaleMode = "noScale";

        c = new Sprite();
        c.filters = [new BlurFilter(30,30,1)];
        addChild(c);

        r = new Bitmap( new BitmapData( stage.stageWidth, stage.stageHeight, false, 0x00FFFFFF ) );
        addChild(r);
 
        for (var i:Number = 0; i < 100; i ++)
        {
	    bl[i] = new MovieClip();
            bl[i].graphics.beginGradientFill("radial",[0x000000,0xF7004A],[0xFF,0xFF],[0x00,0x80]);
	    bl[i].graphics.drawCircle(0,0,Math.random()*50+25);
	
	    bl[i].x = Math.random() * stage.stageWidth;
	    bl[i].y = Math.random() * stage.stageHeight;
	    bl[i].cycle = Math.random() * 100000;
	
	    c.addChild(bl[i]);
        }

        rect = new Rectangle(0,0,stage.stageWidth, stage.stageHeight);

        addEventListener( Event.ENTER_FRAME, u );
    }

    public function u(e : Event) : void
    {
	for (var i:Number = 0; i < 100; i ++)
	{
		bl[i].x += Math.sin( ( getTimer() + bl[i].cycle ) * .001 ) * 2;
		bl[i].y += Math.cos( ( getTimer() + bl[i].cycle ) * .001 ) * 2;
		bl[i].scaleX = bl[i].scaleY += Math.sin( ( getTimer() + bl[i].cycle ) *.001 ) *.015 ;
	}
	r.bitmapData.fillRect(rect,0x00FFFFFF);
	r.bitmapData.draw(c);
	r.bitmapData.threshold(r.bitmapData,rect,point,">",0x00800000,0xFFFFFFFF,0x00808080,true);
    }
}
}