code on 2009-1-10
Circles
*
* @author Rafael Rinaldi
* @date 09/01/2009
* @version 1.0
*
/**
*
* 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);
}
}
}