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

flash on 2010-2-22

Get Adobe Flash player
by deathcon7 22 Feb 2010
    Embed
/**
 * Copyright deathcon7 ( http://wonderfl.net/user/deathcon7 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/oqus
 */

package {
	import flash.display.*;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.filters.*;
	import flash.geom.Point;
	import flash.geom.Matrix;
	import flash.ui.Mouse;
	
	[SWF (width="750",  
	height="550", 
	frameRate="20" , 
	backgroundColor="0xffffff")]  

	public class Wallpaper extends Sprite {
		private var bitmap:Bitmap;
		private var bitmapData:BitmapData;
		private var fogBitmap:Bitmap;
		private var fogBitmapData:BitmapData;
		private var i:uint;
		private var faicHolder:Sprite;
		private var scale:Number = 0;
		private var counter:uint = 0;
		private var deg2Rad:Number = 180 / Math.PI;
		private var toggle:Boolean;

		public function Wallpaper() {
			toggle = false;
			
			bitmapData=new BitmapData(stage.stageWidth,stage.stageHeight, false, 0xFF000000);
			bitmap=new Bitmap(bitmapData);
			
			fogBitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0xFFFF0000);
			fogBitmap = new Bitmap(fogBitmapData);
			
			addChild(fogBitmap);
			addChild(bitmap);
			
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			stage.addEventListener(MouseEvent.CLICK, onClick);
			faicHolder = addChild(makeFaic())as Sprite;
		}

		private function enterFrameHandler(e:Event):void {
			if (toggle)
			{
				bgAnimation();
			}
			else
			{
				drawFaic();
				blurTheShitOutOfTheBackground();
				distortTheFuckOutOfTheBackground();
				seriouslyThisIsGettingOutOfHand();
			}
		}
		
		private function makeFaic():Sprite {
			var animatedFaicHolder:Sprite = new Sprite();
			var faicHolder:Sprite = new Sprite();
			faicHolder.graphics.lineStyle(3, 0x000000, 1);
			faicHolder.graphics.beginFill(0xFF9B00);
			faicHolder.graphics.drawCircle(0, 0, 15);
			faicHolder.graphics.endFill();
			faicHolder.graphics.lineStyle(1,0x000000, 0);
			faicHolder.graphics.beginFill(0xFFCC00);
			faicHolder.graphics.drawCircle(0, 1, 11);
			faicHolder.graphics.endFill();
			faicHolder.graphics.lineStyle(3, 0x000000, 1);
			faicHolder.graphics.moveTo(-15, -15);
			faicHolder.graphics.lineTo(0, -3);
			faicHolder.graphics.lineTo(15, -15);
			faicHolder.graphics.moveTo(-6.5, -3);
			faicHolder.graphics.beginFill(0x0000000, 1);
			faicHolder.graphics.drawCircle(-7,-2,1.5);
			faicHolder.graphics.drawCircle(7,-2,1.5);
			faicHolder.graphics.endFill();
			faicHolder.graphics.lineStyle(3, 0x000000, 0);
			faicHolder.graphics.beginFill(0xFFFFFF, 1);
			faicHolder.graphics.drawCircle(-7,-3,1);
			faicHolder.graphics.drawCircle(7,-3,1);
			faicHolder.graphics.endFill();
			faicHolder.graphics.lineStyle(3, 0x000000, 1);
			faicHolder.graphics.moveTo(-12, 12);
			faicHolder.graphics.curveTo(0, -8, 12, 12);
			faicHolder.x = stage.stageWidth/2;
			faicHolder.y = stage.stageHeight / 2;
			faicHolder.addEventListener(Event.ENTER_FRAME, animateFaic);
			animatedFaicHolder.addChild(faicHolder);
			return animatedFaicHolder;
			
		}
		private function animateFaic(e:Event):void
		{
			scale = Math.sin(counter / deg2Rad) + 2;
			e.target.scaleX = e.target.scaleY = scale;
			if(++counter > 360) counter = 0;
			e.target.rotation += 5;
			
			if (toggle)
			{
				e.target.x = mouseX;
				e.target.y = mouseY;
			}
			else
			{
				e.target.x = stage.stageWidth * Math.random();
				e.target.y = stage.stageHeight * Math.random();
			}
			
		}
		private function bgAnimation():void
		{
			for (i = 0; i < 5000; i++) {
				bitmapData.setPixel(Math.floor(Math.random()*bitmapData.width), Math.floor(Math.random()*(bitmapData.height)), Math.floor(Math.random()*(Math.pow(16, 6))));
			}
		}
		private function drawFaic():void
		{
			bitmapData.draw(faicHolder);
		}
		private function blurTheShitOutOfTheBackground():void
		{
			bitmapData.applyFilter(bitmapData, bitmapData.rect, new Point(0, 0), new BlurFilter(2, 2, 3));
		}
		private function distortTheFuckOutOfTheBackground():void {
			fogBitmapData.perlinNoise(50, 50, 1, Math.ceil(Math.random()*100), true, false, 1, false);
			var distorter:DisplacementMapFilter = new DisplacementMapFilter(fogBitmapData, null, BitmapDataChannel.RED, BitmapDataChannel.RED, -10 + Math.random()*5, -10 - Math.random()*5, "clamp");
			bitmapData.applyFilter(bitmapData, bitmapData.rect, new Point(0,0), distorter);
			fogBitmap.visible = false;
		}
		private function seriouslyThisIsGettingOutOfHand():void {
			var scaleMat:Matrix = new Matrix();
			scaleMat.translate(-stage.stageWidth, -stage.stageHeight);
			scaleMat.scale(1.006, 1.006);
			scaleMat.rotate((2)*(Math.PI/180));
			scaleMat.translate(stage.stageWidth, stage.stageHeight);
			
			bitmapData.draw(bitmapData, scaleMat);
		}
		private function onClick(e:MouseEvent):void
		{
			toggle = !toggle;
			if (toggle) Mouse.hide() else Mouse.show();
		}
	}
}