Section 1
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.0.0.0";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
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 2
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){
this.left = _arg1;
this.top = _arg2;
this.right = _arg3;
this.bottom = _arg4;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 3
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 4
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.0.0.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 5
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 6
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 7
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(_arg1:Point):Point;
function get name():String;
function set width(_arg1:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(_arg1:String):void;
function set scaleX(_arg1:Number):void;
function set scaleY(_arg1:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(_arg1:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(_arg1:Point):Point;
function get height():Number;
function set blendMode(_arg1:String):void;
function get parent():DisplayObjectContainer;
function getBounds(_arg1:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(_arg1:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(_arg1:Number):void;
function set accessibilityProperties(_arg1:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(_arg1:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(_arg1:Number):void;
function set mask(_arg1:DisplayObject):void;
function getRect(_arg1:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(_arg1:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(_arg1:DisplayObject):Boolean;
function set opaqueBackground(_arg1:Object):void;
function set visible(_arg1:Boolean):void;
function get mask():DisplayObject;
function set x(_arg1:Number):void;
function set y(_arg1:Number):void;
function get transform():Transform;
function set filters(_arg1:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(_arg1:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 8
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(_arg1:Array):void;
function get isDocument():Boolean;
function set repeaters(_arg1:Array):void;
function initializeRepeaterArrays(_arg1:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(_arg1:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 9
//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 10
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.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;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 11
//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 = "3.0.0.0";
private static var counter:int = 0;
public static function displayObjectToString(_arg1:DisplayObject):String{
var _local2:String;
var _local4:String;
var _local5:Array;
var _local3:DisplayObject = _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{
if (!_arg1){
return (null);
};
var _local2:String = getQualifiedClassName(_arg1);
var _local3:int = _local2.indexOf("::");
if (_local3 != -1){
_local2 = _local2.substr((_local3 + 2));
};
var _local4:int = _local2.charCodeAt((_local2.length - 1));
if ((((_local4 >= 48)) && ((_local4 <= 57)))){
_local2 = (_local2 + "_");
};
return ((_local2 + counter++));
}
}
}//package mx.utils
Section 12
//arcadeLoader (arcadeLoader)
package {
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.text.*;
import flash.system.*;
import flash.external.*;
import flash.net.*;
import flash.filters.*;
public class arcadeLoader extends Sprite {
private var _preloaderBackground:Sprite;
private var _tagline:Sprite;
private var _logo:Sprite;
private var _indicatorWidth:Number;// = 500
private var _gameLogo:Bitmap;
private var _indicators:Sprite;
private var _indicatorBar:Sprite;
private var _indicatorTray:Sprite;
private var _errorField:TextField;
private var _loader:Loader;
private var _preloader:Sprite;
public static const origin:String = "newgrounds";
public static const RELEASE:Boolean = true;
public static const gameId:String = "tracism";
public static var taglineAsset:Class = arcadeLoader_taglineAsset;
public static var vectorLogo:Class = arcadeLoader_vectorLogo;
public static var gameLogoAsset:Class = arcadeLoader_gameLogoAsset;
public function arcadeLoader(){
Security.allowDomain("http://localhost");
Security.allowDomain("*");
Security.allowDomain("http://flashcdn.iminlikewithyou.com");
Security.allowDomain("http://flash.iminlikewithyou.com");
Security.allowDomain("http://static.iminlikewithyou.com");
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
protected function securityErrorHandler(_arg1:SecurityErrorEvent):void{
_errorField.text = _arg1.text;
}
private function load():void{
var baseUrl:String;
var loadUrl:String;
var docLoc:String;
var params:* = loaderInfo.parameters;
var key:String = params.key;
try {
docLoc = ExternalInterface.call("document.location.toString");
} catch(e:Error) {
};
if (RELEASE){
baseUrl = "http://flashcdn.iminlikewithyou.com/";
} else {
if (((!((docLoc == null))) && ((docLoc.indexOf("flash.dev") > -1)))){
baseUrl = "http://flash.dev.iminlikewithyou.com/";
} else {
baseUrl = "../../flashsite/bin-debug/";
};
};
var cache:String = String(Math.floor((new Date().time / ((1000 * 60) * 10))));
loadUrl = (((((((((((((baseUrl + "externalArcade.swf") + "?") + "gameID=") + _slot1.gameId) + "&") + "origin=") + _slot1.origin) + "&") + "release=") + _slot1.RELEASE) + "&") + "cache=") + cache);
_loader = new Loader();
addChild(_loader);
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
if (loadUrl.indexOf("http://") > -1){
context.securityDomain = SecurityDomain.currentDomain;
};
var req:URLRequest = new URLRequest(loadUrl);
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_preloader = buildPreloader();
addChild(_preloader);
_gameLogo = new gameLogoAsset();
addChild(_gameLogo);
_errorField = new TextField();
var fmt:TextFormat = new TextFormat("_sans", 12, 0xFFFFFF);
fmt.align = TextFormatAlign.CENTER;
_errorField.defaultTextFormat = fmt;
addChild(_errorField);
_errorField.autoSize = TextFieldAutoSize.LEFT;
_errorField.multiline = true;
_errorField.wordWrap = true;
addChild(_errorField);
stage.addEventListener(Event.RESIZE, onResize);
onResize(null);
try {
_loader.load(req, context);
} catch(e:Error) {
_errorField.text = e.toString();
};
}
protected function buildPreloader():Sprite{
var _local1:Sprite = new Sprite();
_indicatorWidth = Math.min(400, (stage.stageWidth - 30));
_preloaderBackground = new Sprite();
_local1.addChild(_preloaderBackground);
_indicators = new Sprite();
_local1.addChild(_indicators);
_logo = new vectorLogo();
_indicators.addChild(_logo);
_logo.scaleX = (_logo.scaleY = (200 / _logo.width));
_logo.x = ((_indicatorWidth / 2) - (_logo.width / 2));
_logo.y = 70;
var _local2:Sprite = Sprite(Object(_logo).fill);
var _local3:Sprite = Sprite(Object(_logo).stroke);
_local2.blendMode = BlendMode.SUBTRACT;
_local2.alpha = 0.5;
_local3.blendMode = BlendMode.OVERLAY;
_local3.alpha = 1;
_tagline = new taglineAsset();
_tagline.x = ((_indicatorWidth / 2) - (_tagline.width / 2));
_tagline.y = 52;
_tagline.alpha = 0.2;
_indicators.addChild(_tagline);
_indicatorTray = new Sprite();
renderRoundRect(_indicatorTray, 620756992, 0, 0, _indicatorWidth, 22, 22);
renderGradient(_indicatorTray, [301989887, 587202559], (Math.PI / 2), 2, 2, (_indicatorWidth - 4), 18, 18);
_indicators.addChild(_indicatorTray);
_indicatorBar = new Sprite();
renderGradient(_indicatorBar, [2574743415, 2576980377, 2579217339], (Math.PI / 2), 0, 0, 30, 14, 14);
renderRoundRect(_indicatorBar, 1157627903, 6, 2, 18, 4, 4);
_indicatorBar.scale9Grid = new Rectangle(10, 1, 10, 10);
_indicatorBar.x = 4;
_indicatorBar.y = 4;
_indicatorBar.width = 0;
_indicatorBar.filters = [new DropShadowFilter(3, 90, 0, 0.9, 10, 10, 1, 1, false, false, false)];
_indicators.addChild(_indicatorBar);
return (_local1);
}
private function onAddedToStage(_arg1:Event):void{
if (_arg1.target == this){
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
stage.frameRate = 60;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.quality = StageQuality.HIGH;
stage.stageFocusRect = false;
load();
};
}
protected function ioErrorHandler(_arg1:IOErrorEvent):void{
_errorField.text = ((_arg1.type + ": ") + _arg1.text);
}
protected function onLoadProgress(_arg1:ProgressEvent):void{
var _local2:Number = (_arg1.bytesLoaded / _arg1.bytesTotal);
_indicatorBar.width = (_local2 * (_indicatorWidth - 8));
}
protected function onResize(_arg1:Event):void{
_preloaderBackground.graphics.clear();
renderStripedWindowBackground(_preloaderBackground, stage.stageWidth, stage.stageHeight);
_indicators.x = Math.floor(((stage.stageWidth / 2) - (_indicatorWidth / 2)));
_indicators.y = Math.floor((stage.stageHeight * 0.75));
_gameLogo.y = Math.floor(((stage.stageHeight - _gameLogo.height) / 2));
_gameLogo.x = Math.floor(((stage.stageWidth / 2) - (_gameLogo.width / 2)));
_errorField.y = 20;
_errorField.width = (stage.stageWidth - 50);
_errorField.x = 25;
}
protected function onLoadComplete(_arg1:Event):void{
_preloaderBackground.graphics.clear();
removeChild(_preloader);
removeChild(_gameLogo);
removeChild(_errorField);
_loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadProgress);
_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoadComplete);
stage.removeEventListener(Event.RESIZE, onResize);
}
public static function renderRoundRect(_arg1:Sprite, _arg2:uint, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):void{
_arg1.graphics.beginFill(_arg2, getAlpha(_arg2));
_arg1.graphics.drawRoundRect(_arg3, _arg4, _arg5, _arg6, _arg7, _arg7);
_arg1.graphics.endFill();
}
public static function getAlpha(_arg1:Number):Number{
var _local2:Number = (((_arg1 >>> 24) % 0x0100) / 0xFF);
if (_local2 == 0){
_local2 = 1;
};
return (_local2);
}
public static function createGradientFill(_arg1:Graphics, _arg2:Array, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number):void{
var _local8:Array = [];
var _local9:Array = [];
var _local10:Array = [];
var _local11:Number = 0;
while (_local11 < _arg2.length) {
_local8.push(_arg2[_local11]);
_local9.push(getAlpha(_arg2[_local11]));
_local10.push(Math.floor((_local11 * (0xFF / (_arg2.length - 1)))));
_local11++;
};
var _local12:Matrix = new Matrix();
_local12.createGradientBox(_arg6, _arg7, _arg3, _arg4, _arg5);
_arg1.beginGradientFill(GradientType.LINEAR, _local8, _local9, _local10, _local12, SpreadMethod.PAD);
}
public static function renderGradient(_arg1:Sprite, _arg2:Array, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8=0):void{
var canvas = _arg1;
var colors = _arg2;
var radians = _arg3;
var x = _arg4;
var y = _arg5;
var width = _arg6;
var height = _arg7;
var radius = _arg8;
try {
createGradientFill(canvas.graphics, colors, radians, x, y, width, height);
if ((radius is Number)){
canvas.graphics.drawRoundRect(x, y, width, height, radius, radius);
};
canvas.graphics.endFill();
} catch(e:Error) {
};
}
public static function renderStripedWindowBackground(_arg1:Sprite, _arg2:Number, _arg3:Number, _arg4:Boolean=true):void{
if (_arg4){
renderGradient(_arg1, [0x4C4C4C, 0x181818], (Math.PI / 2), 0, 0, _arg2, _arg3);
};
var _local5:Number = 4;
var _local6:Number = 80;
var _local7:Number = 0;
var _local8:Number = 0;
var _local9:Number = 872415231;
var _local10:Array = [872415231, 872415231, 872415231, _local9];
var _local11:Array = [0.015, 0.015, 0, 0];
var _local12:Array = [0, _local6, _local6, 0xFF];
var _local13:Matrix = new Matrix();
_local13.createGradientBox((_local5 * 2), (_local5 * 2), (0.25 * Math.PI), _local7, _local8);
_arg1.graphics.beginGradientFill(GradientType.LINEAR, _local10, _local11, _local12, _local13, SpreadMethod.REPEAT);
_arg1.graphics.drawRect(_local7, _local8, _arg2, _arg3);
_arg1.graphics.endFill();
}
}
}//package
Section 13
//arcadeLoader_gameLogoAsset (arcadeLoader_gameLogoAsset)
package {
import mx.core.*;
public class arcadeLoader_gameLogoAsset extends BitmapAsset {
}
}//package
Section 14
//arcadeLoader_taglineAsset (arcadeLoader_taglineAsset)
package {
import flash.display.*;
import mx.core.*;
public class arcadeLoader_taglineAsset extends SpriteAsset {
public var stroke:DisplayObject;
public var fill:DisplayObject;
}
}//package
Section 15
//arcadeLoader_vectorLogo (arcadeLoader_vectorLogo)
package {
import flash.display.*;
import mx.core.*;
public class arcadeLoader_vectorLogo extends SpriteAsset {
public var stroke:DisplayObject;
public var fill:DisplayObject;
}
}//package