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

code on 2009-1-10

Circles
*
*	@author					Rafael Rinaldi
*	@date					09/01/2009
*	@version				1.0
*
Get Adobe Flash player
by rafaelrinaldi 10 Jan 2009
    Embed
/**
*
*	Circles
*
*	@author					Rafael Rinaldi
*	@date					09/01/2009
*	@version				1.0
*
**/

package {
	
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.filters.DropShadowFilter;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.utils.setTimeout;
	
	public class Circles extends Sprite
	{
		
		private var circle : Sprite;
		private var circles : Sprite;
		private var objects : Array;
		private var label : TextField;
		
		private const TOTAL : Number = 30;
		
		public function Circles()
		{
			addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}
		
		private function init() : void
		{
			objects = new Array();
			
			circles = new Sprite();
			
			addChild(circles);
			
			label = new TextField();
                        label.selectable = false;
			label.autoSize = TextFieldAutoSize.LEFT;
			label.htmlText = "<font face='Verdana' color='#000000' size='30'><strong>That's it.</strong></font>";
			label.filters = [new DropShadowFilter(0)];
			label.alpha = 0;
			label.x = (stage.stageWidth * .5) - (label.width * .5);
			label.y = (stage.stageHeight * .5) - (label.height * .5);
			
			addChild(label);
			
			create();
		}
		
		private function showLabel() : void
		{
			label.addEventListener(Event.ENTER_FRAME, onLabelEnterFrame);			
		}
		
		private function createCircle( p_radius : Number, p_color : Number ) : Sprite
		{
			var circle : Sprite = new Sprite();
		
			circle.graphics.beginFill(p_color);
			circle.graphics.drawCircle(0, 0, p_radius);
			circle.graphics.endFill();
			
			return circle;
		}
		
		private function randRange( p_min : Number, p_max : Number ) : Number
		{
			var randomNum : Number = Math.floor(Math.random() * (p_max - p_min + 1)) + p_min;
			return randomNum;
		}
		
		private function create() : void
		{
			for(var i : uint = 0; i < TOTAL; i++) {
				
				circle = createCircle(1, 0xeeeeee);
				circle.name = "circle_" + i;
				circle.x = randRange(0, stage.stageWidth);
				circle.y = randRange(0, stage.stageHeight);
				
				circles.addChild(circle);
				
				objects[circle.name] = new Array();
				objects[circle.name].scale = randRange(.2, 2);
				objects[circle.name].scaleTotal = randRange(50, 500)
				
				circle.addEventListener(Event.ENTER_FRAME, onCircleEnterFrame);
				
			}
			
			setTimeout(showLabel, 2000);
		}
		
		private function onAddedToStage( event : Event ) : void
		{
			init();
			removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}
		
		private function onCircleEnterFrame( event : Event ) : void
		{
			circle = event.currentTarget as Sprite;
			
			circle.scaleX += objects[circle.name].scale;
			circle.scaleY += objects[circle.name].scale;
			
			if(circle.scaleX >= objects[circle.name].scaleTotal && circle.scaleY >= objects[circle.name].scaleTotal) circle.removeEventListener(Event.ENTER_FRAME, onCircleEnterFrame);
		}
		
		private function onLabelEnterFrame( event : Event ) : void
		{
			label.alpha += .1;
			if(label.alpha >= 1) label.removeEventListener(Event.ENTER_FRAME, onLabelEnterFrame);
		}
		
	}
}