Section 1
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "2.0.1.0";
}
}//package mx.core
Section 2
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 3
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 4
//ABowmanLink (ABowmanLink)
package {
import flash.events.*;
import flash.display.*;
import flash.text.*;
import flash.net.*;
class ABowmanLink extends Sprite {
var aBowman:Sprite;
var mask_minWidth:Number;// = 20
var aBowmanMask:Sprite;
private var euph:Class;
var aBowmanCon:Sprite;
var mask_width:Number;
var mask_maxWidth:Number;// = 80
var mask_height:Number;// = 40
function ABowmanLink(_arg1:String, _arg2:Number){
euph = ABowmanLink_euph;
mask_maxWidth = 80;
mask_minWidth = 20;
mask_height = 40;
mask_width = mask_minWidth;
super();
init(_arg1, _arg2);
}
function init(_arg1:String, _arg2:Number){
var request:URLRequest;
var format:TextFormat;
var field:TextField;
var expand:Function;
var shrink:Function;
var url = _arg1;
var color = _arg2;
expand = function (){
mask_width = (mask_width + ((mask_maxWidth - mask_width) * 0.2));
trace("expand");
if ((mask_maxWidth - mask_width) < 0.1){
aBowman.removeEventListener(Event.ENTER_FRAME, expand);
trace("expand removed");
};
renderMask();
};
shrink = function (){
mask_width = (mask_width - ((mask_width - mask_minWidth) * 0.2));
trace("shrink");
if ((mask_width - mask_minWidth) < 0.1){
aBowman.removeEventListener(Event.ENTER_FRAME, shrink);
trace("shrink removed");
};
renderMask();
};
request = new URLRequest(url);
format = new TextFormat();
format.font = "Pupcat";
format.color = color;
format.size = 18;
field = new TextField();
field.embedFonts = true;
field.selectable = false;
field.antiAliasType = AntiAliasType.ADVANCED;
field.height = 18;
field.defaultTextFormat = format;
field.text = "aBowman";
aBowmanCon = new Sprite();
aBowman = new Sprite();
addChild(aBowman);
aBowman.addChild(field);
aBowmanMask = new Sprite();
addChild(aBowmanMask);
aBowman.addEventListener(MouseEvent.ROLL_OVER, function (){
trace("expand added");
aBowman.removeEventListener(Event.ENTER_FRAME, shrink);
aBowman.addEventListener(Event.ENTER_FRAME, expand);
});
aBowman.addEventListener(MouseEvent.ROLL_OUT, function (){
trace("shrink added");
aBowman.removeEventListener(Event.ENTER_FRAME, expand);
aBowman.addEventListener(Event.ENTER_FRAME, shrink);
});
aBowman.buttonMode = true;
aBowman.mouseChildren = false;
aBowman.addEventListener(MouseEvent.MOUSE_UP, function (){
navigateToURL(request, "_top");
});
renderMask();
aBowman.mask = aBowmanMask;
}
function renderMask(){
aBowmanMask.graphics.clear();
aBowmanMask.graphics.beginFill(0);
aBowmanMask.graphics.drawRect(0, 0, mask_width, mask_height);
aBowmanMask.graphics.endFill();
}
}
}//package
Section 5
//ABowmanLink_euph (ABowmanLink_euph)
package {
import mx.core.*;
public class ABowmanLink_euph extends FontAsset {
}
}//package
Section 6
//Application (Application)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class Application extends Sprite {
private var loader:Loader;
private var background:Shape;
private var rings:Array;
private var numRings:Number;// = 8
private var getMouseAng:Boolean;// = false
private var margin:Number;// = -20
private var backgroundColor:Number;// = 0xFFFFFF
public function Application(){
numRings = 8;
getMouseAng = false;
margin = -20;
backgroundColor = 0xFFFFFF;
super();
addEventListener(Event.ENTER_FRAME, getStageDimensions);
}
public function init(){
var _local1:Number;
var _local2:String;
var _local3:Object;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:ABowmanLink;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
_local1 = 0;
_local2 = "";
_local3 = root.loaderInfo.parameters;
background = new Shape();
addChild(background);
if (_local3.up_backgroundColor != undefined){
backgroundColor = parseInt(("0x" + _local3.up_backgroundColor));
};
if (((!((_local3.up_backgroundImage == undefined))) && (!((_local3.up_backgroundImage == "http://"))))){
_local2 = _local3.up_backgroundImage;
};
if (_local3.up_backgroundImageCached != undefined){
_local2 = _local3.up_backgroundImageCached;
};
if (_local2 != ""){
loadImage(_local2);
};
if (_local3.up_ringColor != undefined){
_local1 = parseInt(("0x" + _local3.up_ringColor));
};
if (_local3.up_numRings != undefined){
numRings = parseInt(_local3.up_numRings);
};
rings = new Array();
_local8 = 0;
while (_local8 < numRings) {
_local4 = (Math.random() * stage.stageWidth);
_local5 = (Math.random() * stage.stageHeight);
_local6 = (3 + (Math.random() * 5));
_local7 = (3 + (Math.random() * 8));
rings[_local8] = new Ring({x:_local4, y:_local5, size:_local6, speed:_local7, color:_local1});
addChild(rings[_local8]);
_local8++;
};
addEventListener(Event.ENTER_FRAME, update);
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveListener);
stage.addEventListener(Event.RESIZE, resize);
_local9 = new ABowmanLink("http://abowman.com/google-modules/rings/", Draw.calcGradient(backgroundColor, 75));
addChild(_local9);
drawBackground();
}
private function loadImage(_arg1:String){
var initListener:Function;
var imageURL = _arg1;
trace(imageURL);
initListener = function (){
addChildAt(loader.content, 1);
loader.content.x = Math.max(((stage.stageWidth / 2) - (loader.content.width / 2)), 0);
loader.content.y = Math.max(((stage.stageHeight / 2) - (loader.content.height / 2)), 0);
trace(stage.stageWidth);
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, initListener);
loader.load(new URLRequest(imageURL));
}
public function getStageDimensions(_arg1:Event){
if (stage.stageWidth > 0){
removeEventListener(Event.ENTER_FRAME, getStageDimensions);
init();
};
}
public function angleToMouse(_arg1:Number, _arg2:Number):Number{
return ((Math.atan2((mouseY - _arg2), (mouseX - _arg1)) / (Math.PI / 180)));
}
private function drawBackground(){
background.graphics.clear();
background.graphics.beginFill(backgroundColor);
background.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
background.graphics.endFill();
}
private function resize(_arg1:Event=null){
if (loader != null){
loader.content.x = Math.max(((stage.stageWidth / 2) - (loader.content.width / 2)), 0);
loader.content.y = Math.max(((stage.stageHeight / 2) - (loader.content.height / 2)), 0);
};
drawBackground();
}
public function update(_arg1:Event){
var _local2:Ring;
var _local3:*;
var _local4:Number;
if (stage.stageHeight > 1){
_local3 = 0;
for (;_local3 < numRings;if (getMouseAng){
_local4 = angleToMouse(_local2.x, _local2.y);
if (_local2.speed > 0){
_local2.ang = (_local4 + 5);
} else {
_local2.ang = (_local4 - 5);
};
}, if (Math.abs(_local2.speed) > _local2.maxSpeed){
_local2.speed = (_local2.speed * 0.7);
}, _local2.update(), keepOnScreen(rings[_local3]), _local2.render(), _local3++) {
_local2 = Ring(rings[_local3]);
if (int((Math.random() * 20)) == 9){
if (Math.round(Math.random())){
_local2.acc = (_local2.acc * -1);
//unresolved jump
};
};
if (int((Math.random() * 20)) == 9){
if (Math.round(Math.random())){
_local2.angSpeed = (_local2.angSpeed * -1);
continue;
};
};
};
};
}
private function keepOnScreen(_arg1:Ring){
if (_arg1.x > (stage.stageWidth - margin)){
_arg1.x = margin;
} else {
if (_arg1.x < margin){
_arg1.x = (stage.stageWidth - margin);
};
};
if (_arg1.y > (stage.stageHeight - margin)){
_arg1.y = margin;
} else {
if (_arg1.y < margin){
_arg1.y = (stage.stageHeight - margin);
};
};
}
private function mouseLeaveListener(_arg1:Event):void{
getMouseAng = false;
}
private function mouseMoveListener(_arg1:MouseEvent):void{
if (!getMouseAng){
getMouseAng = true;
};
}
}
}//package
Section 7
//Draw (Draw)
package {
import flash.display.*;
class Draw {
static function drawWedge(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number){
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:*;
if (arguments.length < 5){
return;
};
_arg1.moveTo(_arg2, _arg3);
if (_arg7 == undefined){
_arg7 = _arg6;
};
if (Math.abs(_arg5) > 360){
_arg5 = 360;
};
_local13 = Math.ceil((Math.abs(_arg5) / 45));
_local9 = (_arg5 / _local13);
_local10 = (-((_local9 / 180)) * Math.PI);
_local11 = (-((_arg4 / 180)) * Math.PI);
if (_local13 > 0){
_local14 = (_arg2 + (Math.cos(((_arg4 / 180) * Math.PI)) * _arg6));
_local15 = (_arg3 + (Math.sin(((-(_arg4) / 180) * Math.PI)) * _arg7));
_arg1.lineTo(_local14, _local15);
_local20 = 0;
while (_local20 < _local13) {
_local11 = (_local11 + _local10);
_local12 = (_local11 - (_local10 / 2));
_local16 = (_arg2 + (Math.cos(_local11) * _arg6));
_local17 = (_arg3 + (Math.sin(_local11) * _arg7));
_local18 = (_arg2 + (Math.cos(_local12) * (_arg6 / Math.cos((_local10 / 2)))));
_local19 = (_arg3 + (Math.sin(_local12) * (_arg7 / Math.cos((_local10 / 2)))));
_arg1.curveTo(_local18, _local19, _local16, _local17);
_local20++;
};
_arg1.lineTo(_arg2, _arg3);
};
}
static function RGBToHex(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number;
_local4 = (((_arg1 << 16) ^ (_arg2 << 8)) ^ _arg3);
return (_local4);
}
static function calcGradient(_arg1:Number, _arg2:Number):Number{
var _local3:Object;
var _local4:Object;
_local3 = hexToRGB(_arg1);
_local4 = RGBToHLS(_local3.r, _local3.g, _local3.b);
RGBToHLS(_local3.r, _local3.g, _local3.b).l = (_local4.l * (_arg2 / 100));
if (_local4.l > 240){
_local4.l = 240;
};
if (_local4.l < 0){
_local4.l = 0;
};
_local3 = HLSToRGB(_local4.h, _local4.l, _local4.s);
return (RGBToHex(_local3.r, _local3.g, _local3.b));
}
static function drawOval(_arg1:Graphics, _arg2, _arg3, _arg4, _arg5){
_arg1.moveTo((_arg2 + _arg4), _arg3);
_arg1.curveTo((_arg4 + _arg2), ((0.4142 * _arg5) + _arg3), ((0.7071 * _arg4) + _arg2), ((0.7071 * _arg5) + _arg3));
_arg1.curveTo(((0.4142 * _arg4) + _arg2), (_arg5 + _arg3), _arg2, (_arg5 + _arg3));
_arg1.curveTo(((-0.4142 * _arg4) + _arg2), (_arg5 + _arg3), ((-0.7071 * _arg4) + _arg2), ((0.7071 * _arg5) + _arg3));
_arg1.curveTo((-(_arg4) + _arg2), ((0.4142 * _arg5) + _arg3), (-(_arg4) + _arg2), _arg3);
_arg1.curveTo((-(_arg4) + _arg2), ((-0.4142 * _arg5) + _arg3), ((-0.7071 * _arg4) + _arg2), ((-0.7071 * _arg5) + _arg3));
_arg1.curveTo(((-0.4142 * _arg4) + _arg2), (-(_arg5) + _arg3), _arg2, (-(_arg5) + _arg3));
_arg1.curveTo(((0.4142 * _arg4) + _arg2), (-(_arg5) + _arg3), ((0.7071 * _arg4) + _arg2), ((-0.7071 * _arg5) + _arg3));
_arg1.curveTo((_arg4 + _arg2), ((-0.4142 * _arg5) + _arg3), (_arg4 + _arg2), _arg3);
}
static function hexToRGB(_arg1:Number):Object{
var _local2:Object;
var _local3:Number;
_local2 = new Object();
_local2.r = (_arg1 >> 16);
_local3 = (_arg1 ^ (_local2.r << 16));
_local2.g = (_local3 >> 8);
_local2.b = (_local3 ^ (_local2.g << 8));
return (_local2);
}
static function drawRect(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number){
_arg1.moveTo(_arg2, _arg3);
_arg1.lineTo((_arg2 + _arg4), _arg3);
_arg1.lineTo((_arg2 + _arg4), (_arg3 + _arg5));
_arg1.lineTo(_arg2, (_arg3 + _arg5));
_arg1.lineTo(_arg2, _arg3);
}
static function HLSToRGB(_arg1:Number, _arg2:Number, _arg3:Number):Object{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:*;
var _local8:*;
var _local9:*;
var _local10:*;
var _local11:*;
if (_arg3 == 0){
_local6 = Math.round(((_arg2 / 240) * 0xFF));
_local5 = _local6;
_local4 = _local5;
} else {
_arg1 = (_arg1 / 240);
_arg2 = (_arg2 / 240);
_arg3 = (_arg3 / 240);
_local9 = ((_arg2)<0.5) ? (_arg2 * (_arg3 + 1)) : ((_arg2 + _arg3) - (_arg2 * _arg3));
_local10 = ((_arg2 * 2) - _local9);
_local11 = 0;
while (_local11 < 3) {
switch (_local11){
case 0:
_local8 = (_arg1 + (1 / 3));
break;
case 1:
_local8 = _arg1;
break;
case 2:
_local8 = (_arg1 - (1 / 3));
break;
};
if (_local8 < 0){
_local8++;
} else {
if (_local8 > 1){
_local8--;
};
};
if ((_local8 * 6) < 1){
_local7 = (_local10 + (((_local9 - _local10) * 6) * _local8));
} else {
if ((_local8 * 2) < 1){
_local7 = _local9;
} else {
if ((_local8 * 3) < 2){
_local7 = (_local10 + (((_local9 - _local10) * ((2 / 3) - _local8)) * 6));
} else {
_local7 = _local10;
};
};
};
switch (_local11){
case 0:
_local4 = Math.round((_local7 * 0xFF));
break;
case 1:
_local5 = Math.round((_local7 * 0xFF));
break;
case 2:
_local6 = Math.round((_local7 * 0xFF));
break;
};
_local11++;
};
};
return ({r:_local4, g:_local5, b:_local6});
}
static function drawArc(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):Object{
var _local9:Number;
var _local10:Number;
var _local11:Number;
var _local12:Number;
var _local13:Number;
var _local14:Number;
var _local15:Number;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local20:*;
if (arguments.length < 5){
return (null);
};
if (_arg7 == undefined){
_arg7 = _arg4;
};
if (Math.abs(_arg5) > 360){
_arg5 = 360;
};
_local13 = Math.ceil((Math.abs(_arg5) / 45));
_local9 = (_arg5 / _local13);
_local10 = (-((_local9 / 180)) * Math.PI);
_local11 = (-((_arg6 / 180)) * Math.PI);
_local14 = (_arg2 - (Math.cos(_local11) * _arg4));
_local15 = (_arg3 - (Math.sin(_local11) * _arg7));
if (_local13 > 0){
_local20 = 0;
while (_local20 < _local13) {
_local11 = (_local11 + _local10);
_local12 = (_local11 - (_local10 / 2));
_local16 = (_local14 + (Math.cos(_local11) * _arg4));
_local17 = (_local15 + (Math.sin(_local11) * _arg7));
_local18 = (_local14 + (Math.cos(_local12) * (_arg4 / Math.cos((_local10 / 2)))));
_local19 = (_local15 + (Math.sin(_local12) * (_arg7 / Math.cos((_local10 / 2)))));
_arg1.curveTo(_local18, _local19, _local16, _local17);
_local20++;
};
};
return ({x:_local16, y:_local17});
}
static function RGBToHLS(_arg1, _arg2, _arg3):Object{
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
_local7 = (Math.max(Math.max(_arg1, _arg2), _arg3) / 0xFF);
_local8 = (Math.min(Math.min(_arg1, _arg2), _arg3) / 0xFF);
_local9 = (_local7 - _local8);
_local5 = ((_local7 + _local8) / 2);
_local6 = ((_local7)==_local8) ? 0 : ((_local5)<=0.5) ? ((_local9 / _local5) / 2) : (_local9 / (2 - (_local5 * 2)));
if ((_arg1 / 0xFF) == _local7){
_local4 = (((_arg2 - _arg3) / _local9) / 0xFF);
} else {
if ((_arg2 / 0xFF) == _local7){
_local4 = (2 + (((_arg3 - _arg1) / _local9) / 0xFF));
} else {
if ((_arg3 / 0xFF) == _local7){
_local4 = (4 + (((_arg1 - _arg2) / _local9) / 0xFF));
};
};
};
_local4 = (_local4 * 40);
if (_local4 < 0){
_local4 = (_local4 + 240);
};
_local4 = Math.round(_local4);
return ({h:(isNaN(_local4)) ? 0 : _local4, l:Math.round((_local5 * 240)), s:Math.round((_local6 * 240))});
}
}
}//package
Section 8
//Ring (Ring)
package {
import flash.filters.*;
import flash.display.*;
public class Ring extends MovieClip {
private var ring:Shape;
private var shadow:Sprite;
public var maxSpeed:Number;
public var speed:Number;// = 0
private var color:Number;
private var h:Number;
public var acc:Number;// = 1
public var angSpeed:Number;// = 2
private var w:Number;
public var ang:Number;// = 0
public function Ring(_arg1:Object){
ang = 0;
speed = 0;
acc = 1;
angSpeed = 2;
super();
ring = new Shape();
shadow = new Sprite();
addChild(shadow);
addChild(ring);
color = _arg1.color;
x = _arg1.x;
y = _arg1.y;
h = _arg1.size;
w = (h * 1.2);
maxSpeed = _arg1.speed;
shadow.rotation = 90;
shadow.x = (-(w) * 2);
shadow.y = (h / 2);
update();
render();
setDropShadow(shadow, 8);
}
private function renderShadow(){
var _local1:Number;
var _local2:Number;
_local1 = (ang - 90);
_local2 = (((Math.abs(Math.sin((ang * (Math.PI / 180)))) * h) / 4) + (h / 4));
shadow.graphics.clear();
shadow.graphics.lineStyle(2, 0);
drawOval(shadow.graphics, _local2, 0, ((Math.sin((_local1 * (Math.PI / 180))) * h) / 1.5), (w * 2));
}
public function render(){
renderShadow();
renderRing();
}
function drawOval(_arg1:Graphics, _arg2, _arg3, _arg4, _arg5){
_arg1.drawEllipse((_arg2 - _arg4), (_arg3 - _arg5), (_arg4 * 2), (_arg5 * 2));
}
public function update(){
var _local1:Number;
var _local2:Number;
speed = (speed + acc);
ang = (ang + angSpeed);
_local1 = (Math.sin((ang * (Math.PI / 180))) * speed);
_local2 = ((Math.cos((ang * (Math.PI / 180))) * speed) * -1);
x = (x + _local1);
y = (y + _local2);
ring.rotation = ang;
}
private function renderRing(){
ring.graphics.clear();
ring.graphics.lineStyle(1, color, 100);
drawOval(ring.graphics, 0, 0, (Math.sin((ang * (Math.PI / 180))) * h), w);
}
private function setDropShadow(_arg1:Sprite, _arg2:Number){
var _local3:DropShadowFilter;
var _local4:Array;
_local3 = new DropShadowFilter();
_local3.color = 0;
_local3.blurX = 3;
_local3.blurY = 3;
_local3.angle = 0;
_local3.alpha = 0.08;
_local3.distance = 0;
_local3.hideObject = true;
_local4 = [_local3];
_arg1.filters = _local4;
}
private function getBitmapFilter():BitmapFilter{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Boolean;
var _local9:Boolean;
var _local10:Number;
_local1 = 0;
_local2 = 45;
_local3 = 0.8;
_local4 = 8;
_local5 = 8;
_local6 = 15;
_local7 = 0.65;
_local8 = false;
_local9 = false;
_local10 = BitmapFilterQuality.HIGH;
return (new DropShadowFilter(_local6, _local2, _local1, _local3, _local4, _local5, _local7, _local10, _local8, _local9));
}
}
}//package