forked from: Word Clouds - 1

by flex_axis forked from Word Clouds - 1 (diff: 2)
import flash.events.MouseEvent;
♥0 | Line 78 | Modified 2009-06-30 15:33:28 | MIT License
play

ActionScript3 source code

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

// forked from kiran1980's Word Clouds - 1
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="200", height="200")]
	public class tags extends Sprite {
		
		private var tagsString:String ="Tata, GE, Dell, Infosys, Kirloskar, iFlex, Aditya Birla Group, Bharti Airtel, Vodafone, Philips, Amazon, ebay, Gates Foundation, Toyota, Grundfos, Daimler-Benz, Cinemeccanica, Wet Design, Jai Singh Chaiwala, Caventers Milk Bar, Wheelers Book Shops, Tata, GE, Dell, Infosys, Kirloskar, iFlex, Aditya Birla Group, Bharti Airtel, Vodafone, Philips, Amazon, ebay, Gates Foundation, Toyota, Grundfos, Daimler-Benz, Cinemeccanica, Wet Design, Jai Singh Chaiwala, Caventers Milk Bar, Wheelers Book Shops, ";
		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", 40, 0xB15101);
					t.text = tagName;
					t.autoSize = TextFieldAutoSize.LEFT;
					t.selectable = false;
					t.x = -t.width/8;
					t.cacheAsBitmap = true;
					tag.addChild(t)
					addChild(tag)
					tagsArray.push(tag);
				}
				
				setTimeout(function():void {for (var i:int = 0; i<42; i++) foolAround()}, 1000);
				//setTimeout(function():void {Wonderfl.capture(stage)}, 3000);
				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()*110+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,
					
//					blur: {blurX: zz/100, blurY: zz/100},
					
					onComplete: foolAround
					
//					onUpdateParams: [i],
//					onUpdate: onUpdate
					
				}
			);
		
		}
		
		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.2,2.5);
 			g.lineTo(r.x, r.y);
		}
		
	}
}