STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228089
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/58123920?noj=FRM58123920-3DC" width="1" height="1"></div>

futura-gets-busted.swf

This is the info page for
Flash #96288

(Click the ID number above for more basic data on this flash file.)


Text
Voice: Slow

Voice: Normal

Voice: Fast

Actions:

Rub:

Sex:

Nakoruru
Click Me Too.

Nakoruru

Joshua E. Silver
Click Me.

Joshua E. Silver

Joshua E. Silver

Credits...

All Art, Code, Animation and Sound Effects:

Music:

Ghost Busters Theme Instrumental

"Futura" and Music owned by:

Filmation
®

Fun Fact: Ramen Noodles were used
for foley work.

Voiced By:

Futura Get's
Busted!

Warning:  This flash contain Adult Content and Should not
Be viewed by Minors... But then again who's stopping them...
Certainly not their parents... Shame on Them!

Calling Futura

Calling Futura.

Calling Futura..

Calling Futura...

Let's Go, Gang!

MY ACHIN'...!

SHOCK ABSORBERS!

See  More Cool Stuff!

See  More Cool Stuff!

Newgrounds API Connector

Connecting to the Newgrounds Gateway...

Connection Established!

YOU ARE NOT LOGGED IN!

You will not be able to use any
members-only features!

Some features may be
temporarily unavailable.

API CONNECTION FAILED

NOTICE!

A new version is now available!
Click the button below to check it out.

View latest version

UNAUTHORIZED USE!!

This website is hosting this file without proper consent!
Click the button below to view a legal version.

View authorized version

ActionScript [AS3]

Section 1
//NewgroundsAPIAsset_API_Conencted_4 (APIConnector_fla.NewgroundsAPIAsset_API_Conencted_4) package APIConnector_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_API_Conencted_4 extends MovieClip { public function NewgroundsAPIAsset_API_Conencted_4(){ addFrameScript(36, this.frame37); } function frame37(){ APIConnector(parent).clear(); } } }//package APIConnector_fla
Section 2
//NewgroundsAPIAsset_ConnectingAPI_2 (APIConnector_fla.NewgroundsAPIAsset_ConnectingAPI_2) package APIConnector_fla { import flash.display.*; public dynamic class NewgroundsAPIAsset_ConnectingAPI_2 extends MovieClip { public function NewgroundsAPIAsset_ConnectingAPI_2(){ addFrameScript(9, this.frame10); } function frame10(){ stop(); } } }//package APIConnector_fla
Section 3
//NewgroundsAPIAsset_Connection_Error_7 (APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7) package APIConnector_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_Connection_Error_7 extends MovieClip { public function NewgroundsAPIAsset_Connection_Error_7(){ addFrameScript(9, this.frame10, 20, this.frame21); } function frame10(){ stop(); } function frame21(){ APIConnector(parent).clear(); } } }//package APIConnector_fla
Section 4
//NewgroundsAPIAsset_Load_Indicator_3 (APIConnector_fla.NewgroundsAPIAsset_Load_Indicator_3) package APIConnector_fla { import flash.events.*; import flash.display.*; public dynamic class NewgroundsAPIAsset_Load_Indicator_3 extends MovieClip { public function NewgroundsAPIAsset_Load_Indicator_3(){ addFrameScript(0, this.frame1); } public function onEnterFrame(_arg1:Event):void{ if (((visible) && (stage))){ rotation = (rotation + 30); } else { removeEventListener(Event.ENTER_FRAME, this.onEnterFrame); }; } function frame1(){ addEventListener(Event.ENTER_FRAME, this.onEnterFrame); } } }//package APIConnector_fla
Section 5
//NewgroundsAPIAsset_Login_Warning_5 (APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5) package APIConnector_fla { import flash.display.*; import com.newgrounds.components.*; public dynamic class NewgroundsAPIAsset_Login_Warning_5 extends MovieClip { public function NewgroundsAPIAsset_Login_Warning_5(){ addFrameScript(9, this.frame10, 20, this.frame21); } function frame10(){ stop(); } function frame21(){ APIConnector(parent).clear(); } } }//package APIConnector_fla
Section 6
//BKG (Classes.Detail.BKG) package Classes.Detail { import flash.events.*; import Classes.*; public class BKG extends AcObject { public var isPlaying:Boolean; public function BKG():void{ isPlaying = true; addEL(Event.ENTER_FRAME, bkgFunc); } public function bkgFunc(_arg1:Event):void{ if (Main(root).bkg){ if (!isPlaying){ cacheAsBitmap = false; visible = true; isPlaying = true; }; } else { if (isPlaying){ cacheAsBitmap = true; visible = false; isPlaying = false; }; }; } } }//package Classes.Detail
Section 7
//Sweat (Classes.Detail.Sweat) package Classes.Detail { import flash.events.*; import Classes.*; public class Sweat extends AcObject { public function Sweat():void{ } public function controlSweat(_arg1:Event):void{ if (Main(root) != null){ visible = false; }; } } }//package Classes.Detail
Section 8
//Me (Classes.System.HUD.Me) package Classes.System.HUD { import flash.events.*; import flash.net.*; import Classes.*; public class Me extends ADV_Button { public function Me():void{ addEventListener(MouseEvent.CLICK, clickFunc); addEventListener(Event.REMOVED_FROM_STAGE, removed2); } public function added(_arg1:Event):void{ } public function clickFunc(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://josilver.newgrounds.com/"), "_blank"); } public function removed2(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, clickFunc); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Classes.System.HUD
Section 9
//More (Classes.System.HUD.More) package Classes.System.HUD { import flash.events.*; import flash.net.*; import Classes.*; public class More extends ADV_Button { public function More():void{ addEventListener(MouseEvent.CLICK, clickFunc); addEventListener(Event.REMOVED_FROM_STAGE, removed2); } public function added(_arg1:Event):void{ } public function clickFunc(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.newgrounds.com/"), "_blank"); } public function removed2(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, clickFunc); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Classes.System.HUD
Section 10
//Nakoruru (Classes.System.HUD.Nakoruru) package Classes.System.HUD { import flash.events.*; import flash.net.*; import Classes.*; public class Nakoruru extends ADV_Button { public function Nakoruru():void{ addEventListener(MouseEvent.CLICK, clickFunc); addEventListener(Event.REMOVED_FROM_STAGE, removed2); } public function added(_arg1:Event):void{ } public function clickFunc(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://nakoruru.newgrounds.com/"), "_blank"); } public function removed2(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, clickFunc); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Classes.System.HUD
Section 11
//HUD (Classes.System.HUD) package Classes.System { import flash.events.*; import flash.display.*; public class HUD extends MovieClip { public var cum:MovieClip; public var f:HUD_ButFullscreen; public var b:HUD_ButBackground; public var m:HUD_ButMusic; public var q:HUD_ButQuality; public var p1:MovieClip; public var p2:MovieClip; public var p3:MovieClip; public var p5:MovieClip; public var p6:MovieClip; public var p0:MovieClip; public var p4:MovieClip; public function HUD():void{ cacheAsBitmap = true; addEventListener(Event.ENTER_FRAME, butFunc); p0.addEventListener(MouseEvent.MOUSE_DOWN, p0Func); p1.addEventListener(MouseEvent.MOUSE_DOWN, p1Func); p2.addEventListener(MouseEvent.MOUSE_DOWN, p2Func); p3.addEventListener(MouseEvent.MOUSE_DOWN, p3Func); p4.addEventListener(MouseEvent.MOUSE_DOWN, p4Func); p5.addEventListener(MouseEvent.MOUSE_DOWN, p5Func); p6.addEventListener(MouseEvent.MOUSE_DOWN, p6Func); cum.addEventListener(MouseEvent.MOUSE_DOWN, cumFunc); q.addEventListener(MouseEvent.MOUSE_DOWN, qFunc); b.addEventListener(MouseEvent.MOUSE_DOWN, bFunc); m.addEventListener(MouseEvent.MOUSE_DOWN, mFunc); f.addEventListener(MouseEvent.MOUSE_DOWN, fFunc); } public function p1Func(_arg1:MouseEvent):void{ Main(root).pos = 1; } public function p5Func(_arg1:MouseEvent):void{ Main(root).pos = 5; } public function p3Func(_arg1:MouseEvent):void{ Main(root).pos = 3; } public function fFunc(_arg1:MouseEvent):void{ stage.displayState = "fullScreen"; } public function bFunc(_arg1:MouseEvent):void{ Main(root).bkg = !(Main(root).bkg); } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, butFunc); p0.removeEventListener(MouseEvent.MOUSE_DOWN, p0Func); p1.removeEventListener(MouseEvent.MOUSE_DOWN, p1Func); p2.removeEventListener(MouseEvent.MOUSE_DOWN, p2Func); p3.removeEventListener(MouseEvent.MOUSE_DOWN, p3Func); p4.removeEventListener(MouseEvent.MOUSE_DOWN, p4Func); p5.removeEventListener(MouseEvent.MOUSE_DOWN, p5Func); p6.removeEventListener(MouseEvent.MOUSE_DOWN, p6Func); cum.removeEventListener(MouseEvent.MOUSE_DOWN, cumFunc); q.removeEventListener(MouseEvent.MOUSE_DOWN, qFunc); b.removeEventListener(MouseEvent.MOUSE_DOWN, bFunc); m.removeEventListener(MouseEvent.MOUSE_DOWN, mFunc); f.removeEventListener(MouseEvent.MOUSE_DOWN, fFunc); } public function cumFunc(_arg1:MouseEvent):void{ if ((((((Main(root).pos == 1)) || ((Main(root).pos == 2)))) || ((Main(root).pos == 3)))){ Main(root).pos = 7; }; if ((((((Main(root).pos == 4)) || ((Main(root).pos == 5)))) || ((Main(root).pos == 6)))){ Main(root).pos = 8; }; } public function p2Func(_arg1:MouseEvent):void{ Main(root).pos = 2; } public function p4Func(_arg1:MouseEvent):void{ Main(root).pos = 4; } public function p6Func(_arg1:MouseEvent):void{ Main(root).pos = 6; } public function p0Func(_arg1:MouseEvent):void{ Main(root).pos = 0; } public function mFunc(_arg1:MouseEvent):void{ Main(root).music = !(Main(root).music); } public function qFunc(_arg1:MouseEvent):void{ if (stage.quality == "HIGH"){ stage.quality = "LOW"; } else { if (stage.quality == "MEDIUM"){ stage.quality = "HIGH"; } else { if (stage.quality == "LOW"){ stage.quality = "MEDIUM"; }; }; }; } public function butFunc(_arg1:Event):void{ if (Main(root).pos == 0){ if (p0.currentFrame != 2){ p0.gotoAndStop(2); }; } else { if (p0.currentFrame != 1){ p0.gotoAndStop(1); }; }; if (Main(root).pos == 1){ if (p1.currentFrame != 2){ p1.gotoAndStop(2); }; } else { if (p1.currentFrame != 1){ p1.gotoAndStop(1); }; }; if (Main(root).pos == 2){ if (p2.currentFrame != 2){ p2.gotoAndStop(2); }; } else { if (p2.currentFrame != 1){ p2.gotoAndStop(1); }; }; if (Main(root).pos == 3){ if (p3.currentFrame != 2){ p3.gotoAndStop(2); }; } else { if (p3.currentFrame != 1){ p3.gotoAndStop(1); }; }; if (Main(root).pos == 4){ if (p4.currentFrame != 2){ p4.gotoAndStop(2); }; } else { if (p4.currentFrame != 1){ p4.gotoAndStop(1); }; }; if (Main(root).pos == 5){ if (p5.currentFrame != 2){ p5.gotoAndStop(2); }; } else { if (p5.currentFrame != 1){ p5.gotoAndStop(1); }; }; if (Main(root).pos == 6){ if (p6.currentFrame != 2){ p6.gotoAndStop(2); }; } else { if (p6.currentFrame != 1){ p6.gotoAndStop(1); }; }; if (Main(root).pos >= 7){ if (cum.currentFrame != 2){ cum.gotoAndStop(2); }; } else { if (Main(root).pos == 0){ if (cum.currentFrame != 3){ cum.gotoAndStop(3); }; } else { if (cum.currentFrame != 1){ cum.gotoAndStop(1); }; }; }; } } }//package Classes.System
Section 12
//MainStage (Classes.System.MainStage) package Classes.System { import flash.events.*; import flash.display.*; import Classes.*; public class MainStage extends AcObject { private var frame:int; public var flash:MovieClip; public function MainStage():void{ stop(); frame = 0; addEL(Event.ENTER_FRAME, changePos); } public function changePos(_arg1:Event):void{ if (Main(root) != null){ frame = (mRoot.pos + 2); if (currentFrame != frame){ gotoAndStop(frame); flash.gotoAndPlay(1); }; }; } } }//package Classes.System
Section 13
//AcObject (Classes.AcObject) package Classes { import flash.events.*; import flash.display.*; public class AcObject extends MovieClip { private var activeEvent:Array; protected var par:Object; protected var mRoot:Object; public function AcObject():void{ activeEvent = []; completeInit(null); addEventListener(Event.ENTER_FRAME, completeInit); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function addEL(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); activeEvent.push([_arg1, _arg2, _arg3]); } public function removeEL(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ var _local4:uint; removeEventListener(_arg1, _arg2, _arg3); _local4 = 0; while (_local4 < activeEvent.length) { if ((((((activeEvent[_local4][0] == _arg1)) && ((activeEvent[_local4][1] == _arg2)))) && ((activeEvent[_local4][2] == _arg3)))){ activeEvent.splice(_local4, 1); }; _local4++; }; } public function removed(_arg1:Event):void{ var _local2:uint; _local2 = 0; while (_local2 < activeEvent.length) { removeEventListener(activeEvent[_local2][0], activeEvent[_local2][1], activeEvent[_local2][2]); _local2++; }; removeEventListener(Event.REMOVED_FROM_STAGE, removed); } public function completeInit(_arg1:Event):void{ if (this == null){ removeEventListener(Event.ENTER_FRAME, completeInit); return; }; if (Main(root) != null){ mRoot = root; par = parent; removeEventListener(Event.ENTER_FRAME, completeInit); }; } } }//package Classes
Section 14
//ADV_Button (Classes.ADV_Button) package Classes { import flash.events.*; import flash.display.*; import flash.geom.*; public class ADV_Button extends MovieClip { public var CLICKED:Boolean; public var mPoint:Point; public var TOUCH:Boolean; public var CLICK_HOLD:Boolean; public var STATE:uint; public var CLICK:Boolean; public var par:Object; public function ADV_Button():void{ gotoAndStop(1); STATE = 0; mPoint = new Point(); CLICK = false; CLICK_HOLD = false; TOUCH = false; CLICKED = false; addEventListener(Event.ENTER_FRAME, adv_but); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function adv_but(_arg1:Event):void{ if (par == null){ stage.addEventListener(MouseEvent.MOUSE_DOWN, mDown); stage.addEventListener(MouseEvent.MOUSE_UP, mUp); par = parent; }; mPoint = new Point(mouseX, mouseY); mPoint = this.localToGlobal(mPoint); TOUCH = this.hitTestPoint(mPoint.x, mPoint.y, true); if (((((!(CLICK_HOLD)) && (CLICK))) && (TOUCH))){ CLICKED = true; }; if (((CLICKED) && (TOUCH))){ STATE = 3; } else { if (((((CLICKED) && (!(TOUCH)))) || (TOUCH))){ STATE = 2; } else { STATE = 1; }; }; if (currentFrame != STATE){ gotoAndStop(STATE); }; } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, adv_but); stage.removeEventListener(MouseEvent.MOUSE_DOWN, mDown); stage.removeEventListener(MouseEvent.MOUSE_UP, mUp); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } public function mDown(_arg1:MouseEvent):void{ CLICK = true; } public function mUp(_arg1:MouseEvent):void{ CLICK = false; CLICK_HOLD = false; CLICKED = false; } } }//package Classes
Section 15
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; private static function ff(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(f, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function f(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg2) | (~(_arg1) & _arg3))); } private static function g(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 & _arg3) | (_arg2 & ~(_arg3)))); } private static function h(_arg1:int, _arg2:int, _arg3:int):int{ return (((_arg1 ^ _arg2) ^ _arg3)); } private static function i(_arg1:int, _arg2:int, _arg3:int):int{ return ((_arg2 ^ (_arg1 | ~(_arg3)))); } private static function transform(_arg1:Function, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int):int{ var _local9:int; _local9 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } private static function hh(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(h, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hash(_arg1:String):String{ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array; var _local3:int; var _local4:int; var _local5:int; _local2 = new Array(); _local3 = (_arg1.length * 8); _local4 = 0xFF; _local5 = 0; while (_local5 < _local3) { _local2[int((_local5 >> 5))] = (_local2[int((_local5 >> 5))] | ((_arg1[(_local5 / 8)] & _local4) << (_local5 % 32))); _local5 = (_local5 + 8); }; _local2[int((_local3 >> 5))] = (_local2[int((_local3 >> 5))] | (128 << (_local3 % 32))); _local2[int(((((_local3 + 64) >>> 9) << 4) + 14))] = _local3; return (_local2); } public static function hashBinary(_arg1:ByteArray):String{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:Array; var _local11:int; var _local12:int; _local2 = 1732584193; _local3 = -271733879; _local4 = -1732584194; _local5 = 271733878; _local10 = createBlocks(_arg1); _local11 = _local10.length; _local12 = 0; while (_local12 < _local11) { _local6 = _local2; _local7 = _local3; _local8 = _local4; _local9 = _local5; _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 7, -680876936); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 1))], 12, -389564586); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 17, 606105819); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 3))], 22, -1044525330); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 7, -176418897); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 5))], 12, 1200080426); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 17, -1473231341); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 7))], 22, -45705983); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 7, 1770035416); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 9))], 12, -1958414417); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 17, -42063); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 11))], 22, -1990404162); _local2 = ff(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 7, 1804603682); _local5 = ff(_local5, _local2, _local3, _local4, _local10[int((_local12 + 13))], 12, -40341101); _local4 = ff(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 17, -1502002290); _local3 = ff(_local3, _local4, _local5, _local2, _local10[int((_local12 + 15))], 22, 1236535329); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 5, -165796510); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 6))], 9, -1069501632); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 14, 643717713); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 0))], 20, -373897302); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 5, -701558691); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 10))], 9, 38016083); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 14, -660478335); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 4))], 20, -405537848); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 5, 568446438); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 14))], 9, -1019803690); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 14, -187363961); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 8))], 20, 1163531501); _local2 = gg(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 5, -1444681467); _local5 = gg(_local5, _local2, _local3, _local4, _local10[int((_local12 + 2))], 9, -51403784); _local4 = gg(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 14, 1735328473); _local3 = gg(_local3, _local4, _local5, _local2, _local10[int((_local12 + 12))], 20, -1926607734); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 5))], 4, -378558); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 8))], 11, -2022574463); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 11))], 16, 1839030562); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 14))], 23, -35309556); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 1))], 4, -1530992060); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 4))], 11, 1272893353); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 7))], 16, -155497632); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 10))], 23, -1094730640); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 13))], 4, 681279174); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 0))], 11, -358537222); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 3))], 16, -722521979); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 6))], 23, 76029189); _local2 = hh(_local2, _local3, _local4, _local5, _local10[int((_local12 + 9))], 4, -640364487); _local5 = hh(_local5, _local2, _local3, _local4, _local10[int((_local12 + 12))], 11, -421815835); _local4 = hh(_local4, _local5, _local2, _local3, _local10[int((_local12 + 15))], 16, 530742520); _local3 = hh(_local3, _local4, _local5, _local2, _local10[int((_local12 + 2))], 23, -995338651); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 0))], 6, -198630844); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 7))], 10, 1126891415); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 14))], 15, -1416354905); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 5))], 21, -57434055); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 12))], 6, 1700485571); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 3))], 10, -1894986606); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 10))], 15, -1051523); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 1))], 21, -2054922799); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 8))], 6, 1873313359); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 15))], 10, -30611744); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 6))], 15, -1560198380); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 13))], 21, 1309151649); _local2 = ii(_local2, _local3, _local4, _local5, _local10[int((_local12 + 4))], 6, -145523070); _local5 = ii(_local5, _local2, _local3, _local4, _local10[int((_local12 + 11))], 10, -1120210379); _local4 = ii(_local4, _local5, _local2, _local3, _local10[int((_local12 + 2))], 15, 718787259); _local3 = ii(_local3, _local4, _local5, _local2, _local10[int((_local12 + 9))], 21, -343485551); _local2 = (_local2 + _local6); _local3 = (_local3 + _local7); _local4 = (_local4 + _local8); _local5 = (_local5 + _local9); _local12 = (_local12 + 16); }; digest = new ByteArray(); digest.writeInt(_local2); digest.writeInt(_local3); digest.writeInt(_local4); digest.writeInt(_local5); digest.position = 0; return ((((IntUtil.toHex(_local2) + IntUtil.toHex(_local3)) + IntUtil.toHex(_local4)) + IntUtil.toHex(_local5))); } private static function gg(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(g, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } private static function ii(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int):int{ return (transform(i, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } } }//package com.adobe.crypto
Section 16
//PNGEncoder (com.adobe.images.PNGEncoder) package com.adobe.images { import flash.display.*; import flash.utils.*; public class PNGEncoder { private static var crcTableComputed:Boolean = false; private static var crcTable:Array; private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{ var _local4:uint; var _local5:uint; var _local6:uint; var _local7:int; var _local8:uint; var _local9:uint; var _local10:uint; if (!crcTableComputed){ crcTableComputed = true; crcTable = []; _local9 = 0; while (_local9 < 0x0100) { _local8 = _local9; _local10 = 0; while (_local10 < 8) { if ((_local8 & 1)){ _local8 = uint((uint(3988292384) ^ uint((_local8 >>> 1)))); } else { _local8 = uint((_local8 >>> 1)); }; _local10++; }; crcTable[_local9] = _local8; _local9++; }; }; _local4 = 0; if (_arg3 != null){ _local4 = _arg3.length; }; _arg1.writeUnsignedInt(_local4); _local5 = _arg1.position; _arg1.writeUnsignedInt(_arg2); if (_arg3 != null){ _arg1.writeBytes(_arg3); }; _local6 = _arg1.position; _arg1.position = _local5; _local8 = 4294967295; _local7 = 0; while (_local7 < (_local6 - _local5)) { _local8 = uint((crcTable[((_local8 ^ _arg1.readUnsignedByte()) & uint(0xFF))] ^ uint((_local8 >>> 8)))); _local7++; }; _local8 = uint((_local8 ^ uint(4294967295))); _arg1.position = _local6; _arg1.writeUnsignedInt(_local8); } public static function encode(_arg1:BitmapData):ByteArray{ var _local2:ByteArray; var _local3:ByteArray; var _local4:ByteArray; var _local5:int; var _local6:uint; var _local7:int; _local2 = new ByteArray(); _local2.writeUnsignedInt(2303741511); _local2.writeUnsignedInt(218765834); _local3 = new ByteArray(); _local3.writeInt(_arg1.width); _local3.writeInt(_arg1.height); _local3.writeUnsignedInt(134610944); _local3.writeByte(0); writeChunk(_local2, 1229472850, _local3); _local4 = new ByteArray(); _local5 = 0; while (_local5 < _arg1.height) { _local4.writeByte(0); if (!_arg1.transparent){ _local7 = 0; while (_local7 < _arg1.width) { _local6 = _arg1.getPixel(_local7, _local5); _local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | 0xFF))); _local7++; }; } else { _local7 = 0; while (_local7 < _arg1.width) { _local6 = _arg1.getPixel32(_local7, _local5); _local4.writeUnsignedInt(uint((((_local6 & 0xFFFFFF) << 8) | (_local6 >>> 24)))); _local7++; }; }; _local5++; }; _local4.compress(); writeChunk(_local2, 1229209940, _local4); writeChunk(_local2, 1229278788, null); return (_local2); } } }//package com.adobe.images
Section 17
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function decode(_arg1:String, _arg2:Boolean=true){ return (new JSONDecoder(_arg1, _arg2).getValue()); } public static function encode(_arg1:Object):String{ return (new JSONEncoder(_arg1).getString()); } } }//package com.adobe.serialization.json
Section 18
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var strict:Boolean; private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String, _arg2:Boolean){ this.strict = _arg2; tokenizer = new JSONTokenizer(_arg1, _arg2); nextToken(); value = parseValue(); if (((_arg2) && (!((nextToken() == null))))){ tokenizer.parseError("Unexpected characters left in input stream"); }; } private function nextToken():JSONToken{ return ((token = tokenizer.getNextToken())); } private function parseArray():Array{ var _local1:Array; _local1 = new Array(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (((!(strict)) && ((token.type == JSONTokenType.COMMA)))){ nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; tokenizer.parseError(("Leading commas are not supported. Expecting ']' but found " + token.value)); }; while (true) { _local1.push(parseValue()); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); if (!strict){ if (token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; }; } else { tokenizer.parseError(("Expecting ] or , but found " + token.value)); }; }; return (null); } private function parseObject():Object{ var _local1:Object; var _local2:String; _local1 = new Object(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (((!(strict)) && ((token.type == JSONTokenType.COMMA)))){ nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; tokenizer.parseError(("Leading commas are not supported. Expecting '}' but found " + token.value)); }; while (true) { if (token.type == JSONTokenType.STRING){ _local2 = String(token.value); nextToken(); if (token.type == JSONTokenType.COLON){ nextToken(); _local1[_local2] = parseValue(); nextToken(); if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (token.type == JSONTokenType.COMMA){ nextToken(); if (!strict){ if (token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; }; } else { tokenizer.parseError(("Expecting } or , but found " + token.value)); }; } else { tokenizer.parseError(("Expecting : but found " + token.value)); }; } else { tokenizer.parseError(("Expecting string but found " + token.value)); }; }; return (null); } public function getValue(){ return (value); } private function parseValue():Object{ if (token == null){ tokenizer.parseError("Unexpected end of input"); }; switch (token.type){ case JSONTokenType.LEFT_BRACE: return (parseObject()); case JSONTokenType.LEFT_BRACKET: return (parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (token.value); case JSONTokenType.NAN: if (!strict){ return (token.value); }; tokenizer.parseError(("Unexpected " + token.value)); default: tokenizer.parseError(("Unexpected " + token.value)); }; return (null); } } }//package com.adobe.serialization.json
Section 19
//JSONEncoder (com.adobe.serialization.json.JSONEncoder) package com.adobe.serialization.json { import flash.utils.*; public class JSONEncoder { private var jsonString:String; public function JSONEncoder(_arg1){ jsonString = convertToString(_arg1); } private function arrayToString(_arg1:Array):String{ var _local2:String; var _local3:int; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } private function convertToString(_arg1):String{ if ((_arg1 is String)){ return (escapeString((_arg1 as String))); }; if ((_arg1 is Number)){ return ((isFinite((_arg1 as Number))) ? _arg1.toString() : "null"); } else { if ((_arg1 is Boolean)){ return ((_arg1) ? "true" : "false"); } else { if ((_arg1 is Array)){ return (arrayToString((_arg1 as Array))); }; if ((((_arg1 is Object)) && (!((_arg1 == null))))){ return (objectToString(_arg1)); }; }; }; return ("null"); } private function escapeString(_arg1:String):String{ var _local2:String; var _local3:String; var _local4:Number; var _local5:int; var _local6:String; var _local7:String; _local2 = ""; _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local3 = _arg1.charAt(_local5); switch (_local3){ case "\"": _local2 = (_local2 + "\\\""); break; case "\\": _local2 = (_local2 + "\\\\"); break; case "\b": _local2 = (_local2 + "\\b"); break; case "\f": _local2 = (_local2 + "\\f"); break; case "\n": _local2 = (_local2 + "\\n"); break; case "\r": _local2 = (_local2 + "\\r"); break; case "\t": _local2 = (_local2 + "\\t"); break; default: if (_local3 < " "){ _local6 = _local3.charCodeAt(0).toString(16); _local7 = ((_local6.length == 2)) ? "00" : "000"; _local2 = (_local2 + (("\\u" + _local7) + _local6)); } else { _local2 = (_local2 + _local3); }; }; _local5++; }; return ((("\"" + _local2) + "\"")); } private function objectToString(_arg1:Object):String{ var s:String; var classInfo:XML; var value:Object; var key:String; var v:XML; var o = _arg1; s = ""; classInfo = describeType(o); if (classInfo.@name.toString() == "Object"){ for (key in o) { value = o[key]; if ((value is Function)){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(key) + ":") + convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((((name() == "accessor")) && ((attribute("access").charAt(0) == "r")))))) { if (((v.metadata) && ((v.metadata.(@name == "Transient").length() > 0)))){ } else { if (s.length > 0){ s = (s + ","); }; s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name]))); }; }; }; return ((("{" + s) + "}")); } public function getString():String{ return (jsonString); } } }//package com.adobe.serialization.json
Section 20
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _text:String; private var _location:int; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; _location = _arg2; _text = _arg3; } public function get text():String{ return (_text); } public function get location():int{ return (_location); } } }//package com.adobe.serialization.json
Section 21
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _value:Object; private var _type:int; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ _type = _arg1; _value = _arg2; } public function set value(_arg1:Object):void{ _value = _arg1; } public function get value():Object{ return (_value); } public function set type(_arg1:int):void{ _type = _arg1; } public function get type():int{ return (_type); } } }//package com.adobe.serialization.json
Section 22
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var loc:int; private var strict:Boolean; private var controlCharsRegExp:RegExp; private var jsonString:String; private var ch:String; private var obj:Object; public function JSONTokenizer(_arg1:String, _arg2:Boolean){ controlCharsRegExp = /[\x00-\x1F]/; super(); jsonString = _arg1; this.strict = _arg2; loc = 0; nextChar(); } public function unescapeString(_arg1:String):String{ var _local2:String; var _local3:int; var _local4:int; var _local5:int; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; if (((strict) && (controlCharsRegExp.test(_arg1)))){ parseError("String contains unescaped control character (0x00-0x1F)"); }; _local2 = ""; _local3 = 0; _local4 = 0; _local5 = _arg1.length; do { _local3 = _arg1.indexOf("\\", _local4); if (_local3 >= 0){ _local2 = (_local2 + _arg1.substr(_local4, (_local3 - _local4))); _local4 = (_local3 + 2); _local6 = (_local3 + 1); _local7 = _arg1.charAt(_local6); switch (_local7){ case "\"": _local2 = (_local2 + "\""); break; case "\\": _local2 = (_local2 + "\\"); break; case "n": _local2 = (_local2 + "\n"); break; case "r": _local2 = (_local2 + "\r"); break; case "t": _local2 = (_local2 + "\t"); break; case "u": _local8 = ""; if ((_local4 + 4) > _local5){ parseError("Unexpected end of input. Expecting 4 hex digits after \\u."); }; _local9 = _local4; while (_local9 < (_local4 + 4)) { _local10 = _arg1.charAt(_local9); if (!isHexDigit(_local10)){ parseError(("Excepted a hex digit, but found: " + _local10)); }; _local8 = (_local8 + _local10); _local9++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local8, 16))); _local4 = (_local4 + 4); break; case "f": _local2 = (_local2 + "\f"); break; case "/": _local2 = (_local2 + "/"); break; case "b": _local2 = (_local2 + "\b"); break; default: _local2 = (_local2 + ("\\" + _local7)); }; } else { _local2 = (_local2 + _arg1.substr(_local4)); break; }; } while (_local4 < _local5); return (_local2); } private function readString():JSONToken{ var _local1:int; var _local2:JSONToken; var _local3:*; var _local4:*; _local1 = loc; do { _local1 = jsonString.indexOf("\"", _local1); if (_local1 >= 0){ _local3 = 0; _local4 = (_local1 - 1); while (jsonString.charAt(_local4) == "\\") { _local3++; _local4--; }; if ((_local3 % 2) == 0){ break; }; _local1++; } else { parseError("Unterminated string literal"); }; } while (true); _local2 = new JSONToken(); _local2.type = JSONTokenType.STRING; _local2.value = unescapeString(jsonString.substr(loc, (_local1 - loc))); loc = (_local1 + 1); nextChar(); return (_local2); } private function skipComments():void{ if (ch == "/"){ nextChar(); switch (ch){ case "/": do { nextChar(); } while (((!((ch == "\n"))) && (!((ch == ""))))); nextChar(); break; case "*": nextChar(); while (true) { if (ch == "*"){ nextChar(); if (ch == "/"){ nextChar(); break; }; } else { nextChar(); }; if (ch == ""){ parseError("Multi-line comment not closed"); }; }; break; default: parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )")); }; }; } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, loc, jsonString)); } public function getNextToken():JSONToken{ var _local1:JSONToken; var _local2:String; var _local3:String; var _local4:String; var _local5:String; _local1 = new JSONToken(); skipIgnored(); switch (ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; nextChar(); break; case "t": _local2 = ((("t" + nextChar()) + nextChar()) + nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; nextChar(); } else { parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; nextChar(); } else { parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + nextChar()) + nextChar()) + nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; nextChar(); } else { parseError(("Expecting 'null' but found " + _local4)); }; break; case "N": _local5 = (("N" + nextChar()) + nextChar()); if (_local5 == "NaN"){ _local1.type = JSONTokenType.NAN; _local1.value = NaN; nextChar(); } else { parseError(("Expecting 'NaN' but found " + _local5)); }; break; case "\"": _local1 = readString(); break; default: if (((isDigit(ch)) || ((ch == "-")))){ _local1 = readNumber(); } else { if (ch == ""){ return (null); }; parseError((("Unexpected " + ch) + " encountered")); }; }; return (_local1); } private function skipIgnored():void{ var _local1:int; do { _local1 = loc; skipWhite(); skipComments(); } while (_local1 != loc); } private function isHexDigit(_arg1:String):Boolean{ return (((((isDigit(_arg1)) || ((((_arg1 >= "A")) && ((_arg1 <= "F")))))) || ((((_arg1 >= "a")) && ((_arg1 <= "f")))))); } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function isWhiteSpace(_arg1:String):Boolean{ if ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))){ return (true); }; if (((!(strict)) && ((_arg1.charCodeAt(0) == 160)))){ return (true); }; return (false); } private function nextChar():String{ return ((ch = jsonString.charAt(loc++))); } private function skipWhite():void{ while (isWhiteSpace(ch)) { nextChar(); }; } private function readNumber():JSONToken{ var _local1:String; var _local2:Number; var _local3:JSONToken; _local1 = ""; if (ch == "-"){ _local1 = (_local1 + "-"); nextChar(); }; if (!isDigit(ch)){ parseError("Expecting a digit"); }; if (ch == "0"){ _local1 = (_local1 + ch); nextChar(); if (isDigit(ch)){ parseError("A digit cannot immediately follow 0"); } else { if (((!(strict)) && ((ch == "x")))){ _local1 = (_local1 + ch); nextChar(); if (isHexDigit(ch)){ _local1 = (_local1 + ch); nextChar(); } else { parseError("Number in hex format require at least one hex digit after \"0x\""); }; while (isHexDigit(ch)) { _local1 = (_local1 + ch); nextChar(); }; }; }; } else { while (isDigit(ch)) { _local1 = (_local1 + ch); nextChar(); }; }; if (ch == "."){ _local1 = (_local1 + "."); nextChar(); if (!isDigit(ch)){ parseError("Expecting a digit"); }; while (isDigit(ch)) { _local1 = (_local1 + ch); nextChar(); }; }; if ((((ch == "e")) || ((ch == "E")))){ _local1 = (_local1 + "e"); nextChar(); if ((((ch == "+")) || ((ch == "-")))){ _local1 = (_local1 + ch); nextChar(); }; if (!isDigit(ch)){ parseError("Scientific notation number needs exponent value"); }; while (isDigit(ch)) { _local1 = (_local1 + ch); nextChar(); }; }; _local2 = Number(_local1); if (((isFinite(_local2)) && (!(isNaN(_local2))))){ _local3 = new JSONToken(); _local3.type = JSONTokenType.NUMBER; _local3.value = _local2; return (_local3); }; parseError((("Number " + _local2) + " is not valid!")); return (null); } } }//package com.adobe.serialization.json
Section 23
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const FALSE:int = 8; public static const RIGHT_BRACKET:int = 4; public static const NULL:int = 9; public static const NUMBER:int = 11; public static const TRUE:int = 7; public static const RIGHT_BRACE:int = 2; public static const STRING:int = 10; public static const LEFT_BRACKET:int = 3; public static const LEFT_BRACE:int = 1; public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const NAN:int = 12; public static const COLON:int = 6; } }//package com.adobe.serialization.json
Section 24
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local3:String; var _local4:int; var _local5:int; _local3 = ""; if (_arg2){ _local4 = 0; while (_local4 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> (((3 - _local4) * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> ((3 - _local4) * 8)) & 15)))); _local4++; }; } else { _local5 = 0; while (_local5 < 4) { _local3 = (_local3 + (hexChars.charAt(((_arg1 >> ((_local5 * 8) + 4)) & 15)) + hexChars.charAt(((_arg1 >> (_local5 * 8)) & 15)))); _local5++; }; }; return (_local3); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int; _local3 = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } } }//package com.adobe.utils
Section 25
//APIConnector (com.newgrounds.components.APIConnector) package com.newgrounds.components { import flash.events.*; import flash.display.*; import com.newgrounds.*; import flash.utils.*; public class APIConnector extends MovieClip { public var errorDialog:MovieClip; public var background:MovieClip; public var viewLatestButton:SimpleButton; public var closeButton:SimpleButton; public var viewAuthorizedButton:SimpleButton; private var _initialized:Boolean; private var _movieId:String; private var _encryptionKey:String; private var _movieVersion:String; private var _showConnectingPopup:Boolean;// = true private var _useErrorPopup:Boolean;// = true private var _medalPopup:MedalPopup; private var _popDelay:Timer; public function APIConnector(){ this._popDelay = new Timer(3000, 1); super(); addFrameScript(0, this.frame1, 6, this.frame7, 7, this.frame8); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; this.useErrorPopup = true; this.useMedalPopup = true; this._popDelay.addEventListener(TimerEvent.TIMER, this.errorTimerHandler); addEventListener(Event.ENTER_FRAME, this.enterFrameHandler); if (stage){ addEventListener(Event.RENDER, this.renderHandler); stage.invalidate(); } else { this.clear(); }; } public function get movieId():String{ return (this._movieId); } public function set movieId(_arg1:String):void{ this._movieId = _arg1; } public function get encryptionKey():String{ return (this._encryptionKey); } public function set encryptionKey(_arg1:String):void{ this._encryptionKey = _arg1; } public function get movieVersion():String{ return (this._movieVersion); } public function set movieVersion(_arg1:String):void{ this._movieVersion = _arg1; } public function get debugMode():Boolean{ return (API.debugMode); } public function set debugMode(_arg1:Boolean):void{ API.debugMode = true; } public function get useFakeSession():Boolean{ return (API.getFakeSession()); } public function set useFakeSession(_arg1:Boolean):void{ API.setFakeSession(true); } public function get useMedalPopup():Boolean{ return (!((this._medalPopup == null))); } public function set useMedalPopup(_arg1:Boolean):void{ if (((_arg1) && (!(this._medalPopup)))){ this._medalPopup = new MedalPopup(); addChild(this._medalPopup); } else { if (((!(_arg1)) && (this._medalPopup))){ removeChild(this._medalPopup); this._medalPopup = null; }; }; } public function get useErrorPopup():Boolean{ return (this._useErrorPopup); } public function set useErrorPopup(_arg1:Boolean):void{ this._useErrorPopup = _arg1; API.addEventListener(APIEvent.API_CONNECTED, this.movieConnectedHandler); if (this._useErrorPopup){ API.addEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler); API.addEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler); } else { API.removeEventListener(APIEvent.NEW_VERSION_AVAILABLE, this.newVersionAvailableHandler); API.removeEventListener(APIEvent.HOST_BLOCKED, this.hostBlockedHandler); }; } public function get showConnectingPopup():Boolean{ return (this._showConnectingPopup); } public function set showConnectingPopup(_arg1:Boolean):void{ this._showConnectingPopup = _arg1; if (((!(_arg1)) && ((((currentLabel == "connecting")) || ((currentLabel == "connected")))))){ this.clear(); }; } public function clear():void{ gotoAndStop("idle"); } public function connect():void{ API.setVersion(this._movieVersion); API.connect(root.loaderInfo, this._movieId, this._encryptionKey); visible = true; if (this.showConnectingPopup){ gotoAndStop("connecting"); }; } private function renderHandler(_arg1:Event):void{ removeEventListener(Event.RENDER, this.renderHandler); this.clear(); this.connect(); } private function movieConnectedHandler(_arg1:APIEvent):void{ if (_arg1.success){ if (((((((API.isPublishedHost()) && (API.hostIsCompatible()))) && (!(API.hasUserSession())))) && (!(API.debugMode)))){ gotoAndStop("no_login"); this._popDelay.start(); visible = true; } else { if (this.showConnectingPopup){ gotoAndStop("connected"); }; }; } else { gotoAndStop("no_connect"); this._popDelay.start(); visible = true; }; } private function newVersionAvailableHandler(_arg1:APIEvent):void{ gotoAndStop("new_version"); visible = true; this.centerOnStage(); } private function hostBlockedHandler(_arg1:APIEvent):void{ gotoAndStop("bad_host"); visible = true; this.centerOnStage(); } private function closeButtonClickHandler(_arg1:Event):void{ this.clear(); } private function officialVersionClickHandler(_arg1:Event):void{ API.loadOfficialURL(); } private function enterFrameHandler(_arg1:Event):void{ this.forceAlwaysOnTop(); } private function initButtons():void{ if (this.viewLatestButton){ this.viewLatestButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler); }; if (this.viewAuthorizedButton){ this.viewAuthorizedButton.addEventListener(MouseEvent.CLICK, this.officialVersionClickHandler); }; if (this.closeButton){ this.closeButton.addEventListener(MouseEvent.CLICK, this.closeButtonClickHandler); }; } private function forceAlwaysOnTop():void{ var myIndex:uint; var topIndex:uint; if (((parent) && (visible))){ try { myIndex = parent.getChildIndex(this); topIndex = (parent.numChildren - 1); if (myIndex != topIndex){ parent.setChildIndex(this, topIndex); }; } catch(e:Error) { }; }; } private function centerOnStage():void{ if (stage){ x = (stage.stageWidth / 2); y = (stage.stageHeight / 2); }; } private function errorTimerHandler(_arg1:TimerEvent):void{ if (this.errorDialog){ this.errorDialog.gotoAndPlay("closeme"); } else { this.clear(); }; } function frame1(){ stop(); } function frame7(){ this.initButtons(); } function frame8(){ this.initButtons(); } } }//package com.newgrounds.components
Section 26
//FlashAd (com.newgrounds.components.FlashAd) package com.newgrounds.components { import flash.events.*; import flash.display.*; import com.newgrounds.*; import flash.utils.*; import flash.net.*; import flash.system.*; public class FlashAd extends Sprite { public var background:MovieClip; private var _showBackground:Boolean; private var _adURLLoader:URLLoader; private var _adRect:Sprite; private var _mask:Shape; private var _ad:Loader; private static const DEBUG_AD_URL:String = "http://www.ngads.com/adtest.php"; private static const REMOVED_FROM_STAGE:String = "removedFromStage"; private static var _adResetTime:uint = 0; private static var _adURL:URLRequest; public function FlashAd(_arg1:Boolean=true){ if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; Security.allowDomain("server.cpmstar.com"); this._adRect = new Sprite(); this._adRect.graphics.beginFill(0); this._adRect.graphics.moveTo(0, 0); this._adRect.graphics.lineTo(300, 0); this._adRect.graphics.lineTo(300, 250); this._adRect.graphics.lineTo(0, 250); this._adRect.graphics.lineTo(0, 0); this._adRect.graphics.endFill(); this._mask = new Shape(); this._mask.graphics.beginFill(0); this._mask.graphics.moveTo(0, 0); this._mask.graphics.lineTo(300, 0); this._mask.graphics.lineTo(300, 250); this._mask.graphics.lineTo(0, 250); this._mask.graphics.lineTo(0, 0); this._mask.graphics.endFill(); addChild(this._adRect); this._adRect.addChild(this._mask); this._adRect.visible = false; x = Math.round(x); y = Math.round(y); scaleX = 1; scaleY = 1; if (this.background){ if (this.background.ngLinkButton){ this.background.ngLinkButton.addEventListener(MouseEvent.CLICK, this.linkClickHandler); }; if (this.background.loadingClip){ this.background.loadingClip.visible = false; }; }; if (API.isFlashVersion(9, 0, 28)){ addEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage); }; if (API.adsApproved){ this.loadAdFeed(API.adFeedURL); } else { API.addEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false, 0, true); }; this.showBackground = _arg1; } public function get showBackground():Boolean{ return (this._showBackground); } public function set showBackground(_arg1:Boolean):void{ this._showBackground = _arg1; if (this.background){ this.background.visible = _arg1; this._adRect.mask = (_arg1) ? this.background.adMask : null; }; } public function removeAd():void{ removeEventListener(REMOVED_FROM_STAGE, this.onRemovedFromStage); if (((this.background) && (this.background.loadingClip))){ this.background.loadingClip.visible = false; }; if (this._adURLLoader){ try { this._adURLLoader.close(); } catch(e:Error) { }; }; if (this._adRect){ this._adRect.visible = false; }; if (this._ad){ trace("[NewgroundsAPI] :: Ad removed"); try { this._ad.close(); } catch(e:Error) { }; try { Object(this._ad).unloadAndStop(true); } catch(e:Error) { _ad.unload(); }; if (this._ad.parent){ this._ad.parent.removeChild(this._ad); }; }; this._ad = null; } private function onAdsApproved(_arg1:APIEvent):void{ API.removeEventListener(APIEvent.ADS_APPROVED, this.onAdsApproved, false); if (_arg1.success){ this.loadAdFeed(API.adFeedURL); } else { trace("[NewgroundsAPI] :: No ad feed URL supplied to Newgrounds API ad!"); }; } private function loadAdFeed(_arg1:String):void{ var adFeedURL = _arg1; this._adURLLoader = new URLLoader(); this._adURLLoader.addEventListener(Event.COMPLETE, this.onAdFeedLoaded); this._adURLLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError); this._adURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onAdError); if (!adFeedURL){ trace("[Newgrounds API] :: Invalid feed URL!"); return; }; if (this.hasAdElapsed){ if (adFeedURL.indexOf("?") > -1){ _adURL = new URLRequest(((adFeedURL + "&random=") + Math.random())); } else { _adURL = new URLRequest(((adFeedURL + "?random=") + Math.random())); }; }; try { this._adURLLoader.load(_adURL); } catch(e:Error) { onAdError(null); }; if (((this.background) && (this.background.loadingClip))){ this.background.loadingClip.visible = true; }; } private function loadAd(_arg1:String):void{ var url = _arg1; if (this._ad){ this.removeAd(); }; this._ad = new Loader(); this._ad.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onAdLoaded); this._ad.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onAdError); try { Object(this._ad.contentLoaderInfo).uncaughtErrorEvents.addEventListener("uncaughtError", function (_arg1:Event):void{ }); } catch(error:Error) { }; this._ad.load(new URLRequest(url), new LoaderContext(false, new ApplicationDomain(null))); if (((this.background) && (this.background.loadingClip))){ this.background.loadingClip.visible = true; }; } private function onAdFeedLoaded(_arg1:Event):void{ var _local2:URLLoader = URLLoader(_arg1.target); if (((_local2.data) && (!((_local2.data == ""))))){ this.loadAd((_local2.data as String)); } else { dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); if (((this.background) && (this.background.loadingClip))){ this.background.loadingClip.visible = false; }; }; } private function onAdFeedError(_arg1:Event):void{ trace("[NewgroundsAPI] :: Unable to load ad feed!"); if (((this.background) && (this.background.loadingClip))){ this.background.loadingClip.visible = false; }; } private function onAdError(_arg1:Event):void{ dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, false, new APIError("FLASH_ADS_NOT_APPROVED", "Unable to render ad"))); this.removeAd(); } private function onAdLoaded(_arg1:Event):void{ this._adRect.addChild(this._ad); this._ad.mask = this._mask; this._adRect.visible = true; if (this.background){ if (this._showBackground){ this._adRect.mask = this.background.adMask; }; if (this.background.loadingClip){ this.background.loadingClip.visible = false; }; }; trace("[NewgroundsAPI] :: Ad loaded!"); dispatchEvent(new APIEvent(APIEvent.AD_ATTACHED, true)); } private function onRemovedFromStage(_arg1:Event):void{ this.removeAd(); } private function get hasAdElapsed():Boolean{ if (getTimer() >= _adResetTime){ _adResetTime = (getTimer() + ((1000 * 60) * 5)); return (true); }; return (false); } private function linkClickHandler(_arg1:MouseEvent):void{ API.loadNewgrounds(); } } }//package com.newgrounds.components
Section 27
//MedalPopup (com.newgrounds.components.MedalPopup) package com.newgrounds.components { import flash.events.*; import flash.display.*; import com.newgrounds.*; import flash.utils.*; import flash.text.*; public class MedalPopup extends MovieClip { public var medalNameText:TextField; public var medalValueText:TextField; public var medalContainer:Sprite; private var _initialized:Boolean; private var _medal:Medal; private var _medalIcon:Bitmap; private var _medalQueue:Array; private var _popDelay:Timer; public function MedalPopup(){ this._medalQueue = []; this._popDelay = new Timer(3000, 1); super(); addFrameScript(0, this.frame1, 9, this.frame10, 18, this.frame19); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; visible = false; addEventListener(Event.ENTER_FRAME, this.enterFrameHandler); stop(); API.addEventListener(APIEvent.MEDAL_UNLOCKED, this.onMedalUnlocked, false, 0, true); this._popDelay.addEventListener(TimerEvent.TIMER, this.timerHandler); } public function get popupTime():Number{ return ((this._popDelay.delay / 1000)); } public function set popupTime(_arg1:Number):void{ if (isNaN(_arg1)){ _arg1 = 3; }; this._popDelay.delay = (_arg1 * 1000); } private function enterFrameHandler(_arg1:Event):void{ var myIndex:uint; var topIndex:uint; var event = _arg1; if (((this._medalQueue.length) && (!(visible)))){ this._medal = this._medalQueue.pop(); this._popDelay.start(); gotoAndPlay("medal_show"); visible = true; }; if (((visible) && (parent))){ try { myIndex = parent.getChildIndex(this); topIndex = (parent.numChildren - 1); if (myIndex != topIndex){ parent.setChildIndex(this, topIndex); }; } catch(error:Error) { }; }; } private function onMedalUnlocked(_arg1:APIEvent):void{ if (((((_arg1.success) && (_arg1.data))) && ((_arg1.data.medal is Medal)))){ this._medalQueue.push(Medal(_arg1.data.medal)); }; } private function showMedalInfo():void{ if (!this._medal){ return; }; if (this.medalContainer){ this._medalIcon = this._medal.createIconBitmap(); this.medalContainer.addChild(this._medalIcon); }; if (this.medalNameText){ this.medalNameText.text = this._medal.name; }; if (this.medalValueText){ this.medalValueText.text = (this._medal.value.toString() + "pts"); }; this._popDelay.start(); stop(); } private function timerHandler(_arg1:TimerEvent):void{ if (((this._medalIcon) && (this._medalIcon.parent))){ this._medalIcon.parent.removeChild(this._medalIcon); this._medalIcon = null; }; gotoAndPlay("medal_hide"); this._popDelay.stop(); } function frame1(){ stop(); } function frame10(){ this.showMedalInfo(); stop(); } function frame19(){ stop(); visible = false; } } }//package com.newgrounds.components
Section 28
//API (com.newgrounds.API) package com.newgrounds { import flash.events.*; import flash.display.*; import com.newgrounds.components.*; import flash.utils.*; import com.adobe.serialization.json.*; import flash.net.*; import com.adobe.images.*; import com.adobe.crypto.*; import flash.system.*; public class API { public static const VERSION:String = "2.4.18"; private static const GATEWAY_URL:String = "http://www.ngads.com/gateway_v2.php"; private static const AD_TERMS_URL:String = "http://www.newgrounds.com/wiki/flashads/terms/"; private static const COMMANDS_WIKI_URL:String = "http://www.newgrounds.com/wiki/flashapi/commands/"; private static var do_echo:Boolean = false; private static var _debug:Boolean = true; private static var _connected:Boolean = false; private static var _isMetadataLoaded:Boolean = false; private static var _preloadComplete:Boolean = false; private static var _adsApproved:Boolean = false; private static var _saveGroupId:uint; private static var _saveFileId:uint; private static var _trackerId:uint; private static var _movieId:String; private static var _encryptionKey:String; private static var _url:String; private static var _host:String; private static var connected:Boolean; private static var version:String; private static var ad_url:String; private static var _fakeSession:Boolean = false; private static var publisher_id:uint; private static var session_id:String; private static var user_email:String; private static var user_name:String; private static var user_id:uint; private static var userpage_format:String; private static var _medals:Array; private static var timeoutTimer:Timer = new Timer(8000, 1); private static var _userpageFormat:String; private static var _scoreboards:Array = new Array(); private static var _bridge:Bridge; private static var save_file:SaveFile; private static var _imageFilePath:String; private static var _saveFilePath:String; private static var _saveGroups:Array = []; private static var root:DisplayObject; private static var _eventDispatcher:EventDispatcher = new EventDispatcher(); private static var score_page_counts:Object = new Object(); private static var compression_radix:String = "/g8236klvBQ#&|;Zb*7CEA59%s`Oue1wziFp$rDVY@TKxUPWytSaGHJ>dmoMR^<0~4qNLhc(I+fjn)X"; private static var compressor:BaseN = new BaseN(compression_radix); public static var errors:Dictionary = APIError.init_codes(); private static var sharedObjects:Dictionary = new Dictionary(); private static var _preloadAssets:Array = []; public static var periods:Object = getPeriodAliases(); private static var period_aliases:Object = {t:{name:"Today", alias:"TODAY"}, p:{name:"Yesterday", alias:"YESTERDAY"}, w:{name:"This Week", alias:"THIS_WEEK"}, m:{name:"This Month", alias:"THIS_MONTH"}, y:{name:"This Year", alias:"THIS_YEAR"}, a:{name:"All-Time", alias:"ALL_TIME"}}; private static var secureCommand:String; public static function get adFeedURL():String{ return (ad_url); } public static function get preloadComplete():Boolean{ return (_preloadComplete); } private static function assertConnected():Boolean{ if (!_connected){ return (false); }; return (true); } public static function setVersion(_arg1:String):void{ if (((_arg1) && (!((_arg1 == ""))))){ version = _arg1; }; } public static function setUserEmail(_arg1:String):void{ user_email = _arg1; } public static function setFakeSession(_arg1:Boolean):void{ _fakeSession = _arg1; } public static function getFakeSession():Boolean{ return (_fakeSession); } public static function get debugMode():Boolean{ return (_debug); } public static function set debugMode(_arg1:Boolean):void{ _debug = _arg1; } public static function getTrackerID():uint{ return (_trackerId); } public static function getUserID():uint{ return (user_id); } public static function getUserName():String{ return (user_name); } public static function isConnected():Boolean{ return (_connected); } public static function getID():uint{ return (_trackerId); } public static function getOfficialURL():String{ var _local1:String = ((((((GATEWAY_URL + "?tracker_id=") + _movieId) + "&command_id=") + getCommandID("loadOfficalVersion")) + "&seed=") + Math.random()); if (debugMode){ _local1 = (_local1 + "&debug=1"); }; return (_local1); } public static function get adsApproved():Boolean{ return (_adsApproved); } public static function hasUserSession():Boolean{ return (((((!((session_id == null))) && (!((session_id == ""))))) && (!((publisher_id == 0))))); } public static function isNewgrounds():Boolean{ return ((((publisher_id == 1)) || (((_host) && ((_host.toLowerCase().indexOf("ungrounded.net") > -1)))))); } public static function hostIsCompatible():Boolean{ return (!((publisher_id == 0))); } public static function hasUserEmail():Boolean{ return (((!((user_email == null))) && (!((user_email == ""))))); } public static function connectionTimeOut(_arg1:Event=null):void{ dispatchEvent(new APIEvent(APIEvent.API_CONNECTED, false, new APIError("CONNECTION_FAILED", "Connection to NewgroundsAPI gateway timed out."))); } public static function connect(_arg1:LoaderInfo, _arg2:String, _arg3:String=null):void{ var loaderInfo = _arg1; var m_id = _arg2; var encrypt_key = _arg3; if (!loaderInfo){ fatalError("Null loaderInfo paremeter passed in to connectMovie!", ""); return; }; try { if (loaderInfo.loader){ loaderInfo = loaderInfo.loader.loaderInfo; }; } catch(error:Error) { }; _url = loaderInfo.url; _host = _url; if ((((_host.indexOf("http://") > -1)) || ((_host.indexOf("https://") > -1)))){ _host = _host.split("/")[2].toLowerCase(); } else { _host = "localhost"; }; var flashVars:Object = loaderInfo.parameters; if (isPublishedHost()){ debugMode = false; }; if (((!(debugMode)) && (flashVars))){ if (flashVars.NewgroundsAPI_UserName){ user_name = flashVars.NewgroundsAPI_UserName; }; if (flashVars.NewgroundsAPI_UserID){ user_id = flashVars.NewgroundsAPI_UserID; }; if (flashVars.NewgroundsAPI_PublisherID){ publisher_id = flashVars.NewgroundsAPI_PublisherID; } else { publisher_id = 0; }; if (flashVars.NewgroundsAPI_UserpageFormat){ _userpageFormat = flashVars.NewgroundsAPI_UserpageFormat; }; if (flashVars.NewgroundsAPI_SessionID){ session_id = flashVars.NewgroundsAPI_SessionID; }; if (flashVars.NewgroundsAPI_SaveGroupID){ _saveGroupId = flashVars.NewgroundsAPI_SaveGroupID; }; if (flashVars.NewgroundsAPI_SaveFileID){ _saveFileId = flashVars.NewgroundsAPI_SaveFileID; }; if (flashVars.NewgroundsAPI_SandboxID){ _bridge = new Bridge(flashVars.NewgroundsAPI_SandboxID); }; } else { publisher_id = 1; if (_fakeSession){ session_id = "D3bu64p1U53R"; user_id = 10; user_name = "API-Debugger"; }; }; if (connected){ fatalError("NewgroundsAPI.connect() - connection already in progress", "connect"); return; }; timeoutTimer.start(); if (!m_id){ fatalError("NewgroundsAPI.connectMovie() - missing required movieId parameter", "connectMovie"); }; _movieId = String(m_id); _trackerId = uint(_movieId.substring(0, _movieId.indexOf(":"))); _encryptionKey = encrypt_key; connected = true; sendCommand("connectMovie", {host:getHost(), movie_version:version}); } private static function getHost():String{ return (_host); } public static function isPublishedHost():Boolean{ return (((!((getHost() == "localhost"))) && ((getHost().indexOf("file://") == -1)))); } public static function loadUserPage(_arg1:uint=0, _arg2:String=null):Boolean{ var _local3:String; if ((((_arg1 == 0)) && ((_arg2 == null)))){ if (hasUserSession()){ _arg1 = user_id; _arg2 = user_name; } else { return (false); }; }; if (publisher_id == 1){ _local3 = (("http://" + _arg2.toLowerCase()) + ".newgrounds.com"); navigateToURL(new URLRequest(_local3), "_blank"); return (true); }; if (userpage_format){ _local3 = userpage_format; _local3 = _local3.split(":user_id:").join(_arg1.toString()); _local3 = _local3.split(":user_name:").join(escape(_arg2)); navigateToURL(new URLRequest(_local3), "_blank"); return (true); }; return (false); } public static function loadNewgrounds():void{ sendCommand("loadNewgrounds", {host:getHost()}, true); } public static function loadOfficialURL():void{ navigateToURL(new URLRequest(getOfficialURL())); } public static function loadMySite():void{ sendCommand("loadMySite", {host:getHost()}, true); } public static function loadCustomLink(_arg1:String):void{ sendCommand("loadCustomLink", {host:getHost(), link:_arg1}, true); } public static function logCustomEvent(_arg1:String):void{ sendCommand("logCustomEvent", {host:getHost(), event:_arg1}); } public static function getScoreBoard(_arg1:String):ScoreBoard{ var _local2:ScoreBoard; for each (_local2 in _scoreboards) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public static function getScoreBoardById(_arg1:uint):ScoreBoard{ var _local2:ScoreBoard; for each (_local2 in _scoreboards) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } public static function postScore(_arg1:String, _arg2:uint, _arg3:String=""):void{ if (((!(_arg1)) || ((_arg1 == "")))){ sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)")); return; }; if (_arg3 == null){ _arg3 = ""; }; sendSecureCommand("postScore", {user_name:user_name, board:_arg1, value:_arg2, publisher_id:publisher_id, tag:_arg3}); } public static function loadScores(_arg1:String, _arg2:String=null, _arg3:String=null):void{ var _local4 = "loadScores"; var _local5:ScoreBoard = getScoreBoard(_arg1); if (((!(_local5)) || (!(_local5.id)))){ sendError({command_id:getCommandID(_local4)}, new APIError("MISSING_PARAM", "missing required ScoreBoard instance")); return; }; var _local6:Object = {}; _local6.publisher_id = publisher_id; if (_arg2){ _local6.period = _arg2; } else { _local6.period = _local5.period; }; _local6.board = _local5.id; _local6.num_results = _local5.num_results; _local6.page = _local5.page; if (((!(_arg3)) || ((_arg3 == "")))){ _local6.tag = _local5.tag; } else { _local6.tag = _arg3; }; sendCommand(_local4, _local6); } public static function loadScoresInRange(_arg1:String, _arg2:String="All-Time", _arg3:uint=1, _arg4:uint=10):void{ if (((!(_arg1)) || ((_arg1 == "")))){ sendError({command_id:getCommandID("postScore")}, new APIError("MISSING_PARAM", "missing required parameter(s)")); return; }; var _local5:ScoreBoard = getScoreBoard(_arg1); if (_local5){ _local5.loadScoresInRange(_arg2, _arg3, _arg4); } else { sendWarning((("loadScoresInRange: Scoreboard " + _arg1) + " could not be found.")); }; } private static function populateMedals(_arg1:Array):void{ var _local2:uint; var _local3:Object; if (_medals === null){ _medals = new Array(); _local2 = 0; while (_local2 < _arg1.length) { _local3 = _arg1[_local2]; _medals.push(Medal.createFromObject(_local3)); _local2++; }; }; sendMessage("Medals loaded!"); } private static function populateSaveGroups(_arg1:Array):void{ var _local3:SaveGroup; _saveGroups = []; var _local2:uint; while (_local2 < _arg1.length) { _local3 = SaveGroup.createFromObject(_arg1[_local2]); _saveGroups.push(_local3); _local2++; }; } private static function populateScoreBoards(_arg1:Array):void{ _scoreboards = []; var _local2:uint; while (_local2 < _arg1.length) { _scoreboards.push(new ScoreBoard(_arg1[_local2].id, _arg1[_local2].name, "")); _local2++; }; } public static function getMedals():Array{ return (_medals); } public static function getMedalById(_arg1:uint):Medal{ var _local2:Medal; for each (_local2 in _medals) { if (_local2.id == _arg1){ return (_local2); }; }; return (null); } public static function getMedal(_arg1:String):Medal{ var _local2:Medal; for each (_local2 in _medals) { if (_local2.name == _arg1){ return (_local2); }; }; return (null); } public static function unlockMedal(_arg1:String):void{ var _local3:Object; var _local4:Object; if (((!(_arg1)) || ((_arg1 == "")))){ sendError({command_id:getCommandID("unlockMedal")}, new APIError("MISSING_PARAM", "missing required medal name")); return; }; var _local2:Medal = getMedal(_arg1); if (!_local2){ sendMessage(("No medal with name: " + _arg1)); return; }; if (((hasUserSession()) || (debugMode))){ sendMessage((("Attempting to unlock '" + _local2.name) + "'")); if (_local2.unlocked){ sendWarning((("Medal '" + _local2.name) + "' is already unlocked!")); return; }; _local3 = new Object(); _local3.medal_id = _local2.id; sendSecureCommand("unlockMedal", _local3); } else { sendMessage(("Locally unlocking " + _local2.name)); if (_local2.unlocked){ sendWarning((("Medal '" + _local2.name) + "' is already unlocked!")); return; }; _local2.unlocked = true; _local4 = loadLocal("medals_unlocked"); if (!_local4){ _local4 = new Object(); }; _local4[_local2.id.toString()] = true; saveLocal("medals_unlocked", _local4); callListener(APIEvent.UNLOCK_MEDAL, true, {medal:_local2}); }; } public static function loadMedals():void{ if (_medals){ dispatchEvent(new APIEvent(APIEvent.MEDALS_LOADED, true, {medals:getMedals()})); return; }; var _local1:Object = new Object(); if (hasUserSession()){ _local1.publisher_id = publisher_id; _local1.user_id = user_id; }; sendCommand("getMedals", _local1); } public static function saveLocal(_arg1:String, _arg2:Object, _arg3:uint=0):void{ var sharedObj:SharedObject; var save_id = _arg1; var save_data = _arg2; var size_allocation = _arg3; try { if (!sharedObjects[save_id]){ sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id)); }; sharedObj = sharedObjects[save_id]; sharedObj.data[save_id] = encodeData(save_data); sharedObj.flush(); } catch(e:Error) { sendWarning(("saveLocal ERROR: " + e)); }; } public static function loadLocal(_arg1:String):Object{ var sharedObj:SharedObject; var save_id = _arg1; try { if (!sharedObjects[save_id]){ sharedObjects[save_id] = SharedObject.getLocal(((("ng_ap_secure_" + _trackerId) + "_") + save_id)); }; sharedObj = sharedObjects[save_id]; if (((((sharedObj) && (sharedObj.data))) && (sharedObj.data[save_id]))){ return (decodeData(sharedObj.data[save_id])); } else { return (null); }; } catch(e:Error) { sendWarning(("loadLocal ERROR: " + e)); }; return (null); } public static function encodeData(_arg1:Object):String{ return (compressHex(RC4.encrypt(JSON.encode(_arg1), _encryptionKey))); } public static function decodeData(_arg1:String){ return (JSON.decode(RC4.decrypt(uncompressHex(_arg1), _encryptionKey))); } private static function compressHex(_arg1:String):String{ var _local2:uint = (_arg1.length % 6); var _local3 = ""; var _local4:uint; while (_local4 < _arg1.length) { _local3 = (_local3 + compressor.encode(uint(("0x" + _arg1.substr(_local4, 6))), 4)); _local4 = (_local4 + 6); }; return ((_local2.toString() + _local3)); } private static function uncompressHex(_arg1:String):String{ var _local4:uint; var _local6:String; var _local7:uint; var _local8:String; var _local2:uint = uint(_arg1.charAt(0)); var _local3 = ""; var _local5:uint = 1; while (_local5 < _arg1.length) { _local6 = _arg1.substr(_local5, 4); _local7 = uint(compressor.decode(_local6)); _local8 = _local7.toString(16); if ((_local5 + 4) < _arg1.length){ _local4 = 6; } else { _local4 = _local2; }; while (_local8.length < _local4) { _local8 = ("0" + _local8); }; _local3 = (_local3 + _local8); _local5 = (_local5 + 4); }; return (_local3); } public static function getSaveGroupById(_arg1:uint):SaveGroup{ if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){ sendWarning("No save groups found"); return (null); }; var _local2:uint; while (_local2 < _saveGroups.length) { if (_saveGroups[_local2].id == _arg1){ return (_saveGroups[_local2]); }; _local2++; }; return (null); } public static function getSaveGroup(_arg1:String):SaveGroup{ if (((!(_saveGroups)) || ((_saveGroups.length < 1)))){ sendWarning("No save groups found"); return (null); }; var _local2:uint; while (_local2 < _saveGroups.length) { if (_saveGroups[_local2].name == _arg1){ return (_saveGroups[_local2]); }; _local2++; }; return (null); } public static function getCurrentSaveFile(){ return (save_file); } public static function setCurrentSaveFile(_arg1:SaveFile){ save_file = _arg1; } public static function newSaveQuery(_arg1:String):SaveGroupQuery{ var _local2:SaveGroup = getSaveGroup(_arg1); if (_local2){ return (_local2.newQuery()); }; return (null); } public static function executeSaveQuery(_arg1:SaveGroupQuery):void{ sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.groupId, query:JSON.encode(_arg1.toObject())}, false, null, _arg1); } public static function lookupSaveFiles(_arg1:SaveGroup):void{ var _local2:SaveGroupQuery = _arg1.getQuery(false); sendCommand("lookupSaveFiles", {publisher_id:publisher_id, group_id:_arg1.id, query:_local2.toObject()}, false, null, _local2); } public static function checkFilePrivledges(_arg1:SaveFile):void{ sendCommand("checkFilePrivs", {group:_arg1.groupId, filename:_arg1.name, user_id:(user_id) ? user_id : 0, publisher_id:publisher_id}); } public static function newSaveFile(_arg1:String):SaveFile{ var _local2:SaveGroup = getSaveGroup(_arg1); if (_local2){ return (new SaveFile(_local2)); }; sendError({command_id:"newSaveFile"}, new APIError("INVALID_SAVE_GROUP", (("'" + _local2) + "' is not a valid save group."))); return (null); } public static function saveFile(_arg1:SaveFile, _arg2:Boolean=false, _arg3:Boolean=false):void{ var _local4:Object = _arg1.toObject(); _local4.user_name = user_name; if (_arg1.id){ _local4.save_id = _arg1.id; }; _local4.overwrite = (_arg2) ? 1 : 0; if (_arg3){ _local4.draft = 1; }; var _local5:ByteArray = new ByteArray(); if ((_arg1.contents is ByteArray)){ _local5.writeByte(0); _local5.writeBytes(_arg1.contents); } else { _local5.writeByte(1); _local5.writeObject(_arg1.contents); }; _local5.compress(); var _local6:Object = new Object(); _local6.file = _local5; if (_arg1.thumbnail){ _local6.thumbnail = PNGEncoder.encode(_arg1.thumbnail); }; save_file = _arg1; sendSecureCommand("saveFile", _local4, null, _local6, _arg1); } public static function rateSaveFile(_arg1:SaveFile, _arg2:SaveRating, _arg3:Number):void{ sendSecureCommand("rateSaveFile", {group:_arg1.groupId, save_id:_arg1.id, rating_id:_arg2.id, vote:_arg3, user_id:user_id}, null, null, _arg1); } public static function loadSaveFile(_arg1:Number, _arg2:Boolean=true){ var _local3:Object = {publisher_id:publisher_id, save_id:_arg1, get_contents:_arg2}; save_file = null; sendCommand("loadSaveFile", _local3); } public static function loadFilesByDate(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{ var _local7:*; var _local5:SaveGroup = getSaveGroup(_arg1); if (!_local5){ _local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name."); sendError({command_id:"loadFilesByDate"}, _local7); return; }; var _local6:SaveGroupQuery = _local5.newQuery(); if (_arg3){ _local6.addKeyCondition(_arg3, "=", _arg4); }; _local6.sortOn(SaveGroupQuery.CREATED_ON, _arg2); _local6.execute(); } public static function loadFilesByViews(_arg1:String, _arg2:Boolean=true, _arg3:String=null, _arg4=null):void{ var _local7:*; var _local5:SaveGroup = getSaveGroup(_arg1); if (!_local5){ _local7 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name."); sendError({command_id:"loadFilesByViews"}, _local7); return; }; var _local6:SaveGroupQuery = _local5.newQuery(); if (_arg3){ _local6.addKeyCondition(_arg3, "=", _arg4); }; _local6.sortOn(SaveGroupQuery.TOTAL_VIEWS, _arg2); _local6.execute(); } public static function loadFilesByRating(_arg1:String, _arg2:String, _arg3:Boolean=true, _arg4:String=null, _arg5=null):void{ var _local8:*; var _local6:SaveGroup = getSaveGroup(_arg1); if (!_local6){ _local8 = new APIError("QUERY_INCOMPLETE", "The query could not be preformed, check the spelling of your save group name."); sendError({command_id:"loadFilesByDate"}, _local8); return; }; var _local7:SaveGroupQuery = _local6.newQuery(); if (_arg4){ _local7.addKeyCondition(_arg4, "=", _arg5); }; _local7.sortOnRating(_arg2, _arg3); _local7.execute(); } public static function onRemoteAuthentication(_arg1:String){ var _local2:Object = JSON.decode(RC4.decrypt(_arg1, _encryptionKey)); user_id = _local2.NewgroundsAPI_UserID; user_name = _local2.NewgroundsAPI_UserName; session_id = _local2.NewgroundsAPI_SessionID; publisher_id = _local2.NewgroundsAPI_PublisherID; } private static function doEvent(_arg1:Object):void{ var _local2:String; var _local3:Object; var _local4:String; var _local5:Boolean; var _local6:ScoreBoard; var _local7:Array; var _local8:*; var _local9:String; var _local10:Medal; var _local11:SaveGroup; var _local12:Object; var _local13:Object; var _local14:Object; var _local15:SaveFile; var _local16:uint; var _local17:Object; var _local18:uint; var _local19:APIError; var _local20:Object; switch (getCommandName(_arg1.command_id)){ case "connectMovie": timeoutTimer.stop(); if (_arg1.success){ sendMessage("You have successfully connected to the Newgrounds API Gateway"); sendMessage((("Movie identified as \"" + _arg1.movie_name) + "\"")); callListener(APIEvent.API_CONNECTED, _arg1.success, {title:_arg1.movie_name}); } else { callListener(APIEvent.API_CONNECTED, _arg1.success, {}); return; }; _local5 = false; if (_arg1.ad_status === -1){ _local2 = "This movie was not approved to run Flash Ads."; sendWarning(_local2); sendWarning((("visit " + AD_TERMS_URL) + " to view our approval guidelines")); if (!_arg1.ad_url){ callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2)); } else { _local5 = true; }; } else { if (_arg1.ad_status === 0){ _local2 = "Flash Ads are currently awaiting approval."; sendNotice(_local2); if (!_arg1.ad_url){ callListener(APIEvent.ADS_APPROVED, false, new APIError("FLASH_ADS_NOT_APPROVED", _local2)); } else { _local5 = true; }; }; }; if (_arg1.ad_url){ ad_url = unescape(_arg1.ad_url); if (!_local5){ sendMessage("This movie has been approved to run Flash Ads!"); }; _adsApproved = true; callListener(APIEvent.ADS_APPROVED, true); }; if (_arg1.deny_host){ _local2 = (getHost() + " does not have permission to run this movie!"); sendWarning(_local2); sendWarning(("\tUpdate your API configuration to unblock " + getHost())); callListener(APIEvent.HOST_BLOCKED, true, {real_url:unescape(_arg1.movie_url), url:getOfficialURL()}); }; if (_arg1.movie_version){ sendWarning("According to your API Configuration, this version is out of date."); if (version){ sendWarning(("\tThe this movie is version " + version)); }; sendWarning(("\tThe most current version is " + _arg1.movie_version)); callListener(APIEvent.NEW_VERSION_AVAILABLE, true, {version:_arg1.movie_version, real_url:unescape(_arg1.movie_url), url:getOfficialURL()}); }; if (_arg1.request_portal_url){ sendCommand("setPortalID", {portal_url:_url}); }; sendCommand("preloadSettings", {publisher_id:publisher_id, user_id:user_id}); break; case "preloadSettings": if (_arg1.medals){ populateMedals(_arg1.medals); if (((!(hasUserSession())) && (!(debugMode)))){ echo("Checking for SharedObject Medals..."); _local8 = loadLocal("medals_unlocked"); if (_local8){ for (_local9 in _local8) { if (_local8[_local9]){ _local10 = getMedalById(uint(_local9)); echo(("Now unlocking " + _local10.name)); _local10.unlocked = true; }; }; }; }; }; if (_arg1.save_groups){ populateSaveGroups(_arg1.save_groups); }; if (_arg1.save_file_path){ _saveFilePath = (_arg1.save_file_path + "/"); }; if (_arg1.image_file_path){ _imageFilePath = (_arg1.image_file_path + "/"); }; if (_arg1.score_boards){ populateScoreBoards(_arg1.score_boards); }; sendMessage("Metadata loaded!"); callListener(APIEvent.METADATA_LOADED, _arg1.success); if (((_saveFileId) && (_saveGroupId))){ _local11 = getSaveGroupById(_saveGroupId); if (_local11){ callListener(APIEvent.FILE_REQUESTED, true, {save_id:_saveFileId, group:_local11}); }; }; _preloadComplete = true; break; case "logCustomEvent": if (_arg1.success){ sendMessage((("Event '" + _arg1.event) + "' was logged.")); }; callListener(APIEvent.EVENT_LOGGED, _arg1.success, {event:_arg1.event}); break; case "postScore": if (_arg1.success){ _local4 = "User"; if (user_email){ _local4 = user_email; } else { if (user_name){ _local4 = user_name; }; }; _local6 = getScoreBoardById(_arg1.board); if (_local6){ sendMessage((((((_local4 + " posted ") + _arg1.value) + " to '") + _local6.name) + "'")); }; if (_arg1.best_scores){ _local12 = {today:_arg1.best_scores.D, yesterday:_arg1.best_scores.P, week:_arg1.best_scores.W, year:_arg1.best_scores.Y, all_time:_arg1.best_scores.A}; } else { _local12 = {}; }; if (_arg1.best_ranks){ _local13 = {today:_arg1.best_ranks.D, yesterday:_arg1.best_ranks.P, week:_arg1.best_ranks.W, year:_arg1.best_ranks.Y, all_time:_arg1.best_ranks.A}; } else { _local13 = {}; }; if (_arg1.num_scores){ _local14 = {today:_arg1.num_scores.D, yesterday:_arg1.num_scores.P, week:_arg1.num_scores.W, year:_arg1.num_scores.Y, all_time:_arg1.num_scores.A}; } else { _local14 = {}; }; _local3 = {score:_arg1.score, value:_arg1.value, username:_local4, best_scores:_local12, best_ranks:_local13, num_scores:_local14}; }; callListener(APIEvent.SCORE_POSTED, _arg1.success, _local3); break; case "loadScores": _local3 = new Object(); _local6 = getScoreBoardById(_arg1.board); if (_local6){ _local6.setScores(_arg1.scores, _arg1.period, _arg1.page, _arg1.num_results, _arg1.num_scores); }; callListener(APIEvent.SCORES_LOADED, _arg1.success, {board:_local6}); break; case "unlockMedal": if (_medals){ _local10 = getMedal(_arg1.medal_name); if (_local10.unlocked){ return; }; _local10.unlocked = true; callListener(APIEvent.MEDAL_UNLOCKED, _arg1.success, {medal_id:_local10.id, medal:_local10}); }; break; case "getMedals": if (_arg1.success){ populateMedals(_arg1.medals); }; callListener(APIEvent.MEDALS_LOADED, _arg1.success, _local3); break; case "loadSaveFile": if (_arg1.success){ _local11 = getSaveGroupById(_arg1.group_id); _local15 = new SaveFile(_local11); _local15.id = _arg1.file.save_id; _local15.name = _arg1.file.filename; _local15.fileUrl = (_saveFilePath + _arg1.file.file); _local15.thumbnailUrl = (_imageFilePath + _arg1.file.thumb); _local15.authorName = _arg1.file.user_name; _local15.authorId = _arg1.file.user_id; _local15.setStatus(_arg1.file.status); _local15.description = _arg1.file.description; _local15.setFileSize(_arg1.file.file_size); if (((_arg1.file.keys) && (_arg1.file.keys.length))){ _local16 = 0; while (_local16 < _arg1.file.keys.length) { _local15.setKey(_arg1.file.keys[_local16].id, _arg1.file.keys[_local16].value); _local16++; }; }; if (((_arg1.file.ratings) && (_arg1.file.ratings.length))){ _local16 = 0; while (_local16 < _arg1.file.ratings.length) { _local15.setRating(_arg1.file.ratings[_local16].id, _arg1.file.ratings[_local16].votes, _arg1.file.ratings[_local16].score); _local16++; }; }; if (_arg1.get_contents){ _local15.loadContents(); }; }; save_file = _local15; callListener(APIEvent.FILE_INITIALIZED, _arg1.success, {save_id:_local15.id, file:_local15}); break; case "lookupSaveFiles": _local7 = []; if (((_arg1.success) && (_arg1.files))){ _local16 = 0; while (_local16 < _arg1.files.length) { _local17 = _arg1.files[_local16]; _local15 = new SaveFile(getSaveGroupById(_arg1.group_id)); _local15.name = _local17.filename; _local15.id = _local17.save_id; _local15.description = _local17.description; _local15.thumbnailUrl = (_imageFilePath + _local17.thumb); _local15.fileUrl = (_saveFilePath + _local17.file); _local15.authorName = _local17.user_name; _local15.authorId = _local17.user_id; _local15.setStatus(_local17.status); _local15.setFileSize(_local17.file_size); if (((_local17.keys) && (_local17.keys.length))){ _local18 = 0; while (_local18 < _local17.keys.length) { _local15.setKey(_local17.keys[_local18].id, _local17.keys[_local18].value); _local18++; }; }; if (((_local17.ratings) && (_local17.ratings.length))){ _local18 = 0; while (_local18 < _local17.ratings.length) { _local15.setRating(_local17.ratings[_local18].id, _local17.ratings[_local18].votes, _local17.ratings[_local18].score); _local18++; }; }; _local7.push(_local15); _local16++; }; }; _arg1.owner.setResults(_local7); _arg1.owner.dispatchEvent(new APIEvent(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner})); callListener(APIEvent.QUERY_COMPLETE, _arg1.success, {query:_arg1.owner}); break; case "rateSaveFile": _local15 = _arg1.owner; _arg1.success = ((_arg1.success) && (!(_arg1.already_voted))); if (_arg1.success){ _local15.setRating(_arg1.rating_id, _arg1.votes, _arg1.score); }; _arg1.file = _local15; if (_arg1.already_voted){ _local19 = new APIError("PERMISSION_DENIED", "You have already voted on this item today"); _local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {error:_local19, file:_local15, save_id:_local15.id})); callListener(APIEvent.VOTE_COMPLETE, _arg1.success, _arg1); } else { _local20 = _local15.getRating(_arg1.rating_id); _local15.dispatchEvent(new APIEvent(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id})); API.callListener(APIEvent.VOTE_COMPLETE, _arg1.success, {rating:_local20, file:_local15, save_id:_local15.id}); }; break; case "saveFile": _local3 = {}; if (_arg1.success){ _local3 = {save_id:_arg1.save_id, filename:_arg1.filename, file_url:_arg1.file_url, thumbnail:_arg1.thumbnail, icon:_arg1.icon}; SaveFile(_arg1.owner).fileSaved(_local3); }; _arg1.owner.dispatchEvent(new APIEvent(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file})); callListener(APIEvent.FILE_SAVED, _arg1.success, {save_id:save_file.id, file:save_file}); save_file = null; break; case "checkFilePrivs": _local3 = {filename:_arg1.filename, folder:_arg1.folder, can_read:_arg1.can_read, can_write:_arg1.can_write}; callListener(APIEvent.FILE_PRIVS_LOADED, _arg1.success, _local3); break; }; } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:uint=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public static function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } private static function dispatchEvent(_arg1:Event):void{ _eventDispatcher.dispatchEvent(_arg1); echo(("Fired Event: " + _arg1.type)); } static function callListener(_arg1:String, _arg2:Boolean=true, _arg3=undefined):void{ dispatchEvent(new APIEvent(_arg1, _arg2, _arg3)); if (_bridge){ _bridge.sendEvent(_arg1, {success:_arg2, data:_arg3}); }; } private static function getCommandName(_arg1:String):String{ return (_arg1); } private static function getCommandID(_arg1:String):String{ return (_arg1); } private static function getPeriodAliases():Object{ var _local2:String; var _local1:Object = new Object(); for (_local2 in period_aliases) { _local1[period_aliases[_local2].alias] = _local2; }; return (_local1); } public static function getPeriodName(_arg1:String):String{ var _local2:String; for (_local2 in period_aliases) { if (_local2 == _arg1){ return (period_aliases[_local2].name); }; }; return (null); } public static function getPeriodAlias(_arg1:String):String{ var _local2:String; for (_local2 in period_aliases) { if (_local2 == _arg1){ return (period_aliases[_local2].alias); }; }; return (null); } private static function sendError(_arg1:Object, _arg2:APIError):void{ var _local3:String = ((((("[NewgroundsAPI ERROR] :: " + getCommandName(_arg1.command_id)) + "() - ") + _arg2.name) + ":\n\t\t\t\t") + _arg2.message); trace(_local3); if (_bridge){ _bridge.sendEvent("trace", {data:_local3}); }; } private static function sendWarning(_arg1:String, _arg2:String=null):void{ if (_arg2){ _arg1 = (_arg1 + ((("\n[NewgroundsAPI WARNING] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; trace(_arg1); if (_bridge){ _bridge.sendEvent("trace", {data:_arg1}); }; } private static function sendNotice(_arg1:String, _arg2:String=null):void{ var _local3:String; if (_arg2){ _arg1 = (_arg1 + ((("\n[NewgroundsAPI NOTICE] :: \tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; trace(_arg1); if (_bridge){ _bridge.sendEvent("trace", {data:_arg1}); }; } private static function fatalError(_arg1:String, _arg2:String):void{ if (_arg2){ _arg1 = (_arg1 + ((("\n\tSee " + COMMANDS_WIKI_URL) + _arg2.toLowerCase()) + " for additional information.")); }; trace(("***ERROR*** class=API\n\n" + _arg1)); } public static function openLoginPage(){ if (hasUserSession()){ return; }; } public static function sendSecureCommand(_arg1:String, _arg2:Object, _arg3:Object=null, _arg4:Object=null, _arg5=null):void{ if (((((!(debugMode)) && (!(hasUserSession())))) && (!(hasUserEmail())))){ sendError({command_id:getCommandID(_arg1)}, new APIError("IDENTIFICATION_REQUIRED", (("You must be logged in or provide an e-mail address ( using NewgroundsAPI.setUserEmail(\"name@domain.com\"); ) to use " + _arg1) + "()."))); return; }; if (!_arg1){ fatalError("Missing command", "sendSecureCommand"); }; if (!_arg2){ fatalError("Missing secure_params", "sendSecureCommand"); }; if (!_arg3){ _arg3 = new Object(); }; var _local6 = ""; var _local7:uint; while (_local7 < 16) { _local6 = (_local6 + compression_radix.charAt(Math.floor((Math.random() * compression_radix.length)))); _local7++; }; if (((debugMode) && (!(session_id)))){ _arg2.session_id = ""; } else { _arg2.session_id = session_id; }; _arg2.as_version = 3; _arg2.user_email = user_email; _arg2.publisher_id = publisher_id; _arg2.seed = _local6; _arg2.command_id = getCommandID(_arg1); var _local8:String = MD5.hash(_local6); var _local9:String = RC4.encrypt(JSON.encode(_arg2), _encryptionKey); var _local10:String = (_local8 + _local9); _arg3.secure = compressHex(_local10); secureCommand = _arg1; sendCommand("securePacket", _arg3, false, _arg4, _arg5); } public static function stopPendingCommands():void{ SmartURLLoader.closeAll(); } private static function onCommandComplete(_arg1:Event):void{ var response:Object; var error:APIError; var e = _arg1; var loader:SmartURLLoader = SmartURLLoader(e.target); echo((("INPUT: \n" + loader.response) + "\n")); var i:uint; while (i < _preloadAssets.length) { if (_preloadAssets[i] == loader){ _preloadAssets.splice(i, 1); break; }; i = (i + 1); }; try { response = JSON.decode(loader.response); } catch(error:Error) { }; if (!response){ response = {command_id:loader._command, success:false}; }; response.owner = loader.owner; if (((!(response)) || (!(response.success)))){ if (response.command_id == "connectMovie"){ connected = false; }; error = new APIError(response.error_code, response.error_msg); sendError(response, error); if (response.command_id){ doEvent(response); }; } else { doEvent(response); }; } private static function onCommandError(_arg1:Event):void{ var _local2:Object = {success:false}; var _local3:SmartURLLoader = SmartURLLoader(_arg1.target); _local2.owner = _local3.owner; var _local4:uint; while (_local4 < _preloadAssets.length) { if (_preloadAssets[_local4] == _local3){ _preloadAssets.splice(_local4, 1); break; }; _local4++; }; if (_local3._command){ _local2.command_id = _local3._command; if (_local2.command_id == "connectMovie"){ connected = false; }; doEvent(_local2); }; } private static function sendCommand(_arg1:String, _arg2:Object, _arg3:Boolean=false, _arg4:Object=null, _arg5=null):void{ var _local7:String; var _local8:String; var _local9:String; if (((!(connected)) && (!((_arg1 == "connectMovie"))))){ _local7 = (("NewgroundsAPI." + _arg1) + "() - NewgroundsAPI.connectMovie() must be called before this command can be called\n"); fatalError(_local7, "connectMovie"); }; var _local6:SmartURLLoader = new SmartURLLoader(); _local6.addVariable("command_id", getCommandID(_arg1)); _local6.addVariable("tracker_id", _movieId); if (debugMode){ _local6.addVariable("debug", 1); }; if (_arg2){ for (_local8 in _arg2) { _local6.addVariable(_local8, _arg2[_local8]); }; }; if (_arg4){ for (_local9 in _arg4) { _local6.addFile(_local9, _arg4[_local9], _local9); }; }; if (_arg3){ _local6.method = URLRequestMethod.GET; } else { _local6.method = URLRequestMethod.POST; }; _local6.preventCache = true; if (_arg3){ _local6.openBrowser = true; _local6.method = URLRequestMethod.GET; } else { _local6.addEventListener(Event.COMPLETE, onCommandComplete); _local6.addEventListener(IOErrorEvent.IO_ERROR, onCommandError); _local6.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onCommandError); _local6.method = URLRequestMethod.POST; }; if (_arg2.secure){ _local6._command = secureCommand; } else { _local6._command = getCommandID(_arg1); }; _local6.owner = _arg5; _local6.load(GATEWAY_URL); } public static function isFlashVersion(_arg1:uint, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0):Boolean{ var _local6:Array = Capabilities.version.split(" ")[1].split(","); var _local7:Array = arguments; var _local8:uint; while (_local8 < _local7.length) { _local6[_local8] = uint(_local6[_local8]); _local8++; }; _local8 = 0; while (_local8 < _local7.length) { if (_local6[_local8] > _local7[_local8]){ return (true); }; if (_local6[_local8] < _local7[_local8]){ return (false); }; _local8++; }; return (true); } public static function createAd():FlashAd{ sendMessage("You may see a security sandbox violation. This is normal!"); return (new FlashAd()); } public static function sendMessage(_arg1:String, _arg2:Boolean=false):void{ var _local3:String = ("[NewgroundsAPI] :: " + _arg1); trace(_local3); if (_bridge){ _bridge.sendEvent("trace", {data:_local3}); }; } private static function echo(_arg1:String):void{ if (do_echo){ trace(_arg1); }; } } }//package com.newgrounds
Section 29
//APIError (com.newgrounds.APIError) package com.newgrounds { import flash.utils.*; public class APIError { public var code:Number;// = 0 public var message:String; public var name:String; public var alias:String; public static const aliases:Array = new Array("UNKNOWN_ERROR", "INVALID_API_ID", "MISSING_PARAM", "INVALID_STAT_ID", "INVALID_COMMAND_ID", "FLASH_ADS_NOT_APPROVED", "PERMISSION_DENIED", "IDENTIFICATION_REQUIRED", "INVALID_EMAIL_ADDRESS", "BANNED_USER", "SESSION_EXPIRED", "INVALID_SCORE", "INVALID_MEDAL", "INVALID_FOLDER", "FILE_NOT_FOUND", "SITE_ID_REQUIRED", "UPLOAD_IN_PROGRESS", "USER_CANCELLED", "CONFIRM_REQUEST", "CONNECTION_FAILED"); private static const always_caps:Array = new Array("API", "URL", "ID"); public static const error_codes:Object = init_codes(); public static const error_names:Object = init_names(); public function APIError(_arg1, _arg2:String){ if ((_arg1 is String)){ _arg1 = error_codes[_arg1]; } else { if (!(_arg1 is uint)){ _arg1 = 0; }; }; this.code = _arg1; this.message = _arg2; this.name = error_names[_arg1]; this.alias = aliases[_arg1]; } public function isError():Boolean{ return (true); } public static function init_codes():Dictionary{ var _local1:Dictionary = new Dictionary(); var _local2:uint; while (_local2 < aliases.length) { _local1[aliases[_local2]] = _local2; _local2++; }; return (_local1); } private static function init_names():Array{ var _local3:Array; var _local4:uint; var _local5:String; var _local1:Array = new Array(); var _local2:uint; while (_local2 < aliases.length) { _local3 = aliases[_local2].toLowerCase().split("_"); _local4 = 0; while (_local4 < _local3.length) { _local3[_local4] = (_local3[_local4].substr(0, 1).toUpperCase() + _local3[_local4].substr(1, _local3[_local4].length)); for each (_local5 in always_caps) { if (_local3[_local4].toUpperCase() == _local5){ _local3[_local4] = _local3[_local4].toUpperCase(); }; }; _local4++; }; _local1[_local2] = _local3.join(" "); _local2++; }; return (_local1); } } }//package com.newgrounds
Section 30
//APIEvent (com.newgrounds.APIEvent) package com.newgrounds { import flash.events.*; public class APIEvent extends Event { private var _data; private var _success:Boolean; private var _target; private var _error:APIError; public static const API_CONNECTED:String = "movieConnected"; public static const ADS_APPROVED:String = "adsApproved"; public static const AD_ATTACHED:String = "adAttached"; public static const HOST_BLOCKED:String = "hostBlocked"; public static const NEW_VERSION_AVAILABLE:String = "newVersionAvailable"; public static const EVENT_LOGGED:String = "eventLogged"; public static const SCORE_POSTED:String = "scorePosted"; public static const SCORES_LOADED:String = "scoresLoaded"; public static const UNLOCK_MEDAL:String = "unlockMedal"; public static const MEDAL_UNLOCKED:String = "medalUnlocked"; public static const MEDALS_LOADED:String = "medalsLoaded"; public static const METADATA_LOADED:String = "metadataLoaded"; public static const FILE_PRIVS_LOADED:String = "filePrivsLoaded"; public static const FILE_SAVED:String = "fileSaved"; public static const FILE_LOADED:String = "fileLoaded"; public static const FILE_INITIALIZED:String = "fileInitialized"; public static const FILE_REQUESTED:String = "fileRequested"; public static const QUERY_COMPLETE:String = "queryComplete"; public static const VOTE_COMPLETE:String = "voteComplete"; public function APIEvent(_arg1:String, _arg2:Boolean=true, _arg3=undefined){ super(_arg1); this._data = _arg3; this._success = _arg2; } public function get success():Boolean{ return (this._success); } public function get data(){ return (this._data); } } }//package com.newgrounds
Section 31
//BaseN (com.newgrounds.BaseN) package com.newgrounds { import flash.utils.*; public class BaseN { private var _hashIndex:String; private var _hashVal:Dictionary; private var _base:Number; public function BaseN(_arg1:String=null){ if (_arg1){ this._hashIndex = _arg1; } else { this._hashIndex = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ`~@#$%^&*()+|;/"; }; this._base = this._hashIndex.length; this._hashVal = new Dictionary(); var _local2:uint; while (_local2 < this._base) { this._hashVal[this._hashIndex.charAt(_local2)] = _local2; _local2++; }; } public function encode(_arg1:Number, _arg2:uint=1):String{ var _local3:String = _arg1.toString(); var _local4 = ""; if (_local3.charAt(0) == "-"){ _local4 = "-"; _local3 = _local3.substring(1); }; var _local5:Array = _local3.split(".", 2); _local4 = (_local4 + this.baseNEncoder(_local5[0], _arg2)); if (_local5.length > 1){ _local4 = (_local4 + ("." + this.baseNEncoder(_local5[1]))); }; return (_local4); } public function decode(_arg1:String):Number{ var _local2 = ""; if (_arg1.charAt(0) == "-"){ _local2 = "-"; _arg1 = _arg1.substring(1); }; var _local3:Array = _arg1.split(".", 2); _local2 = (_local2 + this.baseNDecoder(_local3[0])); if (_local3.length > 1){ _local2 = (_local2 + "."); _local2 = (_local2 + this.baseNDecoder(_local3[1])); }; return (Number(_local2)); } private function baseNEncoder(_arg1:uint, _arg2:uint=1):String{ var _local3 = ""; var _local4:uint = _arg1; while (_local4 != 0) { _local3 = (this._hashIndex.charAt((_local4 % this._base)) + _local3); _local4 = (_local4 / this._base); }; if (_arg2){ while (_local3.length < _arg2) { _local3 = (this._hashIndex.charAt(0) + _local3); }; }; return (_local3); } private function baseNDecoder(_arg1:String):uint{ var _local2:uint; var _local3:uint; while (_local3 < _arg1.length) { _local2 = (_local2 * this._base); _local2 = (_local2 + this._hashVal[_arg1.charAt(_local3)]); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 32
//Bridge (com.newgrounds.Bridge) package com.newgrounds { import flash.events.*; import flash.net.*; public class Bridge { private var _inConnection:LocalConnection; private var _outConnection:LocalConnection; private var _widgetId:String; public function Bridge(_arg1:String){ this._widgetId = _arg1; this._inConnection = new LocalConnection(); this._outConnection = new LocalConnection(); this._inConnection.client = this; this._inConnection.connect(("rec_" + this._widgetId)); this._outConnection.addEventListener(StatusEvent.STATUS, this.onStatus); } public function sendCommand(_arg1:String, _arg2:Object):void{ if (this._outConnection){ this._outConnection.send(this._widgetId, "sendCommand", _arg1, this.scrubParameters(_arg2)); }; } public function sendEvent(_arg1:String, _arg2:Object):void{ if (this._outConnection){ this._outConnection.send(this._widgetId, "sendEvent", _arg1, this.scrubParameters(_arg2)); }; } public function receiveEvent(_arg1:String, _arg2:Object):void{ API.callListener(_arg1, _arg2.success, _arg2.data); } public function scrubParameters(_arg1:Object):Object{ var _local3:String; var _local2:Object = new Object(); for (_local3 in _arg1) { if ((((((((((_arg1[_local3] is String)) || ((_arg1[_local3] is Number)))) || ((_arg1[_local3] is uint)))) || ((_arg1[_local3] is int)))) || ((_arg1[_local3] is Boolean)))){ _local2[_local3] = _arg1[_local3]; }; }; return (_local2); } private function onStatus(_arg1:Event):void{ } } }//package com.newgrounds
Section 33
//Medal (com.newgrounds.Medal) package com.newgrounds { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class Medal { private var _id:uint; private var _name:String; private var _value:uint; private var _difficultyId:uint; private var _unlocked:Boolean;// = false private var _iconUrl:URLRequest; private var _iconLoader:Loader; private var _icon:BitmapData; private static const DEFAULT_ICON:BitmapData = new BitmapData(50, 50, false, 0); private static const DIFFICULT_NAMES:Array = [null, "Easy", "Moderate", "Challenging", "Difficult", "Brutal"]; public function Medal(_arg1:uint, _arg2:String, _arg3:uint, _arg4:uint, _arg5:Boolean, _arg6:String){ var id = _arg1; var name = _arg2; var value = _arg3; var difficulty = _arg4; var unlocked = _arg5; var iconUrl = _arg6; this._icon = DEFAULT_ICON; super(); this._id = id; this._name = name; this._value = value; this._difficultyId = difficulty; this._unlocked = unlocked; if (iconUrl){ this._iconUrl = new URLRequest(iconUrl); this._iconLoader = new Loader(); this._iconLoader.contentLoaderInfo.addEventListener(Event.INIT, this.onIconLoaderInit); this._iconLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onIconLoaderError); this._iconLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onIconLoaderError); this._iconLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onIconLoaderComplete); try { this._iconLoader.load(this._iconUrl, new LoaderContext(true)); } catch(e:Error) { onIconLoaderError(null); }; }; } public function get difficulty():String{ return (DIFFICULT_NAMES[this._difficultyId]); } public function get difficultyId():uint{ return (this._difficultyId); } public function get icon():BitmapData{ return (this._icon); } public function get id():uint{ return (this._id); } public function get name():String{ return (this._name); } public function get unlocked():Boolean{ return (this._unlocked); } public function isUnlocked():Boolean{ return (this._unlocked); } public function set unlocked(_arg1:Boolean):void{ this._unlocked = _arg1; } public function get value():uint{ return (this._value); } public function get bytesLoaded():uint{ return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesLoaded : 0); } public function get bytesTotal():uint{ return ((this._iconLoader) ? this._iconLoader.contentLoaderInfo.bytesTotal : 0); } public function getID():uint{ return (this._id); } public function getName():String{ return (this._name); } public function getValue():uint{ return (this._value); } public function getDifficulty():String{ return (DIFFICULT_NAMES[this._difficultyId]); } private function onIconLoaderInit(_arg1:Event):void{ } private function onIconLoaderError(_arg1:IOErrorEvent):void{ trace((((("[NewgroundsAPI WARNING] :: Failed to load medal icon for " + this.name) + " (") + this._iconUrl.url.split("/").pop()) + ")")); this._iconLoader.unload(); this._iconLoader = null; } private function onIconLoaderComplete(_arg1:Event):void{ var _local2:Bitmap = (this._iconLoader.content as Bitmap); this._icon = _local2.bitmapData; this._iconLoader.unload(); this._iconLoader = null; } public function unlock():void{ if (!this._unlocked){ API.unlockMedal(this._name); }; } public function createIconBitmap():Bitmap{ return (new Bitmap(this.icon)); } public function toString():String{ return (this._name); } public static function createFromObject(_arg1:Object):Medal{ return (new Medal(_arg1.medal_id, _arg1.medal_name, _arg1.medal_value, _arg1.medal_difficulty, _arg1.medal_unlocked, _arg1.medal_icon)); } } }//package com.newgrounds
Section 34
//RC4 (com.newgrounds.RC4) package com.newgrounds { public class RC4 { private static var sbox:Array = new Array(0xFF); private static var mykey:Array = new Array(0xFF); public static function encrypt(_arg1:String, _arg2:String):String{ var _local3:Array = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToHex(_local5)); } public static function encryptbin(_arg1:String, _arg2:String):Array{ var _local3:Array = strToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (_local5); } public static function decrypt(_arg1:String, _arg2:String):String{ var _local3:Array = hexToChars(_arg1); var _local4:Array = strToChars(_arg2); var _local5:Array = calculate(_local3, _local4); return (charsToStr(_local5)); } private static function initialize(_arg1:Array):void{ var _local3:uint; var _local2:uint; var _local4:uint = _arg1.length; var _local5:uint; while (_local5 <= 0xFF) { mykey[_local5] = _arg1[(_local5 % _local4)]; sbox[_local5] = _local5; _local5++; }; _local5 = 0; while (_local5 <= 0xFF) { _local2 = (((_local2 + sbox[_local5]) + mykey[_local5]) % 0x0100); _local3 = sbox[_local5]; sbox[_local5] = sbox[_local2]; sbox[_local2] = _local3; _local5++; }; } private static function calculate(_arg1:Array, _arg2:Array):Array{ var _local6:uint; var _local7:uint; var _local8:uint; var _local10:uint; initialize(_arg2); var _local3:uint; var _local4:uint; var _local5:Array = new Array(); var _local9:uint; while (_local9 < _arg1.length) { _local3 = ((_local3 + 1) % 0x0100); _local4 = ((_local4 + sbox[_local3]) % 0x0100); _local7 = sbox[_local3]; sbox[_local3] = sbox[_local4]; sbox[_local4] = _local7; _local10 = ((sbox[_local3] + sbox[_local4]) % 0x0100); _local6 = sbox[_local10]; _local8 = (_arg1[_local9] ^ _local6); _local5.push(_local8); _local9++; }; return (_local5); } private static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:uint; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:uint = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:uint; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:uint; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 35
//SaveFile (com.newgrounds.SaveFile) package com.newgrounds { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; public class SaveFile extends EventDispatcher { private var _filename:String; private var _id:uint; private var _description:String; private var _contents; private var _loader:SmartURLLoader; private var _group:SaveGroup; private var _keys:Dictionary; private var _ratings:Dictionary; private var _fileUrl:String; private var _thumbnail:BitmapData; private var _thumbnailUrl:String; private var _authorId:uint; private var _authorName:String; private var _contentSize:uint; private var _locked:Boolean; private var _status:uint; private var duplicate_id:uint; private var _draft:Boolean; public static const STATUS_PRIVATE = 1; public static const STATUS_SHARED = 2; public static const STATUS_UNAPPROVED = 3; public static const STATUS_APPROVED = 4; public function SaveFile(_arg1:SaveGroup){ this._keys = new Dictionary(); this._ratings = new Dictionary(); this._group = _arg1; this._description = ""; } public function get name():String{ return (this._filename); } public function set name(_arg1:String):void{ this._filename = _arg1; } public function get id():uint{ return (this._id); } public function set id(_arg1:uint):void{ this._id = _arg1; } public function get description():String{ return (this._description); } public function set description(_arg1:String):void{ this._description = _arg1; } public function get contents(){ return (this._contents); } public function set contents(_arg1):void{ this._contents = _arg1; this._contentSize = 0; } public function get thumbnailUrl():String{ return (this._thumbnailUrl); } public function set thumbnailUrl(_arg1:String):void{ this._thumbnailUrl = _arg1; } public function get fileUrl():String{ return (this._fileUrl); } public function set fileUrl(_arg1:String):void{ this._fileUrl = _arg1; } public function get thumbnail():BitmapData{ return (this._thumbnail); } public function set thumbnail(_arg1:BitmapData):void{ if (this._thumbnail){ this._thumbnail.dispose(); }; this._thumbnail = _arg1.clone(); } public function loadThumbnail():Loader{ var _local1:Loader = new Loader(); if (this._thumbnailUrl){ _local1.load(new URLRequest(this._thumbnailUrl)); }; return (_local1); } public function get bytesLoaded():uint{ return ((this._loader) ? this._loader.bytesLoaded : this._contentSize); } public function get bytesTotal():uint{ return (this._contentSize); } public function get status():uint{ return (this._status); } function setStatus(_arg1:uint):void{ this._status = _arg1; } public function get groupId():uint{ return (this._group.id); } public function get groupName():String{ return (this._group.name); } public function get groupType():uint{ return (this._group.type); } public function get authorName():String{ return (this._authorName); } public function set authorName(_arg1:String):void{ this._authorName = _arg1; } public function get authorId():uint{ return (this._authorId); } public function set authorId(_arg1:uint):void{ this._authorId = _arg1; } public function get draft():Boolean{ return (this._draft); } public function set draft(_arg1:Boolean):void{ this._draft = _arg1; } public function get locked():Boolean{ return (this._locked); } public function get shared():Boolean{ return ((this._status == STATUS_SHARED)); } public function get isPrivate():Boolean{ return ((this._status == STATUS_PRIVATE)); } public function get isPublic():Boolean{ if (this.isPrivate){ return (false); }; if (((this._group.isType("SYSTEM")) || (this._group.isType("PRIVATE")))){ return (false); }; if (this._group.isType("PUBLIC")){ return (true); }; if (this.approved){ return (true); }; return (false); } public function get approved():Boolean{ return ((this._status > STATUS_UNAPPROVED)); } public function get keys():Dictionary{ return (this._keys); } public function get ratings():Dictionary{ return (this._ratings); } function setPermissions(_arg1:uint, _arg2:Boolean){ _arg2 = this._locked; this._status = _arg1; } function setFileSize(_arg1:uint):void{ this._contentSize = _arg1; } public function isLocked():Boolean{ return (this._locked); } public function getDescription():String{ return (this._description); } public function getShared():Boolean{ return (this._draft); } public function getDuplicateID():uint{ return (this.duplicate_id); } public function getKeys():Dictionary{ return (this._keys); } public function getRatings():Dictionary{ return (this._ratings); } public function setKey(_arg1, _arg2):void{ var _local3:SaveKey; if ((_arg1 is String)){ _local3 = this._group.getKeyName(_arg1); } else { _local3 = this._group.getKeyID(_arg1); }; if (_local3){ switch (_local3.type){ case SaveKey.TYPE_BOOLEAN: this._keys[_local3] = {id:_local3.id, value:Boolean(int(_arg2))}; break; case SaveKey.TYPE_FLOAT: this._keys[_local3] = {id:_local3.id, value:Number(_arg2)}; break; case SaveKey.TYPE_INTEGER: this._keys[_local3] = {id:_local3.id, value:int(_arg2)}; break; case SaveKey.TYPE_STRING: default: this._keys[_local3] = {id:_local3.id, value:_arg2.toString()}; break; }; }; } public function getKey(_arg1){ var _local2:SaveKey; if ((_arg1 is String)){ _local2 = this._group.getKeyName(_arg1); } else { _local2 = this._group.getKeyID(_arg1); }; if (_local2){ return (this._keys[_local2]); }; return (null); } public function setRating(_arg1, _arg2:Number, _arg3:Number):void{ var _local4:SaveRating; if ((_arg1 is String)){ _local4 = this._group.getRatingName(_arg1); } else { _local4 = this._group.getRatingID(_arg1); }; if (_local4){ this._ratings[_local4] = {id:_local4.id, name:_local4.name, votes:_arg2, score:_arg3}; }; } public function getRating(_arg1):Object{ var _local2:SaveRating; if ((_arg1 is String)){ _local2 = this._group.getRatingName(_arg1); } else { _local2 = this._group.getRatingID(_arg1); }; if (_local2){ return (this._ratings[_local2]); }; return (null); } public function sendRating(_arg1:String, _arg2:Number):void{ var _local3:SaveRating = this._group.getRatingName(_arg1); if (!_local3){ trace((("[NewgroundsAPISaveFile] " + _arg1) + " is not a recognized save file")); return; }; if ((((_arg2 < _local3.minValue)) || ((_arg2 > _local3.maxValue)))){ trace(((("[NewgroundsAPISaveFile] Vote must be between " + _local3.minValue) + " and ") + _local3.maxValue)); return; }; _local3.voted = true; API.rateSaveFile(this, _local3, _arg2); } override public function toString():String{ var _local2:Object; var _local3:Object; var _local1 = (((((("Save File " + this._filename) + " ID: ") + this._id) + "\n ") + this._description) + "\n"); for each (_local2 in this._keys) { _local1 = (_local1 + ((((" " + this._group.getKeyID(_local2.id).name) + ": ") + _local2.val) + "\n")); }; for each (_local3 in this._ratings) { _local1 = (_local1 + ((((((" " + this._group.getRatingID(_local3.id).name) + "\n Score: ") + _local3.score) + " Votes: ") + _local3.votes) + "\n")); }; return (_local1); } public function toObject():Object{ var _local2:Object; var _local1:Object = {group:this.groupId, filename:this.name, description:this.description, shared:true}; _local1.keys = []; for each (_local2 in this._keys) { _local1.keys.push({id:_local2.id, value:_local2.val}); }; return (_local1); } public function save(_arg1:Boolean=false, _arg2:Boolean=false):void{ API.saveFile(this, _arg1, _arg2); } public function loadContents():void{ if (this._fileUrl){ this._loader = new SmartURLLoader(); this._loader.responseFormat = URLLoaderDataFormat.BINARY; this._loader.addEventListener(Event.COMPLETE, this.onContentsLoaded); this._loader.addEventListener(IOErrorEvent.IO_ERROR, this.onContentsError); this._loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onContentsError); this._loader.load(this._fileUrl); }; } private function onContentsError(_arg1:Event):void{ this._loader = null; dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, false)); API.callListener(APIEvent.FILE_LOADED, false); } private function onContentsLoaded(_arg1:Event):void{ var _local2:ByteArray = _arg1.target.response; this._contentSize = _local2.length; _local2.uncompress(); var _local3:uint = _local2.readUnsignedByte(); if (_local3 == 0){ this._contents = new ByteArray(); this._contents.writeBytes(_local2, 1); } else { this._contents = _local2.readObject(); }; this._loader = null; dispatchEvent(new APIEvent(APIEvent.FILE_LOADED, true, {file:this})); API.callListener(APIEvent.FILE_LOADED, true, {file:this}); } public function loadAuthorPage(){ API.loadUserPage(this._authorId, this._authorName); } function fileSaved(_arg1:Object):void{ this._id = _arg1.save_id; this._thumbnailUrl = _arg1.thumbnail; this._fileUrl = _arg1.file_url; } } }//package com.newgrounds
Section 36
//SaveGroup (com.newgrounds.SaveGroup) package com.newgrounds { public class SaveGroup { private var _name:String; private var _id:uint; private var _type:uint; private var _keys:Array; private var _ratings:Array; private var _files:Array; private var _query:SaveGroupQuery; public static const TYPE_SYSTEM:uint = 0; public static const TYPE_PRIVATE:uint = 1; public static const TYPE_PUBLIC:uint = 2; public static const TYPE_MODERATED:uint = 3; public static const KEY_TYPES:Array = [null, "float", "integer", "string", "boolean"]; public static const TYPES:Object = {SYSTEM:0, PRIVATE:1, PUBLIC:2, MODERATED:3}; public function SaveGroup(_arg1:uint, _arg2:String, _arg3:uint){ this._name = _arg2; this._id = _arg1; this._type = _arg3; this._ratings = []; this._keys = []; this._files = []; this._query = new SaveGroupQuery(this); } public function get name():String{ return (this._name); } public function get id():uint{ return (this._id); } public function get type():uint{ return (this._type); } public function get keys():Array{ return (this._keys); } public function get ratings():Array{ return (this._ratings); } public function get group_id():uint{ return (this._id); } public function get group_name():String{ return (this._name); } public function addRating(_arg1:SaveRating):void{ this._ratings.push(_arg1); } function getRating(_arg1):SaveRating{ var _local2:uint; while (_local2 < this._ratings.length) { if ((((((((_arg1 is uint)) || ((_arg1 is int)))) || ((_arg1 is Number)))) && ((this._ratings[_local2].rating_id == _arg1)))){ return (this._ratings[_local2]); }; if (this._ratings[_local2].name == _arg1){ return (this._ratings[_local2]); }; _local2++; }; return (null); } public function getRatingID(_arg1:uint):SaveRating{ var _local2:uint; while (_local2 < this._ratings.length) { if (this._ratings[_local2].id == _arg1){ return (this._ratings[_local2]); }; _local2++; }; return (null); } public function getRatingName(_arg1:String):SaveRating{ var _local2:uint; while (_local2 < this._ratings.length) { if (this._ratings[_local2].name == _arg1){ return (this._ratings[_local2]); }; _local2++; }; return (null); } public function addKey(_arg1:SaveKey):void{ this._keys.push(_arg1); } public function getKey(_arg1):SaveKey{ var _local2:uint; while (_local2 < this._keys.length) { if ((((((((_arg1 is Number)) || ((_arg1 is uint)))) || ((_arg1 is int)))) && ((this._keys[_local2].key_id == _arg1)))){ return (this._keys[_local2]); }; if (this._keys[_local2].key_name == _arg1){ return (this._keys[_local2]); }; _local2++; }; return (null); } public function getKeyID(_arg1:uint):SaveKey{ var _local2:uint; while (_local2 < this._keys.length) { if (this._keys[_local2].id == _arg1){ return (this._keys[_local2]); }; _local2++; }; return (null); } public function getKeyType(_arg1:String, _arg2:Boolean=false){ var _local3:SaveKey = this.getKey(_arg1); if (_local3){ return ((_arg2) ? KEY_TYPES[_local3.key_type] : _local3.key_type); }; return (null); } public function getKeyName(_arg1:String):SaveKey{ var _local2:uint; while (_local2 < this._keys.length) { if (this._keys[_local2].name == _arg1){ return (this._keys[_local2]); }; _local2++; }; return (null); } public function isType(_arg1:String):Boolean{ return ((TYPES[this._type] == _arg1)); } public function getID():uint{ return (this._id); } public function getName():String{ return (this._name); } public function getQuery(_arg1:Boolean=false){ return ((_arg1) ? this._query.toObject() : this._query); } public function newQuery():SaveGroupQuery{ return (new SaveGroupQuery(this)); } public function newFile():SaveFile{ return (new SaveFile(this)); } public function toString():String{ return ((((((("SaveGroup { name: " + this._name) + ", id: ") + this._id) + ", keys: ") + this._keys) + "}")); } public static function createFromObject(_arg1:Object):SaveGroup{ var _local4:Object; var _local5:Object; var _local2:SaveGroup = new SaveGroup(_arg1.group_id, _arg1.group_name, _arg1.group_type); var _local3:uint; while (_local3 < _arg1.keys.length) { _local4 = _arg1.keys[_local3]; _local2.addKey(new SaveKey(_local4.id, _local4.name, _local4.type)); _local3++; }; _local3 = 0; while (_local3 < _arg1.ratings.length) { _local5 = _arg1.ratings[_local3]; _local2.addRating(new SaveRating(_local5.id, _local5.name, _local5.float, _local5.min, _local5.max)); _local3++; }; return (_local2); } } }//package com.newgrounds
Section 37
//SaveGroupQuery (com.newgrounds.SaveGroupQuery) package com.newgrounds { import flash.events.*; public class SaveGroupQuery extends EventDispatcher { private var _group:SaveGroup; private var _groupBy:Array; private var _lookupKeys:Array; private var _lookupRatings:Array; private var _fileConditions:Array; private var _keyConditions:Array; private var _ratingConditions:Array; private var _sortConditions:Array; private var _page:uint; private var _resultsPerPage:uint; private var _randomizeResults:Boolean; private var _results:Array; public static const TABLE_FILES:uint = 1; public static const TABLE_KEYS:uint = 2; public static const TABLE_RATINGS:uint = 3; public static const FILE_ID:uint = 0; public static const AUTHOR_ID:uint = 1; public static const AUTHOR_NAME:uint = 2; public static const FILE_NAME:uint = 3; public static const CREATED_ON:uint = 4; public static const UPDATED_ON:uint = 5; public static const TOTAL_VIEWS:uint = 6; public static const FILE_STATUS:uint = 7; public static const SCORE:String = "score"; public static const TOTAL_VOTES:String = "votes"; public function SaveGroupQuery(_arg1:SaveGroup){ this._results = []; super(); this._group = _arg1; this.reset(); } public function clearCache():void{ this._results = []; } public function get group():SaveGroup{ return (this._group); } public function get groupId():uint{ return (this._group.id); } public function get resultsPerPage():uint{ return (this._resultsPerPage); } public function set resultsPerPage(_arg1:uint):void{ this._resultsPerPage = _arg1; } public function get page():uint{ return (this._page); } public function set page(_arg1:uint):void{ this._page = _arg1; } public function get randomized():Boolean{ return (this._randomizeResults); } public function set randomized(_arg1:Boolean):void{ this._randomizeResults = _arg1; } public function get results():Array{ return (this._results); } public function reset():void{ this._fileConditions = []; this._keyConditions = []; this._ratingConditions = []; this._sortConditions = []; this._groupBy = []; this._lookupKeys = []; this._lookupRatings = []; this._randomizeResults = false; this._resultsPerPage = 20; this._page = 1; this.clearCache(); } function getGroup():SaveGroup{ return (this._group); } function getGroupID():uint{ return (this._group.getID()); } public function includeKey(_arg1:String):void{ var _local2:SaveKey = this._group.getKeyName(_arg1); if (_local2){ this._lookupKeys.push(_local2.id); }; } public function isRandomized():Boolean{ return (this._randomizeResults); } public function includeRating(_arg1:String):void{ var _local2:SaveRating = this._group.getRatingName(_arg1); if (_local2){ this._lookupRatings.push(_local2.id); }; } public function excludeKey(_arg1:String):void{ var _local2:SaveKey = this._group.getKeyName(_arg1); var _local3:uint; while (_local3 < this._lookupKeys.length) { if (this._lookupKeys[_local3] == _local2.id){ this._lookupKeys.splice(_local3, 1); return; }; _local3++; }; } public function excludeRating(_arg1:String):void{ var _local2:SaveRating = this._group.getRatingName(_arg1); var _local3:uint; while (_local3 < this._lookupRatings.length) { if (this._lookupRatings[_local3] == _local2.id){ this._lookupRatings.splice(_local3, 1); return; }; _local3++; }; } public function groupBy(_arg1:uint):void{ this._groupBy.push({table:TABLE_FILES, field:_arg1}); } public function groupByRating(_arg1:String):void{ var _local2:SaveRating = this._group.getRatingName(_arg1); if (!_local2){ return; }; this._groupBy.push({table:TABLE_RATINGS, field:_local2.id}); } public function groupByKey(_arg1:String):void{ var _local2:SaveKey = this._group.getKeyName(_arg1); if (!_local2){ return; }; this._groupBy.push({table:TABLE_KEYS, field:_local2.id}); } public function addFileCondition(_arg1:uint, _arg2:String, _arg3):void{ this._fileConditions.push({field:_arg1, operator:_arg2, value:_arg3}); } public function addKeyCondition(_arg1:String, _arg2:String, _arg3):void{ var _local4:SaveKey = this._group.getKeyName(_arg1); if (!_local4){ return; }; if (!this.checkValue(_arg3, _local4.type)){ return; }; this._keyConditions.push({key_id:_local4.id, operator:_arg2, value:_arg3}); } public function addRatingCondition(_arg1:String, _arg2:String, _arg3, _arg4:String="score"):void{ var _local5:SaveRating = this._group.getRatingName(_arg1); if (!_local5){ return; }; this._ratingConditions.push({rating_id:_local5.id, operator:_arg2, value:_arg3, column:_arg4}); } private function addSortCondition(_arg1:uint, _arg2:uint, _arg3:Boolean=false, _arg4=null):void{ var _local5:Object = {table:_arg1, field:_arg2, desc:_arg3}; if (_arg4){ _local5.extra = _arg4; }; this._sortConditions.push(_local5); } public function sortOn(_arg1:uint, _arg2:Boolean=false):void{ this.addSortCondition(TABLE_FILES, _arg1, _arg2); } public function sortOnKey(_arg1:String, _arg2:Boolean=false):void{ this.addSortCondition(TABLE_KEYS, this._group.getKeyName(_arg1).id, _arg2); } public function sortOnRating(_arg1:String, _arg2:Boolean=false, _arg3:String="score"):void{ this.addSortCondition(TABLE_RATINGS, this._group.getRatingName(_arg1).id, _arg2, _arg3); } public function sortOnRatingScore(_arg1:String, _arg2:Boolean){ this.sortOnRating(_arg1, _arg2, SCORE); } public function sortOnRatingVotes(_arg1:String, _arg2:Boolean){ this.sortOnRating(_arg1, _arg2, TOTAL_VOTES); } public function setResultsPerPage(_arg1:uint){ this._resultsPerPage = _arg1; this.clearCache(); } public function setPage(_arg1:Number){ this._page = _arg1; this.clearCache(); } public function setRandomize(_arg1:Boolean):void{ this._randomizeResults = _arg1; } public function execute():void{ API.executeSaveQuery(this); } private function checkValue(_arg1, _arg2:uint):Boolean{ return (true); } function setResults(_arg1:Array):void{ this._results = _arg1; } override public function toString():String{ return (""); } public function toObject():Object{ var _local1:Object = {page:this._page, num_results:this._resultsPerPage}; if (this.isRandomized()){ _local1.randomize = 1; }; if (((this._fileConditions) && ((this._fileConditions.length > 0)))){ _local1.file_conditions = this._fileConditions; }; if (((this._keyConditions) && ((this._keyConditions.length > 0)))){ _local1.key_conditions = this._keyConditions; }; if (((this._ratingConditions) && ((this._ratingConditions.length > 0)))){ _local1.rating_conditions = this._ratingConditions; }; if (((this._sortConditions) && ((this._sortConditions.length > 0)))){ _local1.sort_conditions = this._sortConditions; }; if (((this._lookupKeys) && ((this._lookupKeys.length > 0)))){ _local1.lookup_keys = this._lookupKeys; }; if (((this._lookupRatings) && ((this._lookupRatings.length > 0)))){ _local1.lookup_ratings = this._lookupRatings; }; if (((this._groupBy) && ((this._groupBy.length > 0)))){ _local1.group_by = this._groupBy; }; return (_local1); } } }//package com.newgrounds
Section 38
//SaveKey (com.newgrounds.SaveKey) package com.newgrounds { public class SaveKey { private var _id:uint; private var _name:String; private var _type:uint; public static const TYPE_FLOAT:uint = 1; public static const TYPE_INTEGER:uint = 2; public static const TYPE_STRING:uint = 3; public static const TYPE_BOOLEAN:uint = 4; public function SaveKey(_arg1:uint, _arg2:String, _arg3:uint){ this._id = _arg1; this._name = _arg2; this._type = _arg3; } public function get id():uint{ return (this._id); } public function get name():String{ return (this._name); } public function get type():uint{ return (this._type); } public function get key_id():uint{ return (this._id); } public function get key_name():String{ return (this._name); } public function get key_type():uint{ return (this._type); } public function isValueValid(_arg1):Boolean{ if (this._type == TYPE_INTEGER){ return ((((_arg1 is int)) || ((_arg1 is uint)))); }; if (this._type == TYPE_FLOAT){ return ((((((_arg1 is int)) || ((_arg1 is uint)))) || ((_arg1 is Number)))); }; if (this._type == TYPE_STRING){ return ((_arg1 is String)); }; if (this._type == TYPE_BOOLEAN){ return ((((((((_arg1 is Boolean)) || ((_arg1 === 0)))) || ((_arg1 === 1)))) || ((_arg1 == "")))); }; return (false); } public function toString():String{ return (this._name); } } }//package com.newgrounds
Section 39
//SaveRating (com.newgrounds.SaveRating) package com.newgrounds { public class SaveRating { private var _id:uint; private var _name:String; private var _minValue:Number; private var _maxValue:Number; private var _isFloat:Boolean; private var _voted:Boolean; public function SaveRating(_arg1:uint, _arg2:String, _arg3:Boolean, _arg4:Number=-INF, _arg5:Number=INF){ this._id = _arg1; this._name = _arg2; this._isFloat = _arg3; this._minValue = _arg4; this._maxValue = _arg5; } public function get rating_id():uint{ return (this._id); } public function get rating_name():String{ return (this._name); } public function get id():uint{ return (this._id); } public function get name():String{ return (this._name); } public function get minValue():Number{ return (this._minValue); } public function get maxValue():Number{ return (this._maxValue); } public function get isFloat():Boolean{ return (this._isFloat); } public function get voted():Boolean{ return (this._voted); } public function set voted(_arg1:Boolean):void{ this._voted = _arg1; } public function toString():String{ return (this._name); } } }//package com.newgrounds
Section 40
//Score (com.newgrounds.Score) package com.newgrounds { public class Score { private var _board:ScoreBoard; private var _position:uint; private var _username:String; private var _value:String; private var _numeric_value:uint; private var _tag:String; public function Score(_arg1:ScoreBoard, _arg2:Number, _arg3:String, _arg4:String, _arg5:uint, _arg6:String){ this._board = _arg1; this._position = _arg2; this._username = _arg3; this._value = _arg4; this._numeric_value = _arg5; this._tag = _arg6; } public function get board():ScoreBoard{ return (this._board); } public function get position():uint{ return (this._position); } public function get username():String{ return (this._username); } public function get value():String{ return (this._value); } public function get numeric_value():uint{ return (this._numeric_value); } public function get tag():String{ return (this._tag); } } }//package com.newgrounds
Section 41
//ScoreBoard (com.newgrounds.ScoreBoard) package com.newgrounds { import flash.events.*; public class ScoreBoard extends EventDispatcher { private var _name:String; private var _id:uint; private var _scores:Array; private var _period:String;// = "Today" private var _num_results:uint;// = 10 private var _numScores:uint; private var _desiredNumResults:uint; private var _startRank:uint; private var _endRank:uint; private var _page:uint;// = 1 private var _tag:String; public function ScoreBoard(_arg1:uint, _arg2:String, _arg3:String){ this._name = _arg2; this._id = _arg1; this._scores = []; this._tag = _arg3; } public function exists():Boolean{ return ((this._id > 0)); } public function get id():Number{ return (this._id); } public function get name():String{ return (this._name); } public function get period():String{ return (this._period); } public function get page():uint{ return (this._page); } public function get num_results():uint{ return (this._num_results); } public function get scores():Array{ return (this._scores); } public function get tag():String{ return (this._tag); } public function get num_scores():uint{ return (this._numScores); } public function postScore(_arg1:uint, _arg2:String=null):void{ if (_arg2){ this._tag = _arg2; }; API.postScore(this._name, _arg1); } public function loadScores(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{ this._period = _arg1; if (((!(this._period)) || ((this._period == "")))){ this._period = ScoreBoardPeriod.TODAY; }; this._page = _arg2; this._num_results = _arg3; this._desiredNumResults = 0; API.loadScores(this.name); } public function loadScoresInRange(_arg1:String="Today", _arg2:uint=1, _arg3:uint=10):void{ if (_arg2 == 0){ _arg2 = 1; }; if (_arg3 < _arg2){ _arg3 = _arg2; }; this._period = _arg1; if (((!(this._period)) || ((this._period == "")))){ this._period = ScoreBoardPeriod.TODAY; }; this._desiredNumResults = ((_arg3 - _arg2) + 1); this._num_results = this._desiredNumResults; while (int(((_arg2 - 1) / this._num_results)) != int(((_arg3 - 1) / this._num_results))) { this._num_results++; }; this._page = ((_arg2 - 1) / this._num_results); this._startRank = _arg2; this._endRank = _arg3; this._page++; API.loadScores(this.name); } function setScores(_arg1:Array, _arg2:String, _arg3:Number, _arg4:Number, _arg5:uint):void{ var _local7:uint; this._period = _arg2; this._page = _arg3; this._num_results = _arg4; this._numScores = _arg5; this._scores = []; var _local6:uint; while (_local6 < _arg1.length) { _local7 = (((this._num_results * (this._page - 1)) + 1) + _local6); if (((!(this._desiredNumResults)) || ((((_local7 >= this._startRank)) && ((_local7 <= this._endRank)))))){ this._scores.push(new Score(this, _local7, _arg1[_local6].username, _arg1[_local6].value, _arg1[_local6].numeric_value, _arg1[_local6].tag)); }; _local6++; }; this._num_results = this._scores.length; } } }//package com.newgrounds
Section 42
//ScoreBoardPeriod (com.newgrounds.ScoreBoardPeriod) package com.newgrounds { public class ScoreBoardPeriod { public static const TODAY:String = "Today"; public static const WEEK:String = "This Week"; public static const MONTH:String = "This Month"; public static const YEAR:String = "This Year"; public static const ALL_TIME:String = "All-Time"; } }//package com.newgrounds
Section 43
//SmartURLLoader (com.newgrounds.SmartURLLoader) package com.newgrounds { import flash.events.*; import flash.utils.*; import flash.net.*; import flash.errors.*; public class SmartURLLoader extends EventDispatcher { private var _variables:Dictionary; private var _files:Dictionary; private var _hasVariables:Boolean; private var _method:String;// = "GET" private var _urlRequest:URLRequest; private var _urlLoader:URLLoader; private var _dataFormat:String;// = "text" private var _openBrowser:Boolean;// = false private var _preventCache:Boolean;// = false var _command:String; public var owner; private static const CRLF:String = " "; private static var _loaders:Dictionary = new Dictionary(); public function SmartURLLoader(){ this._urlRequest = new URLRequest(); this._variables = new Dictionary(); } public function get responseFormat():String{ return (this._dataFormat); } public function set responseFormat(_arg1:String):void{ this._dataFormat = _arg1; } public function get response(){ return (this._urlLoader.data); } public function get hasFiles():Boolean{ return (Boolean(this._files)); } public function get method():String{ return (this._method); } public function set method(_arg1:String):void{ if (((this.hasFiles) && ((_arg1 == URLRequestMethod.GET)))){ throw (new IllegalOperationError("GET cannot be used to upload files.")); }; this._method = _arg1; } public function get openBrowser():Boolean{ return (this._openBrowser); } public function set openBrowser(_arg1:Boolean):void{ this._openBrowser = _arg1; } public function get preventCache():Boolean{ return (this._preventCache); } public function set preventCache(_arg1:Boolean):void{ this._preventCache = _arg1; } public function get bytesLoaded():uint{ return ((this._urlLoader) ? this._urlLoader.bytesLoaded : 0); } public function get bytesTotal():uint{ return ((this._urlLoader) ? this._urlLoader.bytesTotal : 0); } public function addVariable(_arg1:String, _arg2=""):void{ this._variables[_arg1] = _arg2; if (_arg2){ this._hasVariables = true; }; } public function addFile(_arg1:String, _arg2:ByteArray, _arg3:String, _arg4:String="application/octet-stream"):void{ this.method = URLRequestMethod.POST; if (!this._files){ this._files = new Dictionary(); }; this._files[_arg1] = new File(_arg1, _arg2, _arg3, _arg4); } public function clearVariables():void{ this._variables = new Dictionary(); } public function clearFiles():void{ this._files = null; } public function load(_arg1:String):void{ var urlVariables:URLVariables; var key:String; var boundary:String; var i:uint; var event:SecurityErrorEvent; var url = _arg1; this._urlRequest.url = url; if (this._preventCache){ url = (url + ("?seed=" + Math.random())); if (this._hasVariables){ url = (url + "&"); }; }; this._urlRequest.method = this._method; if ((((this._urlRequest.method == URLRequestMethod.GET)) || (!(this.hasFiles)))){ this._urlRequest.contentType = "application/x-www-form-urlencoded"; if (this._hasVariables){ urlVariables = new URLVariables(); for (key in this._variables) { urlVariables[key] = this._variables[key]; }; this._urlRequest.data = urlVariables; }; } else { boundary = ""; i = 0; while (i < 32) { boundary = (boundary + String.fromCharCode(uint((97 + (Math.random() * 25))))); i = (i + 1); }; this._urlRequest.contentType = (("multipart/form-data; boundary=\"" + boundary) + "\""); this._urlRequest.data = this.buildMultipartData(boundary); }; if (this.openBrowser){ navigateToURL(this._urlRequest, "_blank"); } else { this._urlLoader = new URLLoader(); this._urlLoader.dataFormat = this._dataFormat; this._urlLoader.addEventListener(Event.COMPLETE, this.onComplete); this._urlLoader.addEventListener(ProgressEvent.PROGRESS, this.onProgress); this._urlLoader.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError); this._urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus); this._urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError); _loaders[this._urlLoader] = this; try { this._urlLoader.load(this._urlRequest); } catch(error:Error) { event = new SecurityErrorEvent(SecurityErrorEvent.SECURITY_ERROR, false, false, error.message); onSecurityError(event); }; }; } public function close():void{ try { this._urlLoader.close(); } catch(e:Error) { }; } public function dispose():void{ this.close(); this._files = null; this._variables = null; if (this._urlLoader){ this._urlLoader.removeEventListener(Event.COMPLETE, this.onComplete); this._urlLoader.removeEventListener(ProgressEvent.PROGRESS, this.onProgress); this._urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, this.onIOError); this._urlLoader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, this.onHTTPStatus); this._urlLoader.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, this.onSecurityError); this._urlLoader = null; }; this._urlRequest = null; delete _loaders[this]; } private function buildMultipartData(_arg1:String):ByteArray{ var _local3:String; var _local4:File; var _local2:ByteArray = new ByteArray(); _local2.endian = Endian.BIG_ENDIAN; _arg1 = ("--" + _arg1); for (_local3 in this._variables) { _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(((("Content-Disposition: form-data; name=\"" + _local3) + "\"") + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes((this._variables[_local3] + CRLF)); }; if (this.hasFiles){ for each (_local4 in this._files) { _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Filename\"" + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes((_local4.fileName + CRLF)); _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(((((("Content-Disposition: form-data; name=\"" + _local4.dataField) + "\"; filename=\"") + _local4.fileName) + "\"") + CRLF)); _local2.writeUTFBytes((("Content-Type: " + _local4.contentType) + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeBytes(_local4.data); _local2.writeUTFBytes(CRLF); }; _local2.writeUTFBytes((_arg1 + CRLF)); _local2.writeUTFBytes(("Content-Disposition: form-data; name=\"Upload\"" + CRLF)); _local2.writeUTFBytes(CRLF); _local2.writeUTFBytes(("Submit Query" + CRLF)); }; _local2.writeUTFBytes((_arg1 + "--")); _local2.position = 0; _local2.position = 0; return (_local2); } private function onComplete(_arg1:Event):void{ dispatchEvent(_arg1); this.dispose(); } private function onProgress(_arg1:ProgressEvent):void{ dispatchEvent(_arg1); } private function onIOError(_arg1:IOErrorEvent):void{ dispatchEvent(_arg1); this.dispose(); } private function onSecurityError(_arg1:SecurityErrorEvent):void{ dispatchEvent(_arg1); this.dispose(); } private function onHTTPStatus(_arg1:HTTPStatusEvent):void{ dispatchEvent(_arg1); } public static function closeAll():void{ var _local1:SmartURLLoader; for each (_local1 in _loaders) { if (_local1){ _local1.dispose(); }; }; _loaders = new Dictionary(); } } }//package com.newgrounds import flash.utils.*; class File { private var fileName:String; private var data:ByteArray; private var dataField:String; private var contentType:String; private function File(_arg1:String, _arg2:ByteArray, _arg3:String="Filedata", _arg4:String="application/octet-stream"){ this.fileName = _arg1; this.data = _arg2; this.dataField = _arg3; this.contentType = _arg4; } }
Section 44
//Flash_38 (Futura_fla.Flash_38) package Futura_fla { import flash.display.*; public dynamic class Flash_38 extends MovieClip { public function Flash_38(){ addFrameScript(7, frame8); } function frame8(){ stop(); } } }//package Futura_fla
Section 45
//Girl_146 (Futura_fla.Girl_146) package Futura_fla { import flash.display.*; public dynamic class Girl_146 extends MovieClip { public function Girl_146(){ addFrameScript(310, frame311); } function frame311(){ stop(); } } }//package Futura_fla
Section 46
//Girl_147 (Futura_fla.Girl_147) package Futura_fla { import flash.display.*; public dynamic class Girl_147 extends MovieClip { public function Girl_147(){ addFrameScript(336, frame337); } function frame337(){ gotoAndPlay(205); } } }//package Futura_fla
Section 47
//Girl_148 (Futura_fla.Girl_148) package Futura_fla { import flash.display.*; public dynamic class Girl_148 extends MovieClip { public function Girl_148(){ addFrameScript(322, frame323); } function frame323(){ stop(); } } }//package Futura_fla
Section 48
//Girl_156 (Futura_fla.Girl_156) package Futura_fla { import flash.display.*; public dynamic class Girl_156 extends MovieClip { public function Girl_156(){ addFrameScript(310, frame311); } function frame311(){ stop(); } } }//package Futura_fla
Section 49
//Girl_157 (Futura_fla.Girl_157) package Futura_fla { import flash.display.*; public dynamic class Girl_157 extends MovieClip { public function Girl_157(){ addFrameScript(310, frame311); } function frame311(){ gotoAndPlay(185); } } }//package Futura_fla
Section 50
//Girl_158 (Futura_fla.Girl_158) package Futura_fla { import flash.display.*; public dynamic class Girl_158 extends MovieClip { public function Girl_158(){ addFrameScript(322, frame323); } function frame323(){ stop(); } } }//package Futura_fla
Section 51
//Girl_91 (Futura_fla.Girl_91) package Futura_fla { import flash.display.*; public dynamic class Girl_91 extends MovieClip { public function Girl_91(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package Futura_fla
Section 52
//Pos_109 (Futura_fla.Pos_109) package Futura_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.text.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.xml.*; public dynamic class Pos_109 extends MovieClip { public var lastPlayed:int; public var sounds:Array; public var delay:int; public function Pos_109(){ addFrameScript(0, frame1); } public function playSound(_arg1:Event):void{ var _local2:int; if (delay > 0){ delay--; } else { _local2 = Math.floor((Math.random() * sounds.length)); if (_local2 == sounds.length){ _local2--; }; if (_local2 == lastPlayed){ _local2 = ((Math.random() > 0.5)) ? (_local2 + 1) : (_local2 - 1); if (_local2 > (sounds.length - 1)){ _local2 = 0; }; if (_local2 < 0){ _local2 = (sounds.length - 1); }; }; sounds[_local2].play(); delay = (Math.round((Math.random() * 100)) + 125); lastPlayed = _local2; }; } function frame1(){ visible = false; delay = ((Math.round(Math.random()) * 20) + 15); lastPlayed = -1; sounds = [new M8(), new M9(), new M10()]; addEventListener(Event.ENTER_FRAME, playSound); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, playSound); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Futura_fla
Section 53
//Pos_121 (Futura_fla.Pos_121) package Futura_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.text.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.xml.*; public dynamic class Pos_121 extends MovieClip { public var lastPlayed:int; public var sounds:Array; public var delay:int; public function Pos_121(){ addFrameScript(0, frame1); } public function playSound(_arg1:Event):void{ var _local2:int; if (delay > 0){ delay--; } else { _local2 = Math.floor((Math.random() * sounds.length)); if (_local2 == sounds.length){ _local2--; }; if (_local2 == lastPlayed){ _local2 = (_local2 + ((Math.random() > 0.5)) ? 1 : -1); if (_local2 > (sounds.length - 1)){ _local2 = 0; }; if (_local2 < 0){ _local2 = (sounds.length - 1); }; }; sounds[_local2].play(); delay = (Math.round((Math.random() * 80)) + 100); lastPlayed = _local2; }; } function frame1(){ visible = false; delay = ((Math.round(Math.random()) * 20) + 15); lastPlayed = -1; sounds = [new M7(), new M4(), new M11()]; addEventListener(Event.ENTER_FRAME, playSound); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, playSound); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Futura_fla
Section 54
//Pos_129 (Futura_fla.Pos_129) package Futura_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.ui.*; import flash.geom.*; import flash.text.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.xml.*; public dynamic class Pos_129 extends MovieClip { public var lastPlayed:int; public var sounds:Array; public var delay:int; public function Pos_129(){ addFrameScript(0, frame1); } public function playSound(_arg1:Event):void{ var _local2:int; if (delay > 0){ delay--; } else { _local2 = Math.floor((Math.random() * sounds.length)); if (_local2 == sounds.length){ _local2--; }; if (_local2 == lastPlayed){ _local2 = (_local2 + ((Math.random() > 0.5)) ? 1 : -1); if (_local2 > (sounds.length - 1)){ _local2 = 0; }; if (_local2 < 0){ _local2 = (sounds.length - 1); }; }; sounds[_local2].play(); delay = (Math.round((Math.random() * 65)) + 80); lastPlayed = _local2; }; } function frame1(){ visible = false; delay = ((Math.round(Math.random()) * 20) + 15); lastPlayed = -1; sounds = [new M8(), new M5(), new M6()]; addEventListener(Event.ENTER_FRAME, playSound); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, playSound); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package Futura_fla
Section 55
//Pos_130 (Futura_fla.Pos_130) package Futura_fla { import flash.display.*; public dynamic class Pos_130 extends MovieClip { public function Pos_130(){ addFrameScript(31, frame32); } function frame32(){ gotoAndPlay(1); } } }//package Futura_fla
Section 56
//Pos_141 (Futura_fla.Pos_141) package Futura_fla { import flash.display.*; public dynamic class Pos_141 extends MovieClip { public function Pos_141(){ addFrameScript(13, frame14); } function frame14(){ gotoAndPlay(1); } } }//package Futura_fla
Section 57
//Pos_144 (Futura_fla.Pos_144) package Futura_fla { import flash.display.*; public dynamic class Pos_144 extends MovieClip { public function Pos_144(){ addFrameScript(298, frame299); } function frame299(){ gotoAndPlay(210); } } }//package Futura_fla
Section 58
//Pos_154 (Futura_fla.Pos_154) package Futura_fla { import flash.display.*; public dynamic class Pos_154 extends MovieClip { public function Pos_154(){ addFrameScript(310, frame311); } function frame311(){ gotoAndPlay(222); } } }//package Futura_fla
Section 59
//BGM (BGM) package { import flash.media.*; public dynamic class BGM extends Sound { } }//package
Section 60
//Credit (Credit) package { import Classes.*; public dynamic class Credit extends ADV_Button { } }//package
Section 61
//Gir_LegLeftSweat (Gir_LegLeftSweat) package { import Classes.Detail.*; public dynamic class Gir_LegLeftSweat extends Sweat { } }//package
Section 62
//Girl_ArmUpperLeftSweat (Girl_ArmUpperLeftSweat) package { import Classes.Detail.*; public dynamic class Girl_ArmUpperLeftSweat extends Sweat { } }//package
Section 63
//Girl_BreastLeftSweat (Girl_BreastLeftSweat) package { import Classes.Detail.*; public dynamic class Girl_BreastLeftSweat extends Sweat { } }//package
Section 64
//Girl_BreastRightSweat (Girl_BreastRightSweat) package { import Classes.Detail.*; public dynamic class Girl_BreastRightSweat extends Sweat { } }//package
Section 65
//Girl_HeadSweat (Girl_HeadSweat) package { import Classes.Detail.*; public dynamic class Girl_HeadSweat extends Sweat { } }//package
Section 66
//Girl_LegRightSweat (Girl_LegRightSweat) package { import Classes.Detail.*; public dynamic class Girl_LegRightSweat extends Sweat { } }//package
Section 67
//Girl_TorsoSweat (Girl_TorsoSweat) package { import Classes.Detail.*; public dynamic class Girl_TorsoSweat extends Sweat { } }//package
Section 68
//Girl_WaistSweat (Girl_WaistSweat) package { import Classes.Detail.*; public dynamic class Girl_WaistSweat extends Sweat { } }//package
Section 69
//Girl_VulvaSweat (Girl_VulvaSweat) package { import Classes.Detail.*; public dynamic class Girl_VulvaSweat extends Sweat { } }//package
Section 70
//HUD_But1 (HUD_But1) package { import Classes.*; public dynamic class HUD_But1 extends ADV_Button { } }//package
Section 71
//HUD_But2 (HUD_But2) package { import Classes.*; public dynamic class HUD_But2 extends ADV_Button { } }//package
Section 72
//HUD_But3 (HUD_But3) package { import Classes.*; public dynamic class HUD_But3 extends ADV_Button { } }//package
Section 73
//HUD_ButBackground (HUD_ButBackground) package { import Classes.*; public dynamic class HUD_ButBackground extends ADV_Button { } }//package
Section 74
//HUD_ButCum (HUD_ButCum) package { import Classes.*; public dynamic class HUD_ButCum extends ADV_Button { } }//package
Section 75
//HUD_ButFullscreen (HUD_ButFullscreen) package { import Classes.*; public dynamic class HUD_ButFullscreen extends ADV_Button { } }//package
Section 76
//HUD_ButMusic (HUD_ButMusic) package { import Classes.*; public dynamic class HUD_ButMusic extends ADV_Button { } }//package
Section 77
//HUD_ButQuality (HUD_ButQuality) package { import Classes.*; public dynamic class HUD_ButQuality extends ADV_Button { } }//package
Section 78
//HUD_ButStop (HUD_ButStop) package { import Classes.*; public dynamic class HUD_ButStop extends ADV_Button { } }//package
Section 79
//M10 (M10) package { import flash.media.*; public dynamic class M10 extends Sound { } }//package
Section 80
//M11 (M11) package { import flash.media.*; public dynamic class M11 extends Sound { } }//package
Section 81
//M12 (M12) package { import flash.media.*; public dynamic class M12 extends Sound { } }//package
Section 82
//M3 (M3) package { import flash.media.*; public dynamic class M3 extends Sound { } }//package
Section 83
//M4 (M4) package { import flash.media.*; public dynamic class M4 extends Sound { } }//package
Section 84
//M5 (M5) package { import flash.media.*; public dynamic class M5 extends Sound { } }//package
Section 85
//M6 (M6) package { import flash.media.*; public dynamic class M6 extends Sound { } }//package
Section 86
//M7 (M7) package { import flash.media.*; public dynamic class M7 extends Sound { } }//package
Section 87
//M8 (M8) package { import flash.media.*; public dynamic class M8 extends Sound { } }//package
Section 88
//M9 (M9) package { import flash.media.*; public dynamic class M9 extends Sound { } }//package
Section 89
//Main (Main) package { import flash.events.*; import flash.display.*; import com.newgrounds.*; import com.newgrounds.components.*; import flash.net.*; import flash.media.*; import Classes.System.*; import flash.ui.*; public class Main extends MovieClip { public var gameMask:Sprite; public var music:Boolean; public var myMenu:ContextMenu; public var CONTENT_READY:Boolean; public var sC:SoundChannel; public var gameStage:int; public var bkg:Boolean; public var musicPlaying:Boolean; public var pos:int; public var myPage:ContextMenuItem; public var con:APIConnector; public var displayAr:Array; public var ng:ContextMenuItem; public var display:MovieClip; public var copyright:ContextMenuItem; public function Main():void{ API.addEventListener(APIEvent.HOST_BLOCKED, badHost); CONTENT_READY = false; gameStage = -1; gameMask = new Sprite(); gameMask.graphics.beginFill(0); gameMask.graphics.drawRect(0, 0, 640, 480); gameMask.graphics.endFill(); addChild(gameMask); mask = gameMask; sC = new SoundChannel(); display = new MovieClip(); displayAr = []; addChild(display); pos = 0; bkg = true; music = false; musicPlaying = false; stage.addEventListener(KeyboardEvent.KEY_UP, keysUp); addEventListener(Event.ENTER_FRAME, handleMusic); copyright = new ContextMenuItem("© Joshua E. Silver, 2011", false, false); ng = new ContextMenuItem("It is Too Original! Newgrounds!", true); myPage = new ContextMenuItem("The Royal Chamber"); ng.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, ngFunc); myPage.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, myPageFunc); myMenu = new ContextMenu(); myMenu.customItems.push(copyright, ng, myPage); contextMenu = myMenu; runEvent(); __setProp_con_Game_Layer1_1(); } public function handlePreloader():void{ if (CONTENT_READY){ display.removeChild(displayAr[0]); displayAr[0] = null; displayAr = []; CONTENT_READY = false; gameStage = 0; runEvent(); } else { displayAr = [new MainMenu()]; display.addChild(displayAr[0]); CONTENT_READY = true; }; } public function ngFunc(_arg1:ContextMenuEvent):void{ navigateToURL(new URLRequest("http://www.newgrounds.com/"), "_blank"); } public function handleMainStage():void{ if (CONTENT_READY){ } else { displayAr = [new MainStage(), new HUD()]; display.addChild(displayAr[0]); display.addChild(displayAr[1]); music = true; CONTENT_READY = true; }; } public function keysUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 81){ if (stage.quality == "HIGH"){ stage.quality = "LOW"; } else { if (stage.quality == "MEDIUM"){ stage.quality = "HIGH"; } else { if (stage.quality == "LOW"){ stage.quality = "MEDIUM"; }; }; }; }; } public function badHost(_arg1:APIEvent):void{ display.visible = false; } function __setProp_con_Game_Layer1_1(){ try { con["componentInspectorSetting"] = true; } catch(e:Error) { }; con.movieId = "18457:2gGc7Roi"; con.debugMode = false; con.encryptionKey = "kTncefs66LKnKMXrEGyL2hZ4FInXsKeD"; con.movieVersion = "1.0"; con.showConnectingPopup = true; con.useErrorPopup = true; con.useMedalPopup = true; con.useFakeSession = false; try { con["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function runEvent():void{ if (gameStage == -1){ handlePreloader(); } else { if (gameStage == 0){ handleMainStage(); }; }; } public function myPageFunc(_arg1:ContextMenuEvent):void{ navigateToURL(new URLRequest("http://josilver.newgrounds.com"), "_blank"); } public function handleMusic(_arg1:Event):void{ if (((music) && (!(musicPlaying)))){ sC = new BGM().play(); sC.soundTransform = new SoundTransform(0.6); musicPlaying = true; } else { if (((!(music)) && (musicPlaying))){ sC.stop(); musicPlaying = false; }; }; if (music){ if (sC.position >= 70350){ sC = new BGM().play(); sC.soundTransform = new SoundTransform(0.6); }; }; } } }//package
Section 90
//MainMenu (MainMenu) package { import flash.events.*; import flash.display.*; public dynamic class MainMenu extends MovieClip { public var bar:MovieClip; public var bL:int; public var bT:int; public var wait:int; public function MainMenu(){ addFrameScript(0, frame1); } public function loading(_arg1:Event):void{ bT = Main(root).loaderInfo.bytesTotal; bL = Main(root).loaderInfo.bytesLoaded; if ((bL / bT) == 1){ if (wait > 0){ wait--; } else { bar.gotoAndStop(2); bar.addEventListener(MouseEvent.CLICK, clickFunc); removeEventListener(Event.ENTER_FRAME, loading); }; }; } public function clickFunc(_arg1:MouseEvent):void{ bar.removeEventListener(MouseEvent.CLICK, clickFunc); Main(root).runEvent(); } function frame1(){ bar.gotoAndStop(1); wait = 45; bT = Main(root).loaderInfo.bytesTotal; bL = Main(root).loaderInfo.bytesLoaded; addEventListener(Event.ENTER_FRAME, loading); } } }//package
Section 91
//MainMenu_PlayBut (MainMenu_PlayBut) package { import Classes.*; public dynamic class MainMenu_PlayBut extends ADV_Button { } }//package
Section 92
//NewgroundsAPIAsset_big_popup_background (NewgroundsAPIAsset_big_popup_background) package { import flash.display.*; public dynamic class NewgroundsAPIAsset_big_popup_background extends MovieClip { public var tl:MovieClip; public var br:MovieClip; public var tr:MovieClip; public var l:MovieClip; public var shadow:MovieClip; public var r:MovieClip; public var b:MovieClip; public var bl:MovieClip; public var t:MovieClip; public var c:MovieClip; } }//package

Library Items

Symbol 1 Sound {M9}
Symbol 2 Sound {M8}
Symbol 3 Sound {M7}
Symbol 4 Sound {M6}
Symbol 5 Sound {M5}
Symbol 6 Sound {M12}
Symbol 7 Sound {M10}
Symbol 8 Sound {BGM}
Symbol 9 Sound {M11}Used by:253 289
Symbol 10 Sound {M4}Used by:253 289
Symbol 11 Sound {M3}Used by:253 289
Symbol 12 GraphicUsed by:13
Symbol 13 MovieClip {Girl_HeadSweat}Uses:12Used by:94
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClip {Girl_VulvaSweat}Uses:14Used by:88 156 158
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClip {Gir_LegLeftSweat}Uses:16Used by:84
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClip {Girl_LegRightSweat}Uses:18Used by:80
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClip {Girl_WaistSweat}Uses:20Used by:76
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClip {Girl_BreastRightSweat}Uses:22Used by:69
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClip {Girl_BreastLeftSweat}Uses:24Used by:67
Symbol 26 GraphicUsed by:27
Symbol 27 MovieClip {Girl_TorsoSweat}Uses:26Used by:65
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClip {Girl_ArmUpperLeftSweat}Uses:28Used by:57
Symbol 30 ShapeTweeningUsed by:32
Symbol 31 GraphicUsed by:32
Symbol 32 MovieClip {Futura_fla.Flash_38}Uses:30 31Used by:290
Symbol 33 GraphicUsed by:290
Symbol 34 BitmapUsed by:35
Symbol 35 GraphicUses:34Used by:36
Symbol 36 MovieClipUses:35Used by:37
Symbol 37 MovieClip {Classes.Detail.BKG}Uses:36Used by:290 367
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:136 159 176 188 193 200 212 253 289
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:136 159 176 188 193 200 212 253 289
Symbol 42 GraphicUsed by:43
Symbol 43 MovieClipUses:42Used by:136 159 176 188 193 200 212 253 289
Symbol 44 GraphicUsed by:45
Symbol 45 MovieClipUses:44Used by:136 159 176 188 193 200 212 253 289
Symbol 46 GraphicUsed by:47
Symbol 47 MovieClipUses:46Used by:136 159 176 188 193 200 212 253 289
Symbol 48 GraphicUsed by:49
Symbol 49 MovieClipUses:48Used by:136 159 176 188 193 200 212 253 289
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:136 159 176 188 193 200 212 253 289
Symbol 52 GraphicUsed by:53
Symbol 53 MovieClipUses:52Used by:136 159 176 188 193 200 212 253 289
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:136 159 176 188 193 200 212 253 289
Symbol 56 GraphicUsed by:57
Symbol 57 MovieClipUses:56 29Used by:136 159 176 188 193 200 212 253 289
Symbol 58 GraphicUsed by:59
Symbol 59 MovieClipUses:58Used by:136 159 176 188 193 200 212 253 289
Symbol 60 GraphicUsed by:61
Symbol 61 MovieClipUses:60Used by:136 159 176 188 193 200 212 253 289
Symbol 62 GraphicUsed by:63
Symbol 63 MovieClipUses:62Used by:136 159 176 188 193 200 212 253 289
Symbol 64 GraphicUsed by:65
Symbol 65 MovieClipUses:64 27Used by:74 159 176 188 193 200 212 253 289
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClipUses:66 25Used by:74 159 176 188 193 200 212 253 289
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClipUses:68 23Used by:74 159 176 188 193 200 212 253 289
Symbol 70 GraphicUsed by:71
Symbol 71 MovieClipUses:70Used by:74 159 176 188 193 200 212 253 289
Symbol 72 GraphicUsed by:73
Symbol 73 MovieClipUses:72Used by:74 159 176 188 193 200 212 253 289
Symbol 74 MovieClipUses:65 67 69 71 73Used by:136
Symbol 75 GraphicUsed by:76
Symbol 76 MovieClipUses:75 21Used by:136 159 176 188 193 200 212 253 289
Symbol 77 GraphicUsed by:80
Symbol 78 GraphicUsed by:79
Symbol 79 MovieClipUses:78Used by:80
Symbol 80 MovieClipUses:77 79 19Used by:136 159 176 188 193 200 212 253 289
Symbol 81 GraphicUsed by:84
Symbol 82 GraphicUsed by:83
Symbol 83 MovieClipUses:82Used by:84
Symbol 84 MovieClipUses:81 83 17Used by:136 159 176 188 193 200 212 253 289
Symbol 85 GraphicUsed by:86
Symbol 86 MovieClipUses:85Used by:136 159 176 188 193 200 212 253 289
Symbol 87 GraphicUsed by:88
Symbol 88 MovieClipUses:87 15Used by:136 159
Symbol 89 GraphicUsed by:90
Symbol 90 MovieClipUses:89Used by:136 159 176 188 193 200 212 253 289
Symbol 91 GraphicUsed by:92
Symbol 92 MovieClipUses:91Used by:136 159 176 188 193 200 212 253 289
Symbol 93 GraphicUsed by:94
Symbol 94 MovieClipUses:93 13Used by:136 159 176 188 193 200 212 253 289
Symbol 95 GraphicUsed by:96
Symbol 96 MovieClipUses:95Used by:97 166 181 196
Symbol 97 MovieClipUses:96Used by:125
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClipUses:98Used by:125 150 171 184 192 199 203 216 257
Symbol 100 GraphicUsed by:101
Symbol 101 MovieClipUses:100Used by:116 182 214 255
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClipUses:102Used by:116 148 167 182 190 197 214 255
Symbol 104 GraphicUsed by:105
Symbol 105 MovieClipUses:104Used by:116 148 167 182 190 197 214 255
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:116 182 214 255
Symbol 108 GraphicUsed by:109
Symbol 109 MovieClipUses:108Used by:116 148 167 182 190 197 214 255
Symbol 110 GraphicUsed by:111
Symbol 111 MovieClipUses:110Used by:116 148 167 182 190 197 214 255
Symbol 112 GraphicUsed by:113
Symbol 113 MovieClipUses:112Used by:116 148 167 182 190 197 214 255
Symbol 114 GraphicUsed by:115
Symbol 115 MovieClipUses:114Used by:116 148 167 182 190 197 214 255
Symbol 116 MovieClipUses:101 103 105 107 109 111 113 115Used by:125
Symbol 117 GraphicUsed by:121
Symbol 118 GraphicUsed by:121
Symbol 119 GraphicUsed by:121
Symbol 120 GraphicUsed by:121
Symbol 121 MovieClip {Futura_fla.Girl_91}Uses:117 118 119 120Used by:125 150 171 184 192 199 203 216 257
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:124 149 170 183 191 198 215 256 290
Symbol 124 MovieClipUses:123Used by:125
Symbol 125 MovieClipUses:97 99 116 121 124Used by:136
Symbol 126 GraphicUsed by:127
Symbol 127 MovieClipUses:126Used by:136 159 176 188 193 200 212 253 289
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClipUses:128Used by:136 159 176 188 193 200 212 253 289
Symbol 130 GraphicUsed by:131
Symbol 131 MovieClipUses:130Used by:136 159 176 188 193 253 289
Symbol 132 GraphicUsed by:133
Symbol 133 MovieClipUses:132Used by:136 159 176 188 193 200 212 253 289
Symbol 134 GraphicUsed by:135
Symbol 135 MovieClipUses:134Used by:136 159 176 188 193 200 212 253 289
Symbol 136 MovieClipUses:39 41 43 45 47 49 51 53 55 57 59 61 63 74 76 80 84 86 88 90 92 94 125 127 129 131 133 135Used by:290
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClipUses:137Used by:159 193 200 212 289
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:139Used by:143 166 181 189 196 213 254
Symbol 141 GraphicUsed by:142
Symbol 142 MovieClipUses:141Used by:143 166 181 189 196 213 254
Symbol 143 MovieClipUses:140 142Used by:150
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:148 167 182 190 197 214 255
Symbol 146 GraphicUsed by:147
Symbol 147 MovieClipUses:146Used by:148 167 182 190 197 214 255
Symbol 148 MovieClipUses:109 103 105 111 145 147 113 115Used by:150
Symbol 149 MovieClipUses:123Used by:150
Symbol 150 MovieClipUses:143 99 148 121 149Used by:159
Symbol 151 FontUsed by:152 172 185 331 332 334 335 336 338 342 344 345 353 354 355 356 357 359 360 361 364 365
Symbol 152 TextUses:151Used by:153
Symbol 153 MovieClip {Futura_fla.Pos_109}Uses:152Used by:159 193
Symbol 154 SoundUsed by:159 188 212 253 289
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155 15Used by:159 253 289
Symbol 157 GraphicUsed by:158
Symbol 158 MovieClipUses:157 15Used by:159 176 188 193 200 212 253 289
Symbol 159 MovieClipUses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 131 133 135 138 88 90 92 94 150 127 129 153 154 156 158Used by:290
Symbol 160 GraphicUsed by:161
Symbol 161 MovieClipUses:160Used by:176 188 253 289
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:162Used by:176 188 200 253
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClipUses:164Used by:166 196 213 254
Symbol 166 MovieClipUses:165 142 140 96Used by:171
Symbol 167 MovieClipUses:109 103 105 111 145 147 113 115Used by:171
Symbol 168 GraphicUsed by:169
Symbol 169 MovieClipUses:168Used by:170 183 198 215 256
Symbol 170 MovieClipUses:169 123Used by:171
Symbol 171 MovieClipUses:166 99 167 121 170Used by:176
Symbol 172 TextUses:151Used by:173
Symbol 173 MovieClip {Futura_fla.Pos_121}Uses:172Used by:176 200
Symbol 174 SoundUsed by:176 193 200
Symbol 175 SoundUsed by:176 193 200
Symbol 176 MovieClipUses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 158 161 163 90 92 131 133 135 94 171 127 129 173 174 175Used by:290
Symbol 177 GraphicUsed by:178
Symbol 178 MovieClipUses:177Used by:181 213 254
Symbol 179 GraphicUsed by:180
Symbol 180 MovieClipUses:179Used by:181
Symbol 181 MovieClipUses:140 178 96 180 142Used by:184 203
Symbol 182 MovieClipUses:113 103 105 115 145 147 109 111 101 107Used by:184 203
Symbol 183 MovieClipUses:123 169Used by:184 203
Symbol 184 MovieClipUses:181 99 182 121 183Used by:188
Symbol 185 TextUses:151Used by:186
Symbol 186 MovieClip {Futura_fla.Pos_129}Uses:185Used by:188 212
Symbol 187 SoundUsed by:188 212 253 289
Symbol 188 MovieClipUses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 158 161 163 90 92 131 133 135 94 184 127 129 186 187 154Used by:290
Symbol 189 MovieClipUses:140 142Used by:192
Symbol 190 MovieClipUses:109 103 105 111 145 147 113 115Used by:192
Symbol 191 MovieClipUses:123Used by:192
Symbol 192 MovieClipUses:189 99 190 121 191Used by:193
Symbol 193 MovieClip {Futura_fla.Pos_130}Uses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 131 133 135 138 158 90 92 94 192 127 129 153 174 175Used by:290
Symbol 194 GraphicUsed by:195
Symbol 195 MovieClipUses:194Used by:200 212 289
Symbol 196 MovieClipUses:165 142 140 96Used by:199
Symbol 197 MovieClipUses:109 103 105 111 145 147 113 115Used by:199
Symbol 198 MovieClipUses:169 123Used by:199
Symbol 199 MovieClipUses:196 99 197 121 198Used by:200
Symbol 200 MovieClipUses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 195 133 135 138 158 163 90 92 94 199 127 129 173 174 175Used by:290
Symbol 201 GraphicUsed by:202
Symbol 202 MovieClipUses:201Used by:212 289
Symbol 203 MovieClipUses:181 99 182 121 183Used by:212
Symbol 204 GraphicUsed by:212 289
Symbol 205 GraphicUsed by:212 289
Symbol 206 GraphicUsed by:212 289
Symbol 207 GraphicUsed by:212 289
Symbol 208 GraphicUsed by:212 289
Symbol 209 GraphicUsed by:212 289
Symbol 210 GraphicUsed by:212 289
Symbol 211 GraphicUsed by:212 289
Symbol 212 MovieClip {Futura_fla.Pos_141}Uses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 195 133 135 138 158 202 90 92 94 203 127 129 186 204 205 187 206 207 154 208 209 210 211Used by:290
Symbol 213 MovieClip {Futura_fla.Girl_146}Uses:140 178 142 165Used by:216
Symbol 214 MovieClip {Futura_fla.Girl_147}Uses:113 103 105 115 109 111 101 107 145 147Used by:216
Symbol 215 MovieClip {Futura_fla.Girl_148}Uses:123 169Used by:216
Symbol 216 MovieClipUses:213 99 214 121 215Used by:253
Symbol 217 SoundUsed by:253 289
Symbol 218 GraphicUsed by:253 289
Symbol 219 GraphicUsed by:253 289
Symbol 220 GraphicUsed by:253 289
Symbol 221 GraphicUsed by:253 289
Symbol 222 GraphicUsed by:253 289
Symbol 223 GraphicUsed by:253 289
Symbol 224 SoundUsed by:253 289
Symbol 225 SoundUsed by:253 289
Symbol 226 GraphicUsed by:253
Symbol 227 GraphicUsed by:253
Symbol 228 GraphicUsed by:253
Symbol 229 GraphicUsed by:253
Symbol 230 GraphicUsed by:253
Symbol 231 GraphicUsed by:253
Symbol 232 GraphicUsed by:253
Symbol 233 GraphicUsed by:253
Symbol 234 GraphicUsed by:253
Symbol 235 GraphicUsed by:253
Symbol 236 GraphicUsed by:253
Symbol 237 GraphicUsed by:253
Symbol 238 GraphicUsed by:253
Symbol 239 GraphicUsed by:253
Symbol 240 GraphicUsed by:253
Symbol 241 GraphicUsed by:253
Symbol 242 GraphicUsed by:253
Symbol 243 GraphicUsed by:244
Symbol 244 MovieClipUses:243Used by:253
Symbol 245 GraphicUsed by:246
Symbol 246 MovieClipUses:245Used by:253
Symbol 247 GraphicUsed by:248
Symbol 248 MovieClipUses:247Used by:253
Symbol 249 GraphicUsed by:250
Symbol 250 MovieClipUses:249Used by:253
Symbol 251 GraphicUsed by:252
Symbol 252 MovieClipUses:251Used by:253
Symbol 253 MovieClip {Futura_fla.Pos_144}Uses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 158 161 163 90 92 131 133 135 94 216 127 129 187 154 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 244 246 248 250 252 11 10 9 156Used by:290
Symbol 254 MovieClip {Futura_fla.Girl_156}Uses:140 178 142 165Used by:257
Symbol 255 MovieClip {Futura_fla.Girl_157}Uses:113 103 105 115 109 111 101 107 145 147Used by:257
Symbol 256 MovieClip {Futura_fla.Girl_158}Uses:123 169Used by:257
Symbol 257 MovieClipUses:254 99 255 121 256Used by:289
Symbol 258 GraphicUsed by:289
Symbol 259 GraphicUsed by:289
Symbol 260 GraphicUsed by:289
Symbol 261 GraphicUsed by:289
Symbol 262 GraphicUsed by:289
Symbol 263 GraphicUsed by:289
Symbol 264 GraphicUsed by:289
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:265Used by:289
Symbol 267 GraphicUsed by:268
Symbol 268 MovieClipUses:267Used by:289
Symbol 269 GraphicUsed by:289
Symbol 270 GraphicUsed by:289
Symbol 271 GraphicUsed by:289
Symbol 272 GraphicUsed by:289
Symbol 273 GraphicUsed by:289
Symbol 274 GraphicUsed by:289
Symbol 275 GraphicUsed by:289
Symbol 276 GraphicUsed by:289
Symbol 277 GraphicUsed by:289
Symbol 278 GraphicUsed by:289
Symbol 279 GraphicUsed by:289
Symbol 280 GraphicUsed by:289
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:289
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClipUses:283Used by:289
Symbol 285 SoundUsed by:289
Symbol 286 SoundUsed by:289
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:289
Symbol 289 MovieClip {Futura_fla.Pos_154}Uses:39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 76 80 84 86 195 133 135 138 158 202 90 92 94 257 127 129 204 205 187 206 207 154 208 209 210 217 211 225 218 224 219 220 221 222 223 258 259 260 261 262 263 264 266 268 269 270 271 272 273 274 275 276 277 278 279 280 282 284 285 11 10 131 9 286 161 156 288Used by:290
Symbol 290 MovieClip {Classes.System.MainStage}Uses:32 33 37 136 159 176 188 193 200 212 253 289 123
Symbol 291 GraphicUsed by:294 297 300 303 306 310 314 318 322 333 337 348 362 366
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClipUses:292Used by:294
Symbol 294 MovieClip {HUD_ButQuality}Uses:291 293Used by:330
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:295Used by:297
Symbol 297 MovieClip {HUD_ButBackground}Uses:291 296Used by:330
Symbol 298 GraphicUsed by:299
Symbol 299 MovieClipUses:298Used by:300
Symbol 300 MovieClip {HUD_ButMusic}Uses:291 299Used by:330
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:301Used by:303
Symbol 303 MovieClip {HUD_ButFullscreen}Uses:291 302Used by:330
Symbol 304 GraphicUsed by:305
Symbol 305 MovieClipUses:304Used by:306 307
Symbol 306 MovieClip {HUD_ButStop}Uses:291 305Used by:307
Symbol 307 MovieClipUses:306 305Used by:330
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClipUses:308Used by:310 311
Symbol 310 MovieClip {HUD_ButCum}Uses:291 309Used by:311
Symbol 311 MovieClipUses:310 309Used by:330
Symbol 312 GraphicUsed by:313
Symbol 313 MovieClipUses:312Used by:314 315
Symbol 314 MovieClip {HUD_But1}Uses:291 313Used by:315
Symbol 315 MovieClipUses:314 313Used by:330
Symbol 316 GraphicUsed by:317
Symbol 317 MovieClipUses:316Used by:318 319
Symbol 318 MovieClip {HUD_But2}Uses:291 317Used by:319
Symbol 319 MovieClipUses:318 317Used by:330
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClipUses:320Used by:322 323
Symbol 322 MovieClip {HUD_But3}Uses:291 321Used by:323
Symbol 323 MovieClipUses:322 321Used by:330
Symbol 324 FontUsed by:325 326 327
Symbol 325 TextUses:324Used by:330
Symbol 326 TextUses:324Used by:330
Symbol 327 TextUses:324Used by:330
Symbol 328 GraphicUsed by:329
Symbol 329 MovieClipUses:328Used by:330
Symbol 330 MovieClip {Classes.System.HUD}Uses:294 297 300 303 307 311 315 319 323 325 326 327 329
Symbol 331 TextUses:151Used by:333
Symbol 332 TextUses:151Used by:333
Symbol 333 MovieClip {Classes.System.HUD.Nakoruru}Uses:291 331 332Used by:348
Symbol 334 TextUses:151Used by:337
Symbol 335 TextUses:151Used by:337
Symbol 336 TextUses:151Used by:337
Symbol 337 MovieClip {Classes.System.HUD.Me}Uses:291 334 335 336Used by:348
Symbol 338 TextUses:151Used by:348
Symbol 339 GraphicUsed by:348
Symbol 340 FontUsed by:341 343 346 347
Symbol 341 TextUses:340Used by:348
Symbol 342 TextUses:151Used by:348
Symbol 343 TextUses:340Used by:348
Symbol 344 TextUses:151Used by:348
Symbol 345 TextUses:151Used by:348
Symbol 346 TextUses:340Used by:348
Symbol 347 TextUses:340Used by:348
Symbol 348 MovieClip {Credit}Uses:291 338 339 341 342 343 344 345 337 346 333 347Used by:367
Symbol 349 GraphicUsed by:367
Symbol 350 FontUsed by:351
Symbol 351 TextUses:350Used by:352
Symbol 352 MovieClipUses:351Used by:367
Symbol 353 TextUses:151Used by:367
Symbol 354 TextUses:151Used by:358
Symbol 355 TextUses:151Used by:358
Symbol 356 TextUses:151Used by:358
Symbol 357 TextUses:151Used by:358
Symbol 358 MovieClipUses:354 355 356 357Used by:363
Symbol 359 TextUses:151Used by:362
Symbol 360 TextUses:151Used by:362
Symbol 361 TextUses:151Used by:362
Symbol 362 MovieClip {MainMenu_PlayBut}Uses:291 359 360 361Used by:363
Symbol 363 MovieClipUses:358 362Used by:367
Symbol 364 TextUses:151Used by:366
Symbol 365 TextUses:151Used by:366
Symbol 366 MovieClip {Classes.System.HUD.More}Uses:291 364 365Used by:367
Symbol 367 MovieClip {MainMenu}Uses:37 349 352 353 363 348 366
Symbol 368 GraphicUsed by:377 379 428
Symbol 369 GraphicUsed by:377 379 428
Symbol 370 GraphicUsed by:377 379 428
Symbol 371 GraphicUsed by:377 379 428
Symbol 372 FontUsed by:373 376 378 382 385 387 418 419 425 426
Symbol 373 TextUses:372Used by:428
Symbol 374 GraphicUsed by:375
Symbol 375 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Load_Indicator_3}Uses:374Used by:377
Symbol 376 TextUses:372Used by:377
Symbol 377 MovieClip {APIConnector_fla.NewgroundsAPIAsset_ConnectingAPI_2}Uses:368 369 370 371 375 376Used by:428
Symbol 378 TextUses:372Used by:379
Symbol 379 MovieClip {APIConnector_fla.NewgroundsAPIAsset_API_Conencted_4}Uses:368 369 370 371 378Used by:428
Symbol 380 GraphicUsed by:381
Symbol 381 MovieClipUses:380Used by:386 390
Symbol 382 TextUses:372Used by:386
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:386 390
Symbol 385 TextUses:372Used by:386
Symbol 386 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5}Uses:381 382 384 385Used by:428
Symbol 387 TextUses:372Used by:390
Symbol 388 FontUsed by:389 424 427
Symbol 389 TextUses:388Used by:390
Symbol 390 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7}Uses:381 387 389 384Used by:428
Symbol 391 GraphicUsed by:392 428
Symbol 392 MovieClipUses:391Used by:428
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:413
Symbol 395 GraphicUsed by:396
Symbol 396 MovieClipUses:395Used by:413
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:413
Symbol 399 GraphicUsed by:400
Symbol 400 MovieClipUses:399Used by:413
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:413
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClipUses:403Used by:413
Symbol 405 GraphicUsed by:406
Symbol 406 MovieClipUses:405Used by:413
Symbol 407 GraphicUsed by:408
Symbol 408 MovieClipUses:407Used by:413
Symbol 409 GraphicUsed by:410
Symbol 410 MovieClipUses:409Used by:413
Symbol 411 GraphicUsed by:412
Symbol 412 MovieClipUses:411Used by:413
Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background}Uses:394 396 398 400 402 404 406 408 410 412Used by:428
Symbol 414 GraphicUsed by:428
Symbol 415 GraphicUsed by:417
Symbol 416 GraphicUsed by:417
Symbol 417 ButtonUses:415 416Used by:428
Symbol 418 TextUses:372Used by:428
Symbol 419 TextUses:372Used by:428
Symbol 420 GraphicUsed by:423
Symbol 421 GraphicUsed by:423
Symbol 422 GraphicUsed by:423
Symbol 423 ButtonUses:420 421 422Used by:428
Symbol 424 TextUses:388Used by:428
Symbol 425 TextUses:372Used by:428
Symbol 426 TextUses:372Used by:428
Symbol 427 TextUses:388Used by:428
Symbol 428 MovieClip {com.newgrounds.components.APIConnector}Uses:368 369 370 371 373 377 379 386 390 392 413 414 417 418 419 423 424 391 425 426 427Used by:Timeline

Instance Names

"con"Frame 1Symbol 428 MovieClip {com.newgrounds.components.APIConnector}
"flash"Symbol 290 MovieClip {Classes.System.MainStage} Frame 1Symbol 32 MovieClip {Futura_fla.Flash_38}
"q"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 294 MovieClip {HUD_ButQuality}
"b"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 297 MovieClip {HUD_ButBackground}
"m"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 300 MovieClip {HUD_ButMusic}
"f"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 303 MovieClip {HUD_ButFullscreen}
"p0"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 307 MovieClip
"cum"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 311 MovieClip
"p1"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 315 MovieClip
"p2"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 319 MovieClip
"p3"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 323 MovieClip
"p4"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 315 MovieClip
"p5"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 319 MovieClip
"p6"Symbol 330 MovieClip {Classes.System.HUD} Frame 1Symbol 323 MovieClip
"bar"Symbol 367 MovieClip {MainMenu} Frame 1Symbol 363 MovieClip
"shadow"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 394 MovieClip
"c"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 396 MovieClip
"b"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 398 MovieClip
"t"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 400 MovieClip
"l"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 402 MovieClip
"r"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 404 MovieClip
"tl"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 406 MovieClip
"tr"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 408 MovieClip
"bl"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 410 MovieClip
"br"Symbol 413 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 412 MovieClip
"errorDialog"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 5Symbol 386 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5}
"errorDialog"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 6Symbol 390 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7}
"background"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 392 MovieClip
"closeButton"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 417 Button
"viewLatestButton"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 423 Button
"viewAuthorizedButton"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 8Symbol 423 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""

Labels

"closeme"Symbol 386 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5} Frame 11
"closeme"Symbol 390 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7} Frame 11
"idle"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 2
"connecting"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 3
"connected"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 4
"no_login"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 5
"no_connect"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 6
"new_version"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 7
"bad_host"Symbol 428 MovieClip {com.newgrounds.components.APIConnector} Frame 8




http://swfchan.com/20/96288/info.shtml
Created: 23/3 -2019 21:31:04 Last modified: 23/3 -2019 21:31:04 Server time: 03/05 -2024 18:26:16