Section 1
//GJLoader (com.gj.utils.comms.GJLoader)
package com.gj.utils.comms {
import flash.events.*;
import flash.display.*;
import com.gj.utils.misc.*;
import flash.net.*;
import flash.system.*;
import flash.utils.*;
public class GJLoader extends EventDispatcher {
public var stream:URLStream;
private var _timeOut:Number;
public var loaded:Boolean;
private var _retries:int;
private var _xmlCheck:Boolean;
public var loader:Loader;
private var _lc:LoaderContext;
private var _currentRequestIndx:int;
private var _requests:Array;
private var _timeLastProgress:int;
private var _timer:Timer;
private var _startTime:Number;
public var urlLoader:URLLoader;
private var _retryCount:int;
private var _name:String;
private var _local:Boolean;
private var _currentRequest:URLRequest;
public static const EVENT_FAIL:String = "eF";
public function GJLoader(_arg1:String, _arg2:Number=-1, _arg3:int=-1){
_name = _arg1;
_timeOut = _arg2;
_retryCount = (_retries = _arg3);
loaded = false;
_currentRequestIndx = 0;
_timeLastProgress = 0;
_timer = new Timer(30);
}
private function onSecurityError(_arg1:SecurityErrorEvent):void{
GJLog.log(0xAA0000, _name, _arg1.type);
retryLoad();
}
private function checkMalformedXML():Boolean{
if (!_xmlCheck){
return (true);
};
try {
new XML(urlLoader.data);
} catch(e:Error) {
GJLog.log(0xAA0000, _name, "XMLFAIL", {xml:urlLoader.data});
return (false);
};
GJLog.log(0, _name, "XMLPass", {xml:urlLoader.data});
return (true);
}
private function initHandler(_arg1:Event):void{
GJLog.log(0, _name, _arg1.type);
}
private function removeListeners(_arg1:IEventDispatcher):void{
_arg1.removeEventListener(Event.COMPLETE, onComplete);
_arg1.removeEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
_arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
_arg1.removeEventListener(Event.OPEN, onOpen);
_arg1.removeEventListener(ProgressEvent.PROGRESS, onProgress);
_arg1.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
_arg1.removeEventListener(Event.INIT, initHandler);
}
private function addListeners(_arg1:IEventDispatcher):void{
_arg1.addEventListener(Event.COMPLETE, onComplete);
_arg1.addEventListener(HTTPStatusEvent.HTTP_STATUS, onHTTPStatus);
_arg1.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
_arg1.addEventListener(Event.OPEN, onOpen);
_arg1.addEventListener(ProgressEvent.PROGRESS, onProgress);
_arg1.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
_arg1.addEventListener(Event.INIT, initHandler);
}
private function tick(_arg1:TimerEvent):void{
var _local2:Number;
var _local3:Number;
_local2 = getTimer();
_local3 = (_local2 - _startTime);
if (_local3 >= _timeOut){
GJLog.log(0xAA0000, _name, "timeOut", {timeOut:_timeOut});
retryLoad();
};
}
private function loadURL(_arg1:URLRequest):void{
var r = _arg1;
if (urlLoader){
try {
urlLoader.close();
} catch(e:Error) {
};
_timer.stop();
} else {
urlLoader = new URLLoader();
addListeners(urlLoader);
};
urlLoader.load(r);
startTiming();
loaded = false;
GJLog.log(0, _name, "loadURL", {method:"URLLoader", url:r.url, args:r.data});
}
private function retryLoad():void{
stopAll();
if (_retries == 0){
_currentRequestIndx++;
if (_currentRequestIndx == _requests.length){
loadFailed();
return;
};
_retries = _retryCount;
} else {
if (_retries > 0){
_retries--;
GJLog.log(0, _name, "retryLoad", {retriesRemain:_retries});
};
};
if (urlLoader){
loadURL(_requests[_currentRequestIndx]);
} else {
if (loader){
loadRequest(_requests[_currentRequestIndx]);
} else {
if (stream){
streamRequest(_requests[_currentRequestIndx]);
};
};
};
}
private function onComplete(_arg1:Event):void{
if (((_xmlCheck) && (!(checkMalformedXML())))){
retryLoad();
return;
};
GJLog.log(0xAA00, _name, _arg1.type);
loaded = true;
dispatchEvent(new Event(Event.COMPLETE));
stopAll();
}
private function onHTTPStatus(_arg1:HTTPStatusEvent):void{
GJLog.log(0, _name, _arg1.type, {status:_arg1.status});
}
private function onProgress(_arg1:ProgressEvent):void{
var _local2:int;
var _local3:int;
_timer.stop();
_local2 = getTimer();
_local3 = (_local2 - _timeLastProgress);
if ((((_local3 > 200)) || ((_arg1.bytesLoaded == _arg1.bytesTotal)))){
GJLog.log(0, _name, _arg1.type, {bytesLoaded:_arg1.bytesLoaded, bytesTotal:_arg1.bytesTotal});
_timeLastProgress = _local2;
};
dispatchEvent(_arg1);
}
public function stopAll():void{
try {
_timer.stop();
_timer.reset();
if (_timer.hasEventListener(TimerEvent.TIMER)){
_timer.removeEventListener(TimerEvent.TIMER, tick);
};
if (urlLoader){
urlLoader.close();
} else {
loader.close();
};
} catch(e:Error) {
};
}
public function loadFailed():void{
GJLog.log(0xAA0000, _name, "FAIL");
stopAll();
dispatchEvent(new Event(EVENT_FAIL));
}
private function loadRequest(_arg1:URLRequest):void{
var r = _arg1;
if (loader){
try {
loader.close();
} catch(e:Error) {
};
_timer.stop();
} else {
loader = new Loader();
addListeners(loader.contentLoaderInfo);
};
loader.load(r, _lc);
startTiming();
loaded = false;
GJLog.log(0, _name, "load", {method:"Loader", url:r.url, args:r.data});
}
public function streamURL(_arg1:Array, _arg2:LoaderContext=null):void{
_requests = _arg1;
_lc = _arg2;
streamRequest(_requests[0]);
}
private function onIOError(_arg1:IOErrorEvent):void{
GJLog.log(0xAA0000, _name, _arg1.type, {error:_arg1.text});
retryLoad();
}
private function startTiming():void{
if (_timeOut > 0){
_timer.start();
if (!_timer.hasEventListener(TimerEvent.TIMER)){
_timer.addEventListener(TimerEvent.TIMER, tick);
};
_startTime = getTimer();
};
}
public function get currentRequest():URLRequest{
return (_currentRequest);
}
public function URLLoad(_arg1:Array, _arg2:Boolean=false):void{
_requests = _arg1;
_xmlCheck = _arg2;
loadURL(_requests[0]);
}
private function onOpen(_arg1:Event):void{
GJLog.log(0, _name, _arg1.type);
}
public function load(_arg1:Array, _arg2:LoaderContext=null):void{
_requests = _arg1;
_lc = _arg2;
loadRequest(_requests[0]);
}
private function streamRequest(_arg1:URLRequest):void{
var r = _arg1;
if (stream){
try {
stream.close();
} catch(e:Error) {
};
_timer.stop();
} else {
stream = new URLStream();
addListeners(stream);
};
stream.load(r);
startTiming();
loaded = false;
GJLog.log(0, _name, "stream", {method:"URLStream", url:r.url, args:r.data});
}
public function get currentRequestIndx():int{
return (_currentRequestIndx);
}
}
}//package com.gj.utils.comms
Section 2
//GraphicsUtils (com.gj.utils.graphics.GraphicsUtils)
package com.gj.utils.graphics {
import flash.display.*;
import flash.geom.*;
public class GraphicsUtils {
public static function drawRect(_arg1:Graphics, _arg2:int, _arg3:int, _arg4:int):void{
_arg1.beginFill(_arg2);
_arg1.drawRect((-(_arg3) / 2), (-(_arg4) / 2), _arg3, _arg4);
_arg1.endFill();
}
public static function HEXtoRGB(_arg1:uint):Object{
return ({r:(_arg1 >> 16), g:((_arg1 >> 8) & 0xFF), b:(_arg1 & 0xFF)});
}
public static function RGBtoHEX(_arg1:uint, _arg2:uint, _arg3:uint):uint{
var _local4:String;
var _local5:String;
var _local6:String;
var _local7:String;
_local4 = new String("0x");
_local5 = _arg1.toString(16);
_local4 = (_local4 + ((_local5.length)<2) ? ("0" + _local5) : _local5);
_local6 = _arg2.toString(16);
_local4 = (_local4 + ((_local6.length)<2) ? ("0" + _local6) : _local6);
_local7 = _arg3.toString(16);
_local4 = (_local4 + ((_local7.length)<2) ? ("0" + _local7) : _local7);
return (Number(_local4));
}
public static function drawRoundRect(_arg1:Graphics, _arg2:int, _arg3:int, _arg4:int, _arg5:int):void{
_arg1.beginFill(_arg2);
_arg1.drawRoundRect((-(_arg3) / 2), (-(_arg4) / 2), _arg3, _arg4, _arg5);
_arg1.endFill();
}
public static function drawGradientPaddedBox(_arg1:Graphics, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):void{
var _local9:Matrix;
_local9 = new Matrix();
_local9.createGradientBox(_arg2, _arg3, (Math.PI / 2), _arg4, _arg5);
_arg1.beginGradientFill(GradientType.LINEAR, [_arg6, _arg7], [1, 1], [0, 0xFF], _local9);
_arg1.drawRoundRect((_arg4 - (_arg2 / 2)), _arg5, _arg2, _arg3, _arg8);
_arg1.endFill();
}
}
}//package com.gj.utils.graphics
Section 3
//GJLog (com.gj.utils.misc.GJLog)
package com.gj.utils.misc {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import com.gj.utils.comms.*;
import flash.text.*;
import flash.utils.*;
import com.gj.utils.graphics.*;
import flash.filters.*;
import flash.geom.*;
public class GJLog extends Sprite {
private var _logHeight:int;
private var _tf:TextField;
public var server:String;
private var _logBar:Sprite;
public var key:String;
private var _logStr:String;
private var _logBG:Sprite;
private var _log:Array;
public static const GJLOG:String = "onGJLog";
public static const GJDATAFormat:TextFormat = new TextFormat(FONT, 12, 0xAA00AA);
public static const CLIENTFormat:TextFormat = new TextFormat(FONT, 12, 0xAAAA00);
public static const FONT:String = "Courier New";
private static var _instance:GJLog;
public function GJLog(){
if (_instance){
throw (new Error("This is a singleton, that means ONLY ONE!"));
};
_instance = this;
server = "";
key = "";
_logStr = "";
_log = [];
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, init);
_logHeight = (stage.stageHeight / 3);
_tf = new TextField();
_tf.width = stage.stageWidth;
_tf.height = _logHeight;
_tf.text = _logStr;
_tf.scrollV = int.MAX_VALUE;
_logBG = new Sprite();
_logBG.addChild(_tf);
addChild(_logBG);
_logBar = new Sprite();
GraphicsUtils.drawGradientPaddedBox(_logBar.graphics, stage.stageWidth, 10, (stage.stageWidth / 2), 0, 0xEEEEEE, 0xBBBBBB, 0);
_logBar.graphics.lineStyle(1, 0xAAAAAA);
_logBar.graphics.moveTo(((stage.stageWidth / 2) - 5), 3);
_logBar.graphics.lineTo(((stage.stageWidth / 2) + 5), 3);
_logBar.graphics.moveTo(((stage.stageWidth / 2) - 5), 5);
_logBar.graphics.lineTo(((stage.stageWidth / 2) + 5), 5);
_logBar.graphics.moveTo(((stage.stageWidth / 2) - 5), 7);
_logBar.graphics.lineTo(((stage.stageWidth / 2) + 5), 7);
_logBar.buttonMode = true;
_logBar.addEventListener(MouseEvent.MOUSE_DOWN, startDraggingBar);
_logBar.filters = [new DropShadowFilter(3, 90, 0, 0.4)];
_logBar.y = _logHeight;
addChild(_logBar);
redrawLog();
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressed, false, 0, true);
}
public function get log():Array{
return (_log);
}
private function startDraggingBar(_arg1:MouseEvent):void{
_logBar.startDrag(false, new Rectangle(0, 0, 0, stage.stageHeight));
stage.addEventListener(MouseEvent.MOUSE_MOVE, redrawLog);
stage.addEventListener(MouseEvent.MOUSE_UP, stopDraggingBar);
}
public function set log(_arg1:Array):void{
_log = _arg1;
}
private function keyPressed(_arg1:KeyboardEvent):void{
if (((((_arg1.ctrlKey) && (_arg1.altKey))) && ((_arg1.keyCode == 186)))){
visible = !(visible);
};
}
private function redrawLog(_arg1:Event=null):void{
_logHeight = _logBar.y;
_tf.height = _logHeight;
_logBG.graphics.clear();
GraphicsUtils.drawGradientPaddedBox(_logBG.graphics, stage.stageWidth, _logHeight, (stage.stageWidth / 2), 0, 0xFFFFFF, 0xEEEEEE, 0);
}
private function stopDraggingBar(_arg1:MouseEvent):void{
_logBar.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_MOVE, redrawLog);
stage.removeEventListener(MouseEvent.MOUSE_UP, stopDraggingBar);
}
private static function fixString(_arg1:String):String{
var _local2:String;
var _local3:int;
var _local4:String;
_local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local4 = _arg1.charAt(_local3);
if (_local4 == "\n"){
} else {
if (_local4 == "\r"){
} else {
if (_local4 == "\t"){
} else {
_local2 = (_local2 + _local4);
};
};
};
_local3++;
};
return (_local2);
}
public static function logAdv(_arg1:Object, ... _args):void{
var _local3:int;
var _local4:String;
var _local5:String;
var _local6:String;
var _local7:int;
var _local8:int;
var _local9:TextFormat;
_arg1.c = ((_arg1.c) || (0));
_arg1.w = ((_arg1.w) || ("GJDATA"));
_arg1.p = ((_arg1.p == undefined)) ? true : _arg1.p;
_local5 = (((_arg1.w + "@") + getTimer()) + ":-");
_local4 = (_local5 + "");
if (_arg1.p){
_local3 = 0;
while (_local3 < _args.length) {
_local4 = (_local4 + (" " + GJObjectUtils.varToString(_args[_local3])));
_local3++;
};
} else {
_local3 = 0;
while (_local3 < _args.length) {
_local4 = (_local4 + (" " + _args[_local3]));
_local3++;
};
};
_local4 = fixString(_local4);
trace(_local4);
I._log.push(_local4);
if (I._tf){
_local6 = (_local4 + "\n");
I._logStr = (I._logStr + _local6);
I._tf.appendText(_local6);
I._tf.scrollV = int.MAX_VALUE;
_local7 = (I._logStr.length - _local6.length);
_local8 = (_local7 + _local5.length);
_local9 = ((_arg1.w == "GJDATA")) ? GJDATAFormat : CLIENTFormat;
I._tf.setTextFormat(_local9, _local7, _local8);
_local7 = _local8;
_local8 = I._tf.length;
_local9 = new TextFormat(FONT, 12, _arg1.c, !((_arg1.c == 0)));
I._tf.setTextFormat(_local9, _local7, _local8);
};
}
public static function get I():GJLog{
if (!_instance){
new (GJLog);
};
return (_instance);
}
public static function log(_arg1:int, ... _args):void{
_args.unshift({c:_arg1});
logAdv.apply(null, _args);
}
public static function reportTo(_arg1:String):void{
var r:URLRequest;
var v:URLVariables;
var gj:GJLoader;
var where = _arg1;
r = new URLRequest(where);
v = new URLVariables();
v.report = I._logStr;
v.action = "send";
v.random = Math.random();
r.data = v;
r.method = URLRequestMethod.POST;
gj = new GJLoader("SendReport", -1, 0);
gj.addEventListener(Event.COMPLETE, function (_arg1:Event):void{
navigateToURL(new URLRequest(where));
});
gj.URLLoad([r], true);
}
}
}//package com.gj.utils.misc
Section 4
//GJObjectUtils (com.gj.utils.misc.GJObjectUtils)
package com.gj.utils.misc {
public class GJObjectUtils {
private static const MAX_RECURSE:int = 3;
public static function varToString(_arg1):String{
return (internalVarToString(_arg1, MAX_RECURSE));
}
private static function internalVarToString(_arg1, _arg2:int):String{
var _local3:String;
var _local4:int;
var _local5:String;
if (_arg2 < 0){
return ("Recurse Limit Reached ");
};
_local3 = "";
if ((_arg1 is String)){
_local3 = (_local3 + (("'" + _arg1) + "'"));
} else {
if ((_arg1 is Number)){
_local3 = (_local3 + ("" + _arg1));
} else {
if ((_arg1 is int)){
_local3 = (_local3 + ("" + _arg1));
} else {
if ((_arg1 is uint)){
_local3 = (_local3 + ("" + _arg1));
} else {
if ((_arg1 is Boolean)){
_local3 = (_local3 + ("" + _arg1));
} else {
if ((_arg1 is Array)){
_local3 = (_local3 + "[");
_local4 = 0;
while (_local4 < _arg1.length) {
_local3 = (_local3 + ((_local4 + ":") + internalVarToString(_arg1[_local4], (_arg2 - 1))));
_local4++;
};
if (_local3.charAt((_local3.length - 1)) == " "){
_local3 = _local3.substr(0, (_local3.length - 1));
};
_local3 = (_local3 + "]");
} else {
if ((_arg1 is Object)){
_local3 = (_local3 + "{");
for (_local5 in _arg1) {
_local3 = (_local3 + ((_local5 + ":") + internalVarToString(_arg1[_local5], (_arg2 - 1))));
};
if (_local3.charAt((_local3.length - 1)) == " "){
_local3 = _local3.substr(0, (_local3.length - 1));
};
_local3 = (_local3 + "}");
} else {
_local3 = (_local3 + ("" + _arg1));
};
};
};
};
};
};
};
return (((_arg2 == MAX_RECURSE)) ? _local3 : (_local3 + " "));
}
}
}//package com.gj.utils.misc
Section 5
//WebUtils (com.gj.utils.misc.WebUtils)
package com.gj.utils.misc {
import flash.display.*;
public class WebUtils {
public static function getPassedArgs(_arg1:LoaderInfo):String{
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:String;
_local2 = _arg1.parameters;
_local3 = "";
for (_local4 in _local2) {
_local5 = String(_local2[_local4]);
_local3 = (_local3 + (((("&" + _local4) + "=") + _local5) + ""));
};
return (_local3);
}
public static function dissectURL(_arg1:String):Object{
var _local2:Array;
var _local3:RegExp;
var _local4:Object;
var _local5:Object;
var _local6:int;
_local2 = ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"];
_local3 = /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/;
_local4 = _local3.exec(_arg1);
_local5 = new Object();
_local6 = 0;
while (_local6 < _local2.length) {
_local5[_local2[_local6]] = _local4[_local6];
_local6++;
};
return (_local5);
}
}
}//package com.gj.utils.misc
Section 6
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "2.0.1.0";
public function FlexMovieClip(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 7
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "2.0.1.0";
public function FlexSprite(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 8
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 9
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function set height(_arg1:Number):void;
function get scaleY():Number;
function move(_arg1:Number, _arg2:Number):void;
function get scaleX():Number;
function set mask(_arg1:DisplayObject):void;
function set scaleX(_arg1:Number):void;
function set name(_arg1:String):void;
function set scaleY(_arg1:Number):void;
function get visible():Boolean;
function get measuredWidth():Number;
function set visible(_arg1:Boolean):void;
function get alpha():Number;
function get height():Number;
function get width():Number;
function get parent():DisplayObjectContainer;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set y(_arg1:Number):void;
function get x():Number;
function get y():Number;
function set alpha(_arg1:Number):void;
}
}//package mx.core
Section 10
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function get repeaters():Array;
function get instanceIndices():Array;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 11
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject {
private var _measuredWidth:Number;
private var _measuredHeight:Number;
mx_internal static const VERSION:String = "2.0.1.0";
public function MovieClipAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 12
//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 13
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject {
private var _measuredWidth:Number;
private var _measuredHeight:Number;
mx_internal static const VERSION:String = "2.0.1.0";
public function SpriteAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
}
}//package mx.core
Section 14
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "2.0.1.0";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local3:DisplayObject;
var _local4:String;
var _local5:Array;
_local3 = _arg1;
while (_local3 != null) {
if (((((_local3.parent) && (_local3.stage))) && ((_local3.parent == _local3.stage)))){
break;
};
_local4 = _local3.name;
if ((_local3 is IRepeaterClient)){
_local5 = IRepeaterClient(_local3).instanceIndices;
if (_local5){
_local4 = (_local4 + (("[" + _local5.join("][")) + "]"));
};
};
_local2 = ((_local2 == null)) ? _local4 : ((_local4 + ".") + _local2);
_local3 = _local3.parent;
};
return (_local2);
}
public static function createUniqueName(_arg1:Object):String{
var _local2:String;
var _local3:int;
var _local4:int;
if (!_arg1){
return (null);
};
_local2 = getQualifiedClassName(_arg1);
_local3 = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
_local4 = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 15
//AppSettings (AppSettings)
package {
public class AppSettings {
public static var SERVERS:Array = ["http://app.gamejacket.net/gja/", "http://app1.gamejacket.net/gja/", "http://app2.gamejacket.net/gja/", "http://app3.gamejacket.net/gja/", "http://app4.gamejacket.net/gja/", "http://app5.gamejacket.net/gja/", "http://app6.gamejacket.net/gja/", "http://app7.gamejacket.net/gja/", "http://app8.gamejacket.net/gja/", "http://app9.gamejacket.net/gja/"];
public static var GAME_ID:String = "02178";
public static var GJDATA_FNAME:String = "GJData_v2.swf";
}
}//package
Section 16
//GJDistributable_v2 (GJDistributable_v2)
package {
import flash.events.*;
import flash.display.*;
import com.gj.utils.misc.*;
import flash.net.*;
import flash.system.*;
import com.gj.utils.comms.*;
import flash.filters.*;
public class GJDistributable_v2 extends Sprite {
private var _s:Stage;
private var _localMode:Boolean;
private var _GJData:DisplayObject;
private var Preloader:Class;
private var _GJDataLoader:GJLoader;
private var Retry:Class;
private var BGPattern:Class;
private var _bgLogo:Sprite;
private var _args:String;
private var Logo:Class;
private var _bg:Shape;
private var _preloader:Sprite;
private var _runningInTool:Boolean;
public static var GJDISTRIB_VERSION:String = "2.0.2";
public function GJDistributable_v2(){
Logo = GJDistributable_v2_Logo;
Retry = GJDistributable_v2_Retry;
BGPattern = GJDistributable_v2_BGPattern;
Preloader = GJDistributable_v2_Preloader;
super();
if (stage){
init();
} else {
addEventListener(Event.ADDED_TO_STAGE, init);
};
}
private function dataComplete(_arg1:Event):void{
var s:String;
var e = _arg1;
_GJData = _GJDataLoader.loader.content;
_GJData.addEventListener("setupError", function (_arg1:Event):void{
setupError();
});
_GJData.addEventListener("CleanDistrib", function (_arg1:Event):void{
clean();
});
addChild(_GJData);
if (contains(_preloader)){
removeChild(_preloader);
};
s = (((_localMode) && (_runningInTool))) ? "." : AppSettings.SERVERS[_GJDataLoader.currentRequestIndx];
Object(_GJData).callService("StartGJ", AppSettings.GAME_ID, s, GJDISTRIB_VERSION, {preloader:new Preloader()});
_s = stage;
_s.addEventListener(Event.ENTER_FRAME, frameEntered);
stage.removeEventListener(Event.RESIZE, makeBG);
}
private function init(_arg1:Event=null):void{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(Event.RESIZE, makeBG);
new GJLog();
GJLog.log(0, "here", "test");
makeBG();
Security.allowDomain("*");
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
_localMode = (WebUtils.dissectURL(stage.loaderInfo.url).protocol.toUpperCase() == "FILE");
_args = ("?" + WebUtils.getPassedArgs(stage.loaderInfo));
_runningInTool = loaderInfo.parameters.GJToolMode;
loadGJData();
}
private function clean():void{
graphics.clear();
if (contains(_bg)){
removeChild(_bg);
};
if (contains(_bgLogo)){
removeChild(_bgLogo);
};
if (contains(_preloader)){
removeChild(_preloader);
};
}
private function frameEntered(_arg1:Event):void{
if (!_s.contains(this)){
_s.addChild(this);
} else {
if (_s.getChildIndex(this) != (_s.numChildren - 1)){
_s.addChild(this);
};
};
}
private function setupError(_arg1:Event=null):void{
var _local2:DisplayObject;
_local2 = DisplayObject(new Retry());
_local2.x = (stage.stageWidth / 2);
_local2.y = (stage.stageHeight / 2);
_local2.filters = [new DropShadowFilter(4, 45, 0, 0.7, 5, 5, 0.7, 3)];
_local2.alpha = 0.5;
addChild(DisplayObject(_local2));
navigateToURL(new URLRequest(((("http://www.gamejacket.com/gameFail.html?GJID=" + AppSettings.GAME_ID) + "&host=") + loaderInfo.url)), "_blank");
_preloader.visible = false;
}
private function makeBG(_arg1:Event=null):void{
var _local2:BitmapData;
if (_bg){
removeChild(_bg);
};
if (_bgLogo){
removeChild(_bgLogo);
};
if (_preloader){
removeChild(_preloader);
};
_local2 = new BitmapData(10, 10, false);
_local2.draw(new BGPattern());
_bg = new Shape();
_bg.graphics.beginFill(4080709, 1);
_bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
_bg.graphics.endFill();
_bg.graphics.beginBitmapFill(_local2);
_bg.graphics.drawRoundRect(6, 6, (stage.stageWidth - 12), (stage.stageHeight - 12), 10, 10);
_bg.graphics.endFill();
addChildAt(_bg, 0);
_bgLogo = new Logo();
_bgLogo.x = (stage.stageWidth / 2);
_bgLogo.y = (stage.stageHeight / 2);
_bgLogo.filters = [new DropShadowFilter(4, 45, 0, 0.7, 5, 5, 0.7, 3)];
_bgLogo.alpha = 0.5;
addChildAt(_bgLogo, 1);
_preloader = new Preloader();
_preloader.x = (stage.stageWidth / 2);
_preloader.y = ((stage.stageHeight / 2) + _preloader.height);
_preloader.filters = [new DropShadowFilter(4, 45, 0, 0.7, 5, 5, 0.7, 3)];
_preloader.alpha = 0.5;
addChildAt(_preloader, 2);
}
private function loadGJData():void{
var _local1:Array;
var _local2:int;
_GJDataLoader = new GJLoader("GJDataLoader", 1000, 0);
_GJDataLoader.addEventListener(Event.COMPLETE, dataComplete);
_GJDataLoader.addEventListener(GJLoader.EVENT_FAIL, setupError);
_local1 = [];
if (AppSettings.GAME_ID == ""){
_local1[0] = new URLRequest((AppSettings.GJDATA_FNAME + _args));
} else {
_local2 = 0;
while (_local2 < AppSettings.SERVERS.length) {
_local1[_local2] = new URLRequest(((AppSettings.SERVERS[_local2] + AppSettings.GJDATA_FNAME) + _args));
_local2++;
};
};
_GJDataLoader.load(_local1);
}
}
}//package
Section 17
//GJDistributable_v2_BGPattern (GJDistributable_v2_BGPattern)
package {
import mx.core.*;
public class GJDistributable_v2_BGPattern extends SpriteAsset {
}
}//package
Section 18
//GJDistributable_v2_Logo (GJDistributable_v2_Logo)
package {
import mx.core.*;
public class GJDistributable_v2_Logo extends SpriteAsset {
}
}//package
Section 19
//GJDistributable_v2_Preloader (GJDistributable_v2_Preloader)
package {
import mx.core.*;
public class GJDistributable_v2_Preloader extends MovieClipAsset {
}
}//package
Section 20
//GJDistributable_v2_Retry (GJDistributable_v2_Retry)
package {
import mx.core.*;
public class GJDistributable_v2_Retry extends SpriteAsset {
}
}//package