Section 1
//Circle (ae.Circle)
package ae {
import flash.events.*;
import flash.display.*;
import ae.*;
class Circle extends Sprite {
public var r2:Number;
public var c:int;
public var h:Number;
private var t:Number;// = 0
public var w:Number;
public var r:Number;
public var hit:Sprite;
private var step:Number;// = 0.06
function Circle(_arg1:Number, _arg2:Number){
var _local3:int;
var _local4:int;
var _local5:int;
t = 0;
step = 0.06;
super();
w = _arg1;
h = _arg2;
r = (w / 2);
r2 = (r / 2);
_local3 = (int((Math.random() * 224)) + 32);
_local4 = (int((Math.random() * 224)) + 32);
_local5 = (int((Math.random() * 224)) + 32);
c = (((_local3 << 16) + (_local4 << 8)) + _local5);
}
public function split():void{
var _local1:Circle;
var _local2:Circle;
var _local3:Circle;
var _local4:Circle;
_local1 = new Circle(r, r);
_local2 = new Circle(r, r);
_local3 = new Circle(r, r);
_local4 = new Circle(r, r);
_local1.x = x;
_local1.y = y;
_local2.x = (x + r);
_local2.y = y;
_local3.x = x;
_local3.y = (y + r);
_local4.x = (x + r);
_local4.y = (y + r);
(this.parent as CircleSplit).addCircles(new Array(_local1, _local2, _local3, _local4));
this.parent.removeChild(this);
}
private function handleFrame(_arg1:Event){
if (t >= 1){
removeEventListener(Event.ENTER_FRAME, handleFrame);
split();
} else {
t = (t + step);
draw();
};
}
public function addHit(){
hit = new Sprite();
hit.graphics.beginFill(c);
hit.graphics.drawCircle(r, r, r);
hit.graphics.endFill();
hit.mouseEnabled = false;
hit.visible = false;
hit.x = x;
hit.y = y;
this.hitArea = hit;
this.parent.addChild(hit);
addEventListener(MouseEvent.MOUSE_OVER, handleMouseOver);
}
public function draw():void{
this.graphics.clear();
if (t == step){
(this.parent as CircleSplit).blankBG(this);
};
this.graphics.beginFill(c);
this.graphics.drawCircle(lerp(r, (r - r2), t), lerp(r, (r - r2), t), lerp(r, r2, t));
this.graphics.endFill();
this.graphics.beginFill(c);
this.graphics.drawCircle(lerp(r, (r - r2), t), lerp(r, (r + r2), t), lerp(r, r2, t));
this.graphics.endFill();
this.graphics.beginFill(c);
this.graphics.drawCircle(lerp(r, (r + r2), t), lerp(r, (r - r2), t), lerp(r, r2, t));
this.graphics.endFill();
this.graphics.beginFill(c);
this.graphics.drawCircle(lerp(r, (r + r2), t), lerp(r, (r + r2), t), lerp(r, r2, t));
this.graphics.endFill();
}
private function lerp(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (((_arg1 * (1 - _arg3)) + (_arg2 * _arg3)));
}
private function handleMouseOver(_arg1:MouseEvent){
addEventListener(Event.ENTER_FRAME, handleFrame);
this.parent.removeChild(hit);
this.graphics.clear();
hit.graphics.clear();
}
}
}//package ae
Section 2
//CircleSplit (ae.CircleSplit)
package ae {
import flash.display.*;
import flash.geom.*;
public class CircleSplit extends MovieClip {
protected var bgHolder:Sprite;
public static var bg:Bitmap;
private static var bgb:BitmapData;
public function CircleSplit(){
bgb = new BitmapData(0x0400, 0x0400, false, 0);
bg = new Bitmap(bgb);
bg.smoothing = true;
bgHolder = new Sprite();
addChild(bgHolder);
bgHolder.addChild(bg);
createCircle(0x0400, 0, 0);
}
public function createCircle(_arg1:Number, _arg2:Number, _arg3:Number){
var _local4:*;
var _local5:Circle;
_local4 = 0x0400;
_local5 = new Circle(_local4, _local4);
_local5.x = ((0x0400 - _local4) / 2);
_local5.y = ((0x0400 - _local4) / 2);
this.addChild(_local5);
drawCircle(_local5);
_local5.addHit();
}
public function drawCircle(_arg1:Circle){
var _local2:Sprite;
var _local3:Matrix;
_local2 = new Sprite();
_local2.graphics.beginFill(_arg1.c);
_local2.graphics.drawCircle(_arg1.r, _arg1.r, _arg1.r);
_local2.graphics.endFill();
_local3 = new Matrix();
_local3.tx = _arg1.x;
_local3.ty = _arg1.y;
bg.bitmapData.draw(_local2, _local3);
}
public function blankBG(_arg1:Circle){
var _local2:Sprite;
var _local3:Matrix;
_local2 = new Sprite();
_local2.graphics.beginFill(0);
_local2.graphics.drawRect(0, 0, _arg1.w, _arg1.w);
_local2.graphics.endFill();
_local3 = new Matrix();
_local3.tx = _arg1.x;
_local3.ty = _arg1.y;
bg.bitmapData.draw(_local2, _local3);
}
public function addCircles(_arg1:Array){
var _local2:Object;
var _local3:Object;
var _local4:Circle;
if (_arg1[0].w > 4){
for each (_local3 in _arg1) {
_local4 = (_local3 as Circle);
addChild(_local4);
_local4.addHit();
};
};
for each (_local2 in _arg1) {
drawCircle((_local2 as Circle));
};
}
}
}//package ae