flash on 2010-2-5

by hacker_9p8x8mco
♥0 | Line 84 | Modified 2010-02-05 23:51:08 | MIT License
play

ActionScript3 source code

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

package{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.text.TextFormat;
	import flash.utils.setTimeout;
	
	import gs.TweenMax;
	import gs.easing.Back;

	[SWF(width="465",height="465")]
	public class tags extends Sprite{

		private var tagsString:String = "All Classes Accessibility AccessibilityProperties ActionScriptVersion ActivityEvent AntiAliasType ApplicationDomain ArgumentError arguments Array";
		private var tagNamesArray:Array = tagsString.split(" ");
		private var tagsArray:Array = [];
		
		public function tags(){
			super();
			addEventListener(Event.ADDED_TO_STAGE, function (e:Event):void{
				stage.scaleMode = StageScaleMode.NO_SCALE;
				stage.align = StageAlign.TOP_LEFT;

				for each(var tagName:String in tagNamesArray){
					var tag:Sprite = new Sprite;
					var t:TextField = new TextField;
					t.defaultTextFormat = new TextFormat("Trebuchet MS",20,0x888888);
					t.text = tagName;
					t.autoSize = TextFieldAutoSize.LEFT;
					t.selectable = false;
					t.x = -t.width/2;
					t.cacheAsBitmap = true;
					tag.addChild(t);
					addChild(tag);
					tagsArray.push(tag);
				}

				setTimeout(function():void{for(var i:int=0;i<30;i++) foolAround()},1000);
				stage.addEventListener(Event.RESIZE,resize);
				resize();
				stage.addEventListener(MouseEvent.MOUSE_MOVE,function(e:MouseEvent):void{
					var xx:Number = mouseX / stage.stageWidth -0.5;
					var yy:Number = mouseY / stage.stageHeight - 0.5;
					for each ( var t:Sprite in tagsArray){
						t.rotationY = -xx*45 + 30*t.getRect(t).x/stage.stageWidth;
						t.rotationX =  yy*45 - 30*t.getRect(t).y/stage.stageHeight;
					}
				});

			});

		}




		public function resize(e:Event = null):void{
			for each(var t:Sprite in tagsArray){
				t.x = stage.stageWidth/2;
				t.y = stage.stageHeight/2;
				t.getChildAt(0).x = stage.stageWidth  * (Math.random()-Math.random());
				t.getChildAt(0).y = stage.stageHeight * (Math.random()-Math.random());
				t.getChildAt(0).z = Math.random() * 1000;
				t.getChildAt(0).alpha = 0.5+(1-t.getChildAt(0).z/1000)/2;
			}
		}

		public function foolAround():void{
			var zz:Number = Math.random()*1000;
			var i:int = Math.floor(Math.random()*tagsArray.length);
			TweenMax.to(tagsArray[i].getChildAt(0),Math.random()*5+2,
				{
					ease:Back.easeInOut,
					x:stage.stageWidth * (Math.random()-Math.random()),
					y:stage.stageHeight* (Math.random()-Math.random()),
					z:zz,
					alpha:0.5+(1-zz/1000)/2,
					onComlplete:foolAround
				}
			);
		}

		public function onUpdate(...arguments):void{
			var i:Number = arguments[0];
			var r:Rectangle = tagsArray[(i+1) < tagsArray.length ? i+1 : 0].getChildAt(0).getBounds(tagsArray[i]);
			var g:Graphics = tagsArray[i].graphics;
			g.clear();
			g.lineStyle(1,0,0.5);
			g.lineTo(r.x,r.y);
		}
	}
}