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

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

demon-runner.swf

This is the info page for
Flash #115603

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


Text
CONGRATULATIONS!

YOU ARE WINNER!!!

THANKS FOR PLAYING

PROGRAMMER
JOSILVER

!

R

E

N

I

W

A

U

O

Y

S

T

L

G

C

CHARACTER ANIMATIONS
FUNGASM

BACKGROUND ART
AIGIS

INTRO AND OUTRO ANIMATION
AIGIS

INTRO MUSIC
MAHAMAJAMA -
SQUARE WAVE ROCKSTEADY

MENU MUSIC
VIBE-NEWGROUNDS -
[8BIT] DIRTY WORK

FIRST LEVEL MUSIC
DJROCALOT -
**HAPPY DUCKS 8BIT
SNES SONG**

SECOND LEVEL MUSIC
VIBE-NEWGROUNDS -
[8BIT] BECAUSE SHE SAID
"NO"

THIRD LEVEL MUSIC
J. ARTHUR KEENES -
THE BATTLE OF SPAGHTTYBURG

ENDING MUSIC
RETROMANOMG -
|HAPPY TIMES|

END.

Paste Obstcale Code here

Paste Obstcale Code here

Paste Obstcale Postion Code here

Paste Obstcale Postion Code here

Level Speed

Level Distance

Level Theme

Level Song

FATIGUE

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
//Level1 (classes.levelCodes.Level1) package classes.levelCodes { import classes.utils.*; public class Level1 extends LevelCode { public function Level1(){ obstacle = [1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 2, 2, 1, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2]; position = [489, 965, 1464, 1934, 2423, 2894, 3360, 3858, 4339, 4827, 5080, 5322, 5566, 5800, 6268, 6765, 6973, 7200, 7427, 7634, 8208, 8689, 9193, 9371, 9552, 10255, 10631, 11139, 11346, 11580, 11854, 12097, 12332, 12585, 12801, 13054, 13270, 13512, 14028, 14486, 14997, 15231, 15466, 15722, 15966, 16199, 16460, 16715, 16949, 17217, 17424, 17658, 17911, 18165, 18389, 18605, 18869, 19114, 19349, 19593, 19837, 20314, 20573, 20816, 21061, 21154, 21502, 21644, 22021, 22181, 22549, 22727, 23019, 23168, 23507, 23640, 23960, 24206, 24548, 25157, 25637, 26137, 26389, 26650, 26884, 27127, 27363, 27596, 27813, 28065, 28310, 28552, 29031, 29509, 29979, 30446, 30923]; speed = 11; theme = 0; goal = 32914; song = 0; } } }//package classes.levelCodes
Section 7
//Level2 (classes.levelCodes.Level2) package classes.levelCodes { import classes.utils.*; public class Level2 extends LevelCode { public function Level2(){ obstacle = [1, 2, 1, 2, 2, 1, 1, 2, 2, 3, 3, 3, 1, 2, 3, 3, 1, 1, 3, 3, 3, 2, 2, 1, 1, 2, 2, 3, 1, 1, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 2, 1, 1, 3, 1, 2, 1, 1, 1, 3, 3, 2, 2, 1, 1, 3, 3, 3, 3, 2, 1, 1, 1, 1, 1, 1, 3, 1, 2, 1, 2, 1, 3, 3, 1, 3, 3, 1, 2, 1, 1, 3, 1, 1, 2, 3, 3, 3, 1, 2, 1, 3, 3, 1, 2, 1, 1, 3, 2, 1, 1, 3, 2, 2, 1, 1, 2, 1]; position = [724, 1404, 2055, 2748, 3138, 3629, 3890, 4399, 4747, 5545, 5877, 6224, 6585, 6946, 7626, 7799, 8335, 8667, 8986, 9347, 9622, 9810, 10171, 11112, 11428, 11834, 12152, 12600, 13164, 13454, 13990, 14221, 14597, 14842, 15333, 15550, 15983, 16244, 16621, 16970, 17330, 17692, 18053, 18370, 18704, 18890, 19078, 19556, 19931, 20293, 20654, 20985, 21273, 21605, 21866, 22213, 22560, 22893, 23226, 23602, 23934, 24615, 25004, 25698, 26377, 27055, 27387, 27776, 28424, 29119, 29768, 30188, 30678, 31038, 31386, 32066, 32399, 32731, 32976, 33512, 33858, 34189, 34841, 35176, 35666, 36229, 36562, 36924, 37256, 37618, 37964, 38672, 39020, 39382, 39744, 40422, 40753, 41100, 41447, 42039, 42328, 42702, 43034, 43366, 43699, 44058, 44548, 44865]; speed = 15; theme = 1; goal = 45500; song = 1; } } }//package classes.levelCodes
Section 8
//Level3 (classes.levelCodes.Level3) package classes.levelCodes { import classes.utils.*; public class Level3 extends LevelCode { public function Level3(){ obstacle = [1, 3, 4, 2, 3, 1, 2, 4, 3, 1, 2, 4, 4, 3, 1, 3, 2, 2, 3, 1, 4, 4, 3, 1, 1, 2, 4, 3, 1, 4, 1, 3, 4, 2, 3, 1, 2, 1, 2, 4, 3, 2, 1, 4, 2, 1, 4, 3, 3, 3, 3, 3, 3, 2, 4, 1, 1, 1, 1, 1, 2, 4, 3, 3, 1, 2, 4, 4, 4, 4, 1, 2, 1, 3, 1, 4, 4, 3, 4, 3]; position = [1582, 2918, 4388, 5761, 7153, 8565, 9919, 11334, 12808, 14240, 15634, 17048, 18208, 19562, 20973, 22366, 23410, 24512, 25636, 27009, 28343, 29775, 31033, 31962, 32561, 33355, 33935, 34805, 36061, 36912, 38227, 39638, 41108, 42482, 43487, 44203, 44957, 45673, 46408, 47181, 48149, 48904, 49657, 50374, 51051, 51766, 52463, 53857, 55191, 56584, 57415, 58111, 58807, 59542, 60934, 62365, 63719, 65188, 66562, 67994, 69386, 70739, 71822, 72654, 74106, 76446, 77356, 78072, 79387, 80528, 81340, 82674, 83371, 84724, 85517, 86910, 87916, 89174, 90585, 92075]; speed = 20; theme = 2; goal = 97000; song = 2; } } }//package classes.levelCodes
Section 9
//Demon (classes.obstacles.Demon) package classes.obstacles { import flash.events.*; import flash.display.*; public class Demon extends MovieClip { public var par:Object; public function Demon():void{ stop(); addEventListener(Event.ENTER_FRAME, demonFunc); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function demonFunc(_arg1:Event):void{ if (par.win){ if (currentFrame != 2){ gotoAndStop(2); }; } else { if (par.player[0].x <= -200){ par.ready = false; x = (x - 5); }; }; } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, demonFunc); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package classes.obstacles
Section 10
//Down (classes.obstacles.Down) package classes.obstacles { import classes.*; public class Down extends ObGraphic { } }//package classes.obstacles
Section 11
//Goal (classes.obstacles.Goal) package classes.obstacles { import flash.display.*; public class Goal extends MovieClip { } }//package classes.obstacles
Section 12
//Left (classes.obstacles.Left) package classes.obstacles { import classes.*; public class Left extends ObGraphic { } }//package classes.obstacles
Section 13
//ObHitbox (classes.obstacles.ObHitbox) package classes.obstacles { import flash.display.*; public class ObHitbox extends MovieClip { public var cleared:Boolean; public var code:int; public function ObHitbox(_arg1:int):void{ code = _arg1; cleared = false; } } }//package classes.obstacles
Section 14
//Right (classes.obstacles.Right) package classes.obstacles { import classes.*; public class Right extends ObGraphic { } }//package classes.obstacles
Section 15
//Up (classes.obstacles.Up) package classes.obstacles { import classes.*; public class Up extends ObGraphic { } }//package classes.obstacles
Section 16
//BackBut (classes.system.BackBut) package classes.system { import flash.events.*; import classes.utils.*; public class BackBut extends ADV_Button { public var par2:Object; public function BackBut():void{ par2 = parent; super(); addEventListener(Event.ADDED_TO_STAGE, added); addEventListener(MouseEvent.CLICK, pressed); addEventListener(Event.REMOVED_FROM_STAGE, removed2); } public function added(_arg1:Event):void{ par2 = parent; } public function pressed(_arg1:MouseEvent):void{ par2.gotoAndStop(2); } public function removed2(_arg1:Event):void{ removeEventListener(MouseEvent.CLICK, pressed); removeEventListener(Event.REMOVED_FROM_STAGE, removed2); } } }//package classes.system
Section 17
//Ending (classes.system.Ending) package classes.system { import flash.events.*; import flash.display.*; public class Ending extends MovieClip { public function Ending(){ addEventListener(Event.ENTER_FRAME, iEvent); } public function iEvent(_arg1:Event):void{ if (currentFrame == totalFrames){ stop(); removeEventListener(Event.ENTER_FRAME, iEvent); Main(root).runEvent(); }; } } }//package classes.system
Section 18
//Hud (classes.system.Hud) package classes.system { import flash.events.*; import flash.display.*; public class Hud extends MovieClip { public var fail:MovieClip; public var clear:MovieClip; public var disp:MovieClip; public function Hud():void{ addEventListener(Event.ENTER_FRAME, hudEvent); addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function hudEvent(_arg1:Event):void{ if (Main(root).displayAr[0].win){ clear.visible = true; fail.visible = false; disp.visible = false; if (clear.currentFrame == 1){ clear.play(); }; } else { if (Main(root).displayAr[0].lose){ fail.visible = true; disp.visible = false; clear.visible = false; if (fail.currentFrame == 1){ fail.play(); }; } else { disp.visible = true; clear.visible = false; fail.visible = false; disp.bar.scaleX = (Main(root).displayAr[0].fatigue / 1000); }; }; } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, hudEvent); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package classes.system
Section 19
//Intro (classes.system.Intro) package classes.system { import flash.events.*; import flash.display.*; public class Intro extends MovieClip { public function Intro():void{ addEventListener(Event.ENTER_FRAME, iEvent); } public function iEvent(_arg1:Event):void{ if (currentFrame == totalFrames){ stop(); removeEventListener(Event.ENTER_FRAME, iEvent); Main(root).runEvent(); }; } } }//package classes.system
Section 20
//Preloader (classes.system.Preloader) package classes.system { import flash.events.*; import flash.display.*; import flash.media.*; public class Preloader extends MovieClip { public var sC:SoundChannel; public var instBut:howtoplaybutton; public var credBut:creditsbutton; public var mP:Boolean; public var playBut:playbutton; public function Preloader():void{ stop(); addFrameScript(1, frame2); addEventListener(Event.REMOVED_FROM_STAGE, removed); mP = false; sC = new SoundChannel(); } public function instBE(_arg1:MouseEvent):void{ gotoAndStop(3); } public function credBE(_arg1:MouseEvent):void{ gotoAndStop(4); } public function f2Remove():void{ playBut.removeEventListener(MouseEvent.CLICK, playBE); instBut.removeEventListener(MouseEvent.CLICK, instBE); credBut.removeEventListener(MouseEvent.CLICK, credBE); } public function playBE(_arg1:MouseEvent):void{ Main(root).runEvent(); } public function frame2():void{ stop(); if (!mP){ sC = new MM().play(); sC.addEventListener(Event.SOUND_COMPLETE, loopMusic); mP = true; }; playBut.addEventListener(MouseEvent.CLICK, playBE); instBut.addEventListener(MouseEvent.CLICK, instBE); credBut.addEventListener(MouseEvent.CLICK, credBE); } public function removed(_arg1:Event):void{ if (currentFrame == 2){ f2Remove(); }; if (mP){ sC.removeEventListener(Event.SOUND_COMPLETE, loopMusic); sC.stop(); }; removeEventListener(Event.REMOVED_FROM_STAGE, removed); } public function loopMusic(_arg1:Event):void{ sC = new MM().play(); sC.addEventListener(Event.SOUND_COMPLETE, loopMusic); } } }//package classes.system
Section 21
//ADV_Button (classes.utils.ADV_Button) package classes.utils { 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{ 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.utils
Section 22
//LevelCode (classes.utils.LevelCode) package classes.utils { public class LevelCode { public var speed:int; public var theme:int; public var position:Array; public var obstacle:Array; public var goal:int; public var song:int; public function levelCode():void{ obstacle = new Array(); position = new Array(); speed = 0; goal = 0; theme = 0; song = 0; } } }//package classes.utils
Section 23
//PCustom (classes.utils.PCustom) package classes.utils { import flash.events.*; import flash.display.*; import flash.text.*; public class PCustom extends MovieClip { public var lTh:TextField; public var lDs:TextField; public var poC:TextField; public var plB:MovieClip; public var obC:TextField; public var lSo:TextField; public var lSp:TextField; public function PCustom():void{ plB.addEventListener(MouseEvent.CLICK, playL); addEventListener(Event.REMOVED_FROM_STAGE, removed); addEventListener(Event.ADDED_TO_STAGE, added); } public function added(_arg1:Event):void{ obC.text = Main(root).db_obs; poC.text = Main(root).db_pos; lSo.text = Main(root).db_son; lTh.text = Main(root).db_the; lDs.text = Main(root).db_goa; lSp.text = Main(root).db_spe; } public function playL(_arg1:MouseEvent):void{ var _local2:LevelCode; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:Boolean; Main(root).db_obs = obC.text; Main(root).db_pos = poC.text; Main(root).db_son = lSo.text; Main(root).db_the = lTh.text; Main(root).db_goa = lDs.text; Main(root).db_spe = lSp.text; _local2 = new LevelCode(); _local2.obstacle = []; _local2.position = []; _local3 = obC.text; _local4 = ""; _local5 = 0; _local6 = 0; _local7 = true; while (_local7) { _local6 = _local3.indexOf(",", _local5); _local4 = _local3.slice(_local5, _local6); _local2.obstacle.push(int(_local4)); _local5 = (_local6 + 1); if (_local5 >= (_local3.length - 1)){ break; }; }; _local3 = poC.text; _local4 = ""; _local5 = 0; _local6 = 0; _local7 = true; while (_local7) { _local6 = _local3.indexOf(",", _local5); _local4 = _local3.slice(_local5, _local6); _local2.position.push(int(_local4)); _local5 = (_local6 + 1); if (_local5 >= (_local3.length - 1)){ break; }; }; _local2.speed = int(lSp.text); _local2.goal = int(lDs.text); _local2.theme = int(lTh.text); _local2.song = int(lSo.text); Main(root).buildLevel(_local2); } public function removed(_arg1:Event):void{ plB.removeEventListener(MouseEvent.CLICK, playL); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package classes.utils
Section 24
//MainStage (classes.MainStage) package classes { import flash.events.*; import flash.display.*; import flash.utils.*; import classes.utils.*; import flash.media.*; import classes.obstacles.*; public class MainStage extends Sprite { public var obs:Sprite; public var endLevelT:int; public var other:Array; public var obDist:int; public var lose:Boolean; public var hitAr:Array; public var curTime:int; public var groAr:Array; public var sC:SoundChannel; public var skyAr:Array; public var sky:Sprite; public var mid:Sprite; public var m3:M3; public var obsAr:Array; public var m1:M1; public var m2:M2; public var timeDif:int; public var lastTime:int; public var ground:Sprite; public var levelCode:LevelCode; public var midAr:Array; public var hit:Sprite; public var dist:int; public var obNum:int; public var ready:Boolean; public var fatigue:int; public var rate:Number; public var player:Array; public var win:Boolean; public function MainStage():void{ m1 = new M1(); m2 = new M2(); m3 = new M3(); addEventListener(Event.ENTER_FRAME, spawnOb); addEventListener(Event.REMOVED_FROM_STAGE, removed); endLevelT = 60; } public function initLevel(_arg1:LevelCode=null):void{ var _local2:String; if (_arg1 != null){ levelCode = _arg1; }; lastTime = getTimer(); fatigue = 1000; ready = false; win = false; lose = false; dist = 0; obNum = 0; obsAr = []; hitAr = []; skyAr = []; midAr = []; groAr = []; hit = new Sprite(); sky = new Sprite(); mid = new Sprite(); ground = new Sprite(); obs = new Sprite(); player = [new Player()]; player[0].par = this; player[0].x = 400; player[0].y = 410; addChild(hit); addChild(sky); addChild(mid); addChild(ground); addChild(obs); addChild(player[0]); other = [new Demon()]; addChild(other[0]); other[0].par = this; addEventListener(Event.ENTER_FRAME, controlBKG); _local2 = ""; if (levelCode.song == 0){ _local2 = "m1"; } else { if (levelCode.song == 1){ _local2 = "m2"; } else { if (levelCode.song == 2){ _local2 = "m3"; }; }; }; sC = this[_local2].play(); ready = true; } public function addOb(_arg1:uint):void{ var _local2:Object; if (_arg1 == 0){ obsAr.push(new Goal()); }; if (_arg1 == 1){ obsAr.push(new Up()); }; if (_arg1 == 2){ obsAr.push(new Down()); }; if (_arg1 == 3){ obsAr.push(new Left()); }; if (_arg1 == 4){ obsAr.push(new Right()); }; hitAr.push(new ObHitbox(_arg1)); hitAr[(hitAr.length - 1)].x = ((levelCode.position[obNum] - dist) + 800); hitAr[(hitAr.length - 1)].y = 450; _local2 = obsAr[(obsAr.length - 1)]; obs.addChild(obsAr[(obsAr.length - 1)]); hit.addChild(hitAr[(hitAr.length - 1)]); if (_arg1 == 0){ _local2.x = ((levelCode.goal - dist) + 800); } else { _local2.x = ((levelCode.position[obNum] - dist) + 800); }; _local2.y = 450; } public function removed(_arg1:Event):void{ sC.stop(); removeEventListener(Event.ENTER_FRAME, spawnOb); removeEventListener(Event.REMOVED_FROM_STAGE, removed); if (this.hasEventListener(Event.ENTER_FRAME)){ removeEventListener(Event.ENTER_FRAME, controlBKG); }; } public function controlBKG(_arg1:Event):void{ var _local2:int; var _local3:Object; var _local4:int; var _local5:Object; var _local6:int; var _local7:Object; var _local8:int; var _local9:Object; var _local10:int; var _local11:Object; var _local12:int; var _local13:Object; var _local14:int; var _local15:Object; var _local16:int; var _local17:Object; var _local18:int; var _local19:Object; if (ready){ if (levelCode.theme == 0){ if (ground.numChildren == 0){ groAr = [new Lvl1_1(), new Lvl1_1()]; groAr[0].x = 0; groAr[1].x = 800; ground.addChild(groAr[0]); ground.addChild(groAr[1]); } else { _local2 = 0; while (_local2 < ground.numChildren) { _local3 = ground.getChildAt(_local2); _local3.x = (_local3.x - (levelCode.speed * rate)); _local2++; }; if (groAr[0].x <= -800){ ground.removeChild(ground.getChildAt(0)); groAr.shift(); groAr[1] = new Lvl1_1(); groAr[1].x = (groAr[0].x + 800); ground.addChild(groAr[1]); }; }; if (mid.numChildren == 0){ midAr = [new Lvl1_2(), new Lvl1_2()]; midAr[0].x = 0; midAr[1].x = 800; mid.addChild(midAr[0]); mid.addChild(midAr[1]); } else { _local4 = 0; while (_local4 < mid.numChildren) { _local5 = mid.getChildAt(_local4); mid.getChildAt(_local4).x = (_local5.x - ((levelCode.speed * rate) * 0.5)); _local4++; }; if (midAr[0].x <= -800){ mid.removeChild(mid.getChildAt(0)); midAr.shift(); midAr[1] = new Lvl1_2(); midAr[1].x = (midAr[0].x + 800); mid.addChild(midAr[1]); }; }; if (sky.numChildren == 0){ skyAr = [new Lvl1_3(), new Lvl1_3()]; skyAr[0].x = 0; skyAr[1].x = 800; sky.addChild(skyAr[0]); sky.addChild(skyAr[1]); } else { _local6 = 0; while (_local6 < ground.numChildren) { _local7 = sky.getChildAt(_local6); sky.getChildAt(_local6).x = (_local7.x - ((levelCode.speed * rate) * 0.3)); _local6++; }; if (skyAr[0].x <= -800){ sky.removeChild(sky.getChildAt(0)); skyAr.shift(); skyAr[1] = new Lvl1_3(); skyAr[1].x = (skyAr[0].x + 800); sky.addChild(skyAr[1]); }; }; }; if (levelCode.theme == 1){ if (ground.numChildren == 0){ groAr = [new Lvl2_1(), new Lvl2_1()]; groAr[0].x = 0; groAr[1].x = 800; ground.addChild(groAr[0]); ground.addChild(groAr[1]); } else { _local8 = 0; while (_local8 < ground.numChildren) { _local9 = ground.getChildAt(_local8); ground.getChildAt(_local8).x = (_local9.x - (levelCode.speed * rate)); _local8++; }; if (groAr[0].x <= -800){ ground.removeChild(ground.getChildAt(0)); groAr.shift(); groAr[1] = new Lvl2_1(); groAr[1].x = (groAr[0].x + 800); ground.addChild(groAr[1]); }; }; if (mid.numChildren == 0){ midAr = [new Lvl2_2(), new Lvl2_2()]; midAr[0].x = 0; midAr[1].x = 800; mid.addChild(midAr[0]); mid.addChild(midAr[1]); } else { _local10 = 0; while (_local10 < mid.numChildren) { _local11 = mid.getChildAt(_local10); mid.getChildAt(_local10).x = (_local11.x - ((levelCode.speed * rate) * 0.5)); _local10++; }; if (midAr[0].x <= -800){ mid.removeChild(mid.getChildAt(0)); midAr.shift(); midAr[1] = new Lvl2_2(); midAr[1].x = (midAr[0].x + 800); mid.addChild(midAr[1]); }; }; if (sky.numChildren == 0){ skyAr = [new Lvl2_3(), new Lvl2_3()]; skyAr[0].x = 0; skyAr[1].x = 800; sky.addChild(skyAr[0]); sky.addChild(skyAr[1]); } else { _local12 = 0; while (_local12 < ground.numChildren) { _local13 = sky.getChildAt(_local12); sky.getChildAt(_local12).x = (_local13.x - ((levelCode.speed * rate) * 0.2)); _local12++; }; if (skyAr[0].x <= -800){ sky.removeChild(sky.getChildAt(0)); skyAr.shift(); skyAr[1] = new Lvl2_3(); skyAr[1].x = (skyAr[0].x + 800); sky.addChild(skyAr[1]); }; }; }; if (levelCode.theme == 2){ if (ground.numChildren == 0){ groAr = [new Lvl3_1(), new Lvl3_1()]; groAr[0].x = 0; groAr[1].x = 800; ground.addChild(groAr[0]); ground.addChild(groAr[1]); } else { _local14 = 0; while (_local14 < ground.numChildren) { _local15 = ground.getChildAt(_local14); ground.getChildAt(_local14).x = (_local15.x - (levelCode.speed * rate)); _local14++; }; if (groAr[0].x <= -800){ ground.removeChild(ground.getChildAt(0)); groAr.shift(); groAr[1] = new Lvl3_1(); groAr[1].x = (groAr[0].x + 800); ground.addChild(groAr[1]); }; }; if (mid.numChildren == 0){ midAr = [new Lvl3_2(), new Lvl3_2()]; midAr[0].x = 0; midAr[1].x = 800; mid.addChild(midAr[0]); mid.addChild(midAr[1]); } else { _local16 = 0; while (_local16 < mid.numChildren) { _local17 = mid.getChildAt(_local16); mid.getChildAt(_local16).x = (_local17.x - ((levelCode.speed * rate) * 0.65)); _local16++; }; if (midAr[0].x <= -800){ mid.removeChild(mid.getChildAt(0)); midAr.shift(); midAr[1] = new Lvl3_2(); midAr[1].x = (midAr[0].x + 800); mid.addChild(midAr[1]); }; }; if (sky.numChildren == 0){ skyAr = [new Lvl3_3(), new Lvl3_3()]; skyAr[0].x = 0; skyAr[1].x = 1300; sky.addChild(skyAr[0]); sky.addChild(skyAr[1]); } else { _local18 = 0; while (_local18 < ground.numChildren) { _local19 = sky.getChildAt(_local18); sky.getChildAt(_local18).x = (_local19.x - ((levelCode.speed * rate) * 0.003)); _local18++; }; if (skyAr[0].x <= -800){ sky.removeChild(sky.getChildAt(0)); skyAr.shift(); skyAr[1] = new Lvl3_3(); skyAr[1].x = (skyAr[0].x + 1300); sky.addChild(skyAr[1]); }; }; }; }; } public function spawnOb(_arg1:Event):void{ var _local2:int; var _local3:Boolean; var _local4:Object; var _local5:Object; var _local6:int; var _local7:Object; curTime = getTimer(); timeDif = (curTime - lastTime); rate = (timeDif / (1000 / 30)); if (ready){ dist = (dist + (levelCode.speed * rate)); _local2 = (obs.numChildren - 1); while (_local2 >= 0) { _local4 = obs.getChildAt(_local2); _local5 = hit.getChildAt(_local2); _local4.x = (_local4.x - (levelCode.speed * rate)); _local5.x = (_local5.x - (levelCode.speed * rate)); if (_local4.x < -100){ obs.removeChild(obs.getChildAt(_local2)); obsAr.shift(); hit.removeChild(hit.getChildAt(_local2)); hitAr.shift(); }; _local2--; }; _local3 = true; while (_local3) { if ((levelCode.position[obNum] - dist) <= 400){ addOb(levelCode.obstacle[obNum]); obNum++; } else { _local3 = false; }; }; if (((((levelCode.goal - dist) <= 400)) && (!((obNum == -1))))){ addOb(0); obNum = -1; }; if ((((dist >= (levelCode.goal + 400))) && ((fatigue > 0)))){ _local6 = (obs.numChildren - 1); while (_local6 >= 0) { _local7 = obs.getChildAt(_local6); obs.getChildAt(_local6).x = (_local7.x + (dist - (levelCode.goal + 400))); _local6--; }; dist = (levelCode.goal + 400); win = true; ready = false; }; } else { if (win){ if (Main(root).SPACE){ Main(root).removeLevel(); }; } else { if (lose){ if (Main(root).SPACE){ Main(root).resetLevel(); }; } else { if (fatigue <= 0){ lose = true; }; }; }; }; lastTime = curTime; } } }//package classes
Section 25
//ObGraphic (classes.ObGraphic) package classes { import flash.events.*; import flash.display.*; public class ObGraphic extends MovieClip { public var par:Object; public function ObGraphic(){ addEventListener(Event.ADDED_TO_STAGE, added); } public function added(_arg1:Event):void{ par = parent.parent; gotoAndStop((par.levelCode.theme + 1)); removeEventListener(Event.ADDED_TO_STAGE, added); } } }//package classes
Section 26
//Player (classes.Player) package classes { import flash.events.*; import flash.display.*; public class Player extends MovieClip { public var u_H:Boolean; public var d_H:Boolean; public var jump:MovieClip; public var buttonPress:Boolean; public var JUMP:Boolean; public var l_H:Boolean; public var actionCode:int; public var DEAD:Boolean; public var arr:MovieClip; public var fall:MovieClip; public var frame:int; public var par:Object; public var DOWN:Boolean; public var actionTimer:int; public var restoreT:int; public var r_H:Boolean; public function Player():void{ stop(); arr.stop(); DEAD = false; frame = 0; addEventListener(Event.ENTER_FRAME, playFunc); addEventListener(Event.REMOVED_FROM_STAGE, removed); buttonPress = false; u_H = false; d_H = false; l_H = false; r_H = false; actionCode = 0; actionTimer = 0; restoreT = 0; } public function playFunc(_arg1:Event):void{ var _local2:uint; var _local3:Object; if (!DEAD){ if (((par.win) && ((x < 1200)))){ x = (x + (par.levelCode.speed * par.rate)); } else { if (actionCode != 0){ if (actionTimer > 0){ actionTimer = (actionTimer - (1 * par.rate)); } else { actionCode = 0; buttonPress = false; }; }; if (((Main(root).UP) && (!(u_H)))){ actionCode = 1; actionTimer = 15; buttonPress = true; u_H = true; }; if (((Main(root).DOWN) && (!(d_H)))){ actionCode = 2; actionTimer = 15; buttonPress = true; d_H = true; }; if (((Main(root).LEFT) && (!(l_H)))){ actionCode = 3; actionTimer = 15; buttonPress = true; l_H = true; }; if (((Main(root).RIGHT) && (!(r_H)))){ actionCode = 4; actionTimer = 15; buttonPress = true; r_H = true; }; if (restoreT > 0){ restoreT = (restoreT - (1 * par.rate)); } else { par.fatigue = (par.fatigue + (5 * par.rate)); if (par.fatigue > 1000){ par.fatigue = 1000; }; }; _local2 = 0; while (_local2 < par.hit.numChildren) { _local3 = par.hitAr[_local2]; if (_local3.hitTestPoint((x + 50), y)){ if (!_local3.cleared){ if ((((actionCode == _local3.code)) && (buttonPress))){ _local3.cleared = true; buttonPress = false; } else { _local3.cleared = true; restoreT = 150; par.fatigue = (par.fatigue - 70); DOWN = true; new SD().play(); }; }; }; _local2++; }; if (par.fatigue <= 0){ DEAD = true; par.fatigue = 0; restoreT = 0; }; }; } else { if (par.ready){ x = (x - (par.levelCode.speed * par.rate)); }; }; if (par.win){ frame = 1; } else { if (DEAD){ frame = 3; } else { if (actionCode != 0){ frame = 2; } else { if (DOWN){ frame = 3; } else { frame = 1; }; }; }; }; if ((((actionTimer == 15)) && ((currentFrame == 2)))){ this["jump"].gotoAndPlay(1); }; if ((((restoreT == 150)) && ((currentFrame == 3)))){ this["fall"].gotoAndPlay(1); }; if (par.win){ arr.gotoAndStop(1); } else { if (arr.currentFrame != (actionCode + 1)){ arr.gotoAndStop((actionCode + 1)); }; }; if (currentFrame != frame){ gotoAndStop(frame); }; if (!Main(root).UP){ u_H = false; }; if (!Main(root).DOWN){ d_H = false; }; if (!Main(root).LEFT){ l_H = false; }; if (!Main(root).RIGHT){ r_H = false; }; } public function removed(_arg1:Event):void{ removeEventListener(Event.ENTER_FRAME, playFunc); removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package classes
Section 27
//MD5 (com.adobe.crypto.MD5) package com.adobe.crypto { import flash.utils.*; import com.adobe.utils.*; public class MD5 { public static var digest:ByteArray; public static function hash(_arg1:String):String{ var _local2:ByteArray = new ByteArray(); _local2.writeUTFBytes(_arg1); return (hashBinary(_local2)); } public static function hashBytes(_arg1:ByteArray):String{ return (hashBinary(_arg1)); } public static function hashBinary(_arg1:ByteArray):String{ var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local2 = 1732584193; var _local3 = -271733879; var _local4 = -1732584194; var _local5 = 271733878; var _local10:Array = createBlocks(_arg1); var _local11:int = _local10.length; var _local12:int; 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 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 = (((_arg2 + int(_arg1(_arg3, _arg4, _arg5))) + _arg6) + _arg8); return ((IntUtil.rol(_local9, _arg7) + _arg3)); } 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 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 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)); } 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)); } private static function createBlocks(_arg1:ByteArray):Array{ var _local2:Array = new Array(); var _local3:int = (_arg1.length * 8); var _local4 = 0xFF; var _local5:int; 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); } } }//package com.adobe.crypto
Section 28
//PNGEncoder (com.adobe.images.PNGEncoder) package com.adobe.images { import flash.display.*; import flash.utils.*; import flash.geom.*; public class PNGEncoder { private static var crcTable:Array; private static var crcTableComputed:Boolean = false; public static function encode(_arg1:BitmapData):ByteArray{ var _local6:uint; var _local7:int; var _local2:ByteArray = new ByteArray(); _local2.writeUnsignedInt(2303741511); _local2.writeUnsignedInt(218765834); var _local3:ByteArray = new ByteArray(); _local3.writeInt(_arg1.width); _local3.writeInt(_arg1.height); _local3.writeUnsignedInt(134610944); _local3.writeByte(0); writeChunk(_local2, 1229472850, _local3); var _local4:ByteArray = new ByteArray(); var _local5:int; 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); } private static function writeChunk(_arg1:ByteArray, _arg2:uint, _arg3:ByteArray):void{ 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++; }; }; var _local4:uint; if (_arg3 != null){ _local4 = _arg3.length; }; _arg1.writeUnsignedInt(_local4); var _local5:uint = _arg1.position; _arg1.writeUnsignedInt(_arg2); if (_arg3 != null){ _arg1.writeBytes(_arg3); }; var _local6:uint = _arg1.position; _arg1.position = _local5; _local8 = 4294967295; var _local7:int; 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); } } }//package com.adobe.images
Section 29
//JSON (com.adobe.serialization.json.JSON) package com.adobe.serialization.json { public class JSON { public static function encode(_arg1:Object):String{ var _local2:JSONEncoder = new JSONEncoder(_arg1); return (_local2.getString()); } public static function decode(_arg1:String){ var _local2:JSONDecoder = new JSONDecoder(_arg1); return (_local2.getValue()); } } }//package com.adobe.serialization.json
Section 30
//JSONDecoder (com.adobe.serialization.json.JSONDecoder) package com.adobe.serialization.json { public class JSONDecoder { private var value; private var tokenizer:JSONTokenizer; private var token:JSONToken; public function JSONDecoder(_arg1:String){ this.tokenizer = new JSONTokenizer(_arg1); this.nextToken(); this.value = this.parseValue(); } public function getValue(){ return (this.value); } private function nextToken():JSONToken{ return ((this.token = this.tokenizer.getNextToken())); } private function parseArray():Array{ var _local1:Array = new Array(); this.nextToken(); if (this.token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; while (true) { _local1.push(this.parseValue()); this.nextToken(); if (this.token.type == JSONTokenType.RIGHT_BRACKET){ return (_local1); }; if (this.token.type == JSONTokenType.COMMA){ this.nextToken(); } else { this.tokenizer.parseError(("Expecting ] or , but found " + this.token.value)); }; }; return (null); } private function parseObject():Object{ var _local2:String; var _local1:Object = new Object(); this.nextToken(); if (this.token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; while (true) { if (this.token.type == JSONTokenType.STRING){ _local2 = String(this.token.value); this.nextToken(); if (this.token.type == JSONTokenType.COLON){ this.nextToken(); _local1[_local2] = this.parseValue(); this.nextToken(); if (this.token.type == JSONTokenType.RIGHT_BRACE){ return (_local1); }; if (this.token.type == JSONTokenType.COMMA){ this.nextToken(); } else { this.tokenizer.parseError(("Expecting } or , but found " + this.token.value)); }; } else { this.tokenizer.parseError(("Expecting : but found " + this.token.value)); }; } else { this.tokenizer.parseError(("Expecting string but found " + this.token.value)); }; }; return (null); } private function parseValue():Object{ if (this.token == null){ this.tokenizer.parseError("Unexpected end of input"); }; switch (this.token.type){ case JSONTokenType.LEFT_BRACE: return (this.parseObject()); case JSONTokenType.LEFT_BRACKET: return (this.parseArray()); case JSONTokenType.STRING: case JSONTokenType.NUMBER: case JSONTokenType.TRUE: case JSONTokenType.FALSE: case JSONTokenType.NULL: return (this.token.value); default: this.tokenizer.parseError(("Unexpected " + this.token.value)); }; return (null); } } }//package com.adobe.serialization.json
Section 31
//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){ this.jsonString = this.convertToString(_arg1); } public function getString():String{ return (this.jsonString); } private function convertToString(_arg1):String{ if ((_arg1 is String)){ return (this.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 (this.arrayToString((_arg1 as Array))); }; if ((((_arg1 is Object)) && (!((_arg1 == null))))){ return (this.objectToString(_arg1)); }; }; }; return ("null"); } private function escapeString(_arg1:String):String{ var _local3:String; var _local6:String; var _local7:String; var _local2 = ""; var _local4:Number = _arg1.length; var _local5:int; 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 arrayToString(_arg1:Array):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + ","); }; _local2 = (_local2 + this.convertToString(_arg1[_local3])); _local3++; }; return ((("[" + _local2) + "]")); } private function objectToString(_arg1:Object):String{ var value:Object; var key:String; var v:XML; var o = _arg1; var s = ""; var classInfo:XML = 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 + ((this.escapeString(key) + ":") + this.convertToString(value))); }; }; } else { for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) { if (s.length > 0){ s = (s + ","); }; s = (s + ((this.escapeString(v.@name.toString()) + ":") + this.convertToString(o[v.@name]))); }; }; return ((("{" + s) + "}")); } } }//package com.adobe.serialization.json
Section 32
//JSONParseError (com.adobe.serialization.json.JSONParseError) package com.adobe.serialization.json { public class JSONParseError extends Error { private var _location:int; private var _text:String; public function JSONParseError(_arg1:String="", _arg2:int=0, _arg3:String=""){ super(_arg1); name = "JSONParseError"; this._location = _arg2; this._text = _arg3; } public function get location():int{ return (this._location); } public function get text():String{ return (this._text); } } }//package com.adobe.serialization.json
Section 33
//JSONToken (com.adobe.serialization.json.JSONToken) package com.adobe.serialization.json { public class JSONToken { private var _type:int; private var _value:Object; public function JSONToken(_arg1:int=-1, _arg2:Object=null){ this._type = _arg1; this._value = _arg2; } public function get type():int{ return (this._type); } public function set type(_arg1:int):void{ this._type = _arg1; } public function get value():Object{ return (this._value); } public function set value(_arg1:Object):void{ this._value = _arg1; } } }//package com.adobe.serialization.json
Section 34
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer) package com.adobe.serialization.json { public class JSONTokenizer { private var obj:Object; private var jsonString:String; private var loc:int; private var ch:String; public function JSONTokenizer(_arg1:String){ this.jsonString = _arg1; this.loc = 0; this.nextChar(); } public function getNextToken():JSONToken{ var _local2:String; var _local3:String; var _local4:String; var _local1:JSONToken = new JSONToken(); this.skipIgnored(); switch (this.ch){ case "{": _local1.type = JSONTokenType.LEFT_BRACE; _local1.value = "{"; this.nextChar(); break; case "}": _local1.type = JSONTokenType.RIGHT_BRACE; _local1.value = "}"; this.nextChar(); break; case "[": _local1.type = JSONTokenType.LEFT_BRACKET; _local1.value = "["; this.nextChar(); break; case "]": _local1.type = JSONTokenType.RIGHT_BRACKET; _local1.value = "]"; this.nextChar(); break; case ",": _local1.type = JSONTokenType.COMMA; _local1.value = ","; this.nextChar(); break; case ":": _local1.type = JSONTokenType.COLON; _local1.value = ":"; this.nextChar(); break; case "t": _local2 = ((("t" + this.nextChar()) + this.nextChar()) + this.nextChar()); if (_local2 == "true"){ _local1.type = JSONTokenType.TRUE; _local1.value = true; this.nextChar(); } else { this.parseError(("Expecting 'true' but found " + _local2)); }; break; case "f": _local3 = (((("f" + this.nextChar()) + this.nextChar()) + this.nextChar()) + this.nextChar()); if (_local3 == "false"){ _local1.type = JSONTokenType.FALSE; _local1.value = false; this.nextChar(); } else { this.parseError(("Expecting 'false' but found " + _local3)); }; break; case "n": _local4 = ((("n" + this.nextChar()) + this.nextChar()) + this.nextChar()); if (_local4 == "null"){ _local1.type = JSONTokenType.NULL; _local1.value = null; this.nextChar(); } else { this.parseError(("Expecting 'null' but found " + _local4)); }; break; case "\"": _local1 = this.readString(); break; default: if (((this.isDigit(this.ch)) || ((this.ch == "-")))){ _local1 = this.readNumber(); } else { if (this.ch == ""){ return (null); }; this.parseError((("Unexpected " + this.ch) + " encountered")); }; }; return (_local1); } private function readString():JSONToken{ var _local3:String; var _local4:int; var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.STRING; var _local2 = ""; this.nextChar(); while (((!((this.ch == "\""))) && (!((this.ch == ""))))) { if (this.ch == "\\"){ this.nextChar(); switch (this.ch){ case "\"": _local2 = (_local2 + "\""); break; 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; case "u": _local3 = ""; _local4 = 0; while (_local4 < 4) { if (!this.isHexDigit(this.nextChar())){ this.parseError((" Excepted a hex digit, but found: " + this.ch)); }; _local3 = (_local3 + this.ch); _local4++; }; _local2 = (_local2 + String.fromCharCode(parseInt(_local3, 16))); break; default: _local2 = (_local2 + ("\\" + this.ch)); }; } else { _local2 = (_local2 + this.ch); }; this.nextChar(); }; if (this.ch == ""){ this.parseError("Unterminated string literal"); }; this.nextChar(); _local1.value = _local2; return (_local1); } private function readNumber():JSONToken{ var _local1:JSONToken = new JSONToken(); _local1.type = JSONTokenType.NUMBER; var _local2 = ""; if (this.ch == "-"){ _local2 = (_local2 + "-"); this.nextChar(); }; if (!this.isDigit(this.ch)){ this.parseError("Expecting a digit"); }; if (this.ch == "0"){ _local2 = (_local2 + this.ch); this.nextChar(); if (this.isDigit(this.ch)){ this.parseError("A digit cannot immediately follow 0"); }; } else { while (this.isDigit(this.ch)) { _local2 = (_local2 + this.ch); this.nextChar(); }; }; if (this.ch == "."){ _local2 = (_local2 + "."); this.nextChar(); if (!this.isDigit(this.ch)){ this.parseError("Expecting a digit"); }; while (this.isDigit(this.ch)) { _local2 = (_local2 + this.ch); this.nextChar(); }; }; if ((((this.ch == "e")) || ((this.ch == "E")))){ _local2 = (_local2 + "e"); this.nextChar(); if ((((this.ch == "+")) || ((this.ch == "-")))){ _local2 = (_local2 + this.ch); this.nextChar(); }; if (!this.isDigit(this.ch)){ this.parseError("Scientific notation number needs exponent value"); }; while (this.isDigit(this.ch)) { _local2 = (_local2 + this.ch); this.nextChar(); }; }; var _local3:Number = Number(_local2); if (((isFinite(_local3)) && (!(isNaN(_local3))))){ _local1.value = _local3; return (_local1); }; this.parseError((("Number " + _local3) + " is not valid!")); return (null); } private function nextChar():String{ return ((this.ch = this.jsonString.charAt(this.loc++))); } private function skipIgnored():void{ var _local1:int; do { _local1 = this.loc; this.skipWhite(); this.skipComments(); } while (_local1 != this.loc); } private function skipComments():void{ if (this.ch == "/"){ this.nextChar(); switch (this.ch){ case "/": do { this.nextChar(); } while (((!((this.ch == "\n"))) && (!((this.ch == ""))))); this.nextChar(); break; case "*": this.nextChar(); while (true) { if (this.ch == "*"){ this.nextChar(); if (this.ch == "/"){ this.nextChar(); break; }; } else { this.nextChar(); }; if (this.ch == ""){ this.parseError("Multi-line comment not closed"); }; }; break; default: this.parseError((("Unexpected " + this.ch) + " encountered (expecting '/' or '*' )")); }; }; } private function skipWhite():void{ while (this.isWhiteSpace(this.ch)) { this.nextChar(); }; } private function isWhiteSpace(_arg1:String):Boolean{ return ((((((((_arg1 == " ")) || ((_arg1 == "\t")))) || ((_arg1 == "\n")))) || ((_arg1 == "\r")))); } private function isDigit(_arg1:String):Boolean{ return ((((_arg1 >= "0")) && ((_arg1 <= "9")))); } private function isHexDigit(_arg1:String):Boolean{ var _local2:String = _arg1.toUpperCase(); return (((this.isDigit(_arg1)) || ((((_local2 >= "A")) && ((_local2 <= "F")))))); } public function parseError(_arg1:String):void{ throw (new JSONParseError(_arg1, this.loc, this.jsonString)); } } }//package com.adobe.serialization.json
Section 35
//JSONTokenType (com.adobe.serialization.json.JSONTokenType) package com.adobe.serialization.json { public class JSONTokenType { public static const UNKNOWN:int = -1; public static const COMMA:int = 0; public static const LEFT_BRACE:int = 1; public static const RIGHT_BRACE:int = 2; public static const LEFT_BRACKET:int = 3; public static const RIGHT_BRACKET:int = 4; public static const COLON:int = 6; public static const TRUE:int = 7; public static const FALSE:int = 8; public static const NULL:int = 9; public static const STRING:int = 10; public static const NUMBER:int = 11; } }//package com.adobe.serialization.json
Section 36
//IntUtil (com.adobe.utils.IntUtil) package com.adobe.utils { public class IntUtil { private static var hexChars:String = "0123456789abcdef"; public static function rol(_arg1:int, _arg2:int):int{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function ror(_arg1:int, _arg2:int):uint{ var _local3:int = (32 - _arg2); return (((_arg1 << _local3) | (_arg1 >>> (32 - _local3)))); } public static function toHex(_arg1:int, _arg2:Boolean=false):String{ var _local4:int; var _local5:int; var _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); } } }//package com.adobe.utils
Section 37
//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 38
//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 39
//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 40
//PreloaderBar (com.newgrounds.components.PreloaderBar) package com.newgrounds.components { import flash.events.*; import flash.display.*; import flash.utils.*; public class PreloaderBar extends MovieClip { public var bar:DisplayObject; public var playButton:DisplayObject; private var _autoPlay:Boolean;// = false public function PreloaderBar(){ addFrameScript(51, this.frame52); if (((!((parent == null))) && ((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent")))){ return; }; gotoAndStop("LOAD"); if (this.bar){ this.bar.scaleX = 0; }; addEventListener(Event.ENTER_FRAME, this.enterFrameHandler); } public function onPlayButtonClicked(_arg1:MouseEvent):void{ this.startMovie(); } public function get autoPlay():Boolean{ return (this._autoPlay); } public function set autoPlay(_arg1:Boolean):void{ this._autoPlay = _arg1; } private function enterFrameHandler(_arg1:Event):void{ var _local2:Number; if (((root) && (root.loaderInfo))){ if ((root is MovieClip)){ MovieClip(root).stop(); }; _local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); if (this.bar){ this.bar.scaleX = _local2; }; if (_local2 == 1){ removeEventListener(Event.ENTER_FRAME, this.enterFrameHandler); if (this.autoPlay){ this.startMovie(); } else { gotoAndPlay("COMPLETE_STOP"); }; }; }; } private function playButtonReady():void{ stop(); if (this.playButton){ this.playButton.addEventListener(MouseEvent.CLICK, this.playButtonClicked); } else { this.startMovie(); }; } private function playButtonClicked(_arg1:MouseEvent):void{ this.startMovie(); } private function startMovie():void{ if (((root) && ((root is MovieClip)))){ MovieClip(root).play(); }; dispatchEvent(new Event(Event.COMPLETE)); } function frame52(){ stop(); if (this.playButton){ this.playButton.addEventListener(MouseEvent.CLICK, this.onPlayButtonClicked); } else { this.startMovie(); }; } } }//package com.newgrounds.components
Section 41
//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 42
//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 43
//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 44
//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 45
//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 46
//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 47
//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 48
//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 49
//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 50
//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 51
//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 52
//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 53
//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 54
//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 55
//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 56
//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 57
//NewgroundsAPIAsset_FlashAd_Container_2 (FlashAd_fla.NewgroundsAPIAsset_FlashAd_Container_2) package FlashAd_fla { import flash.events.*; import flash.display.*; import com.newgrounds.*; public dynamic class NewgroundsAPIAsset_FlashAd_Container_2 extends MovieClip { public var adMask:MovieClip; public var ngLinkButton:SimpleButton; public function NewgroundsAPIAsset_FlashAd_Container_2(){ addFrameScript(0, this.frame1, 10, this.frame11); } public function onNGLinkClicked(_arg1:MouseEvent):void{ API.loadNewgrounds(); } function frame1(){ this.ngLinkButton.addEventListener(MouseEvent.CLICK, this.onNGLinkClicked); } function frame11(){ gotoAndPlay(1); } } }//package FlashAd_fla
Section 58
//NewgroundsAPIAsset_Load_Indicator_5 (FlashAd_fla.NewgroundsAPIAsset_Load_Indicator_5) package FlashAd_fla { import flash.events.*; import flash.display.*; public dynamic class NewgroundsAPIAsset_Load_Indicator_5 extends MovieClip { public function NewgroundsAPIAsset_Load_Indicator_5(){ 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 FlashAd_fla
Section 59
//character_fall1_34 (GJ3_fla.character_fall1_34) package GJ3_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class character_fall1_34 extends MovieClip { public var par:Object; public function character_fall1_34(){ addFrameScript(6, frame7); } function frame7(){ stop(); par = parent; if (!par.DEAD){ par.DOWN = false; }; } } }//package GJ3_fla
Section 60
//Demon_27 (GJ3_fla.Demon_27) package GJ3_fla { import flash.display.*; public dynamic class Demon_27 extends MovieClip { public function Demon_27(){ addFrameScript(79, frame80); } function frame80(){ stop(); } } }//package GJ3_fla
Section 61
//Hud_2 (GJ3_fla.Hud_2) package GJ3_fla { import flash.display.*; public dynamic class Hud_2 extends MovieClip { public function Hud_2(){ addFrameScript(0, frame1, 20, frame21); } function frame1(){ stop(); } function frame21(){ stop(); } } }//package GJ3_fla
Section 62
//Hud_3 (GJ3_fla.Hud_3) package GJ3_fla { import flash.display.*; public dynamic class Hud_3 extends MovieClip { public function Hud_3(){ addFrameScript(0, frame1, 20, frame21); } function frame1(){ stop(); } function frame21(){ stop(); } } }//package GJ3_fla
Section 63
//Hud_4 (GJ3_fla.Hud_4) package GJ3_fla { import flash.display.*; public dynamic class Hud_4 extends MovieClip { public var bar:MovieClip; } }//package GJ3_fla
Section 64
//Timeline_40 (GJ3_fla.Timeline_40) package GJ3_fla { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class Timeline_40 extends MovieClip { public const FRAME_RATE_ADJUST:Boolean = true; public const LOADER_FRAME_RATE:Number = 30; public const AUTO_PLAY:Boolean = false; public var bar:MovieClip; public var playButton:SimpleButton; public var movieFrameRate:Number; public var par:Object; public var loadingComplete:Boolean; public var initialized:Boolean; public function Timeline_40(){ addFrameScript(0, frame1, 50, frame51); } public function init():void{ if (initialized){ return; }; initialized = true; par = parent; stop(); loadingComplete = false; addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true); addEventListener(Event.REMOVED_FROM_STAGE, cleanup, false, 0, true); enterFrameHandler(); } public function enterFrameHandler(_arg1:Event=null):void{ var _local2:Number; if (!loadingComplete){ _local2 = 0; if (loaderInfo){ _local2 = (loaderInfo.bytesLoaded / loaderInfo.bytesTotal); }; if (bar){ bar.scaleX = _local2; }; if (_local2 == 1){ loadingComplete = true; if (AUTO_PLAY){ startMovie(); } else { gotoAndPlay("loaded"); }; }; }; } public function playButtonClickHandler(_arg1:Event=null):void{ startMovie(); } function frame1(){ initialized = false; init(); } public function cleanup(_arg1:Event=null){ if (initialized){ removeEventListener(Event.ENTER_FRAME, enterFrameHandler); removeEventListener(Event.REMOVED_FROM_STAGE, cleanup); }; initialized = false; } function frame51(){ stop(); if (((playButton) && (!(playButton.hasEventListener(MouseEvent.CLICK))))){ playButton.addEventListener(MouseEvent.CLICK, playButtonClickHandler, false, 0, true); }; } public function startMovie():void{ cleanup(); par.play(); dispatchEvent(new Event(Event.COMPLETE)); } } }//package GJ3_fla
Section 65
//Timeline_5 (PreloaderBar_fla.Timeline_5) package PreloaderBar_fla { import flash.display.*; public dynamic class Timeline_5 extends MovieClip { public function Timeline_5(){ addFrameScript(39, this.frame40); } function frame40(){ stop(); } } }//package PreloaderBar_fla
Section 66
//creditsbutton (creditsbutton) package { import classes.utils.*; public dynamic class creditsbutton extends ADV_Button { } }//package
Section 67
//howtoplaybutton (howtoplaybutton) package { import classes.utils.*; public dynamic class howtoplaybutton extends ADV_Button { } }//package
Section 68
//Killer (Killer) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.media.*; import flash.text.*; import flash.geom.*; import flash.system.*; import flash.errors.*; import adobe.utils.*; import flash.accessibility.*; import flash.external.*; import flash.filters.*; import flash.printing.*; import flash.ui.*; import flash.xml.*; public dynamic class Killer extends MovieClip { public var par:Object; public function Killer(){ addFrameScript(44, frame45); } function frame45(){ stop(); par = parent; par.player[0].DEAD = true; } } }//package
Section 69
//Lvl1_1 (Lvl1_1) package { import flash.display.*; public dynamic class Lvl1_1 extends MovieClip { } }//package
Section 70
//Lvl1_2 (Lvl1_2) package { import flash.display.*; public dynamic class Lvl1_2 extends MovieClip { } }//package
Section 71
//Lvl1_3 (Lvl1_3) package { import flash.display.*; public dynamic class Lvl1_3 extends MovieClip { } }//package
Section 72
//Lvl2_1 (Lvl2_1) package { import flash.display.*; public dynamic class Lvl2_1 extends MovieClip { } }//package
Section 73
//Lvl2_2 (Lvl2_2) package { import flash.display.*; public dynamic class Lvl2_2 extends MovieClip { } }//package
Section 74
//Lvl2_3 (Lvl2_3) package { import flash.display.*; public dynamic class Lvl2_3 extends MovieClip { } }//package
Section 75
//Lvl3_1 (Lvl3_1) package { import flash.display.*; public dynamic class Lvl3_1 extends MovieClip { } }//package
Section 76
//Lvl3_2 (Lvl3_2) package { import flash.display.*; public dynamic class Lvl3_2 extends MovieClip { } }//package
Section 77
//Lvl3_3 (Lvl3_3) package { import flash.display.*; public dynamic class Lvl3_3 extends MovieClip { } }//package
Section 78
//M1 (M1) package { import flash.media.*; public dynamic class M1 extends Sound { } }//package
Section 79
//M2 (M2) package { import flash.media.*; public dynamic class M2 extends Sound { } }//package
Section 80
//M3 (M3) package { import flash.media.*; public dynamic class M3 extends Sound { } }//package
Section 81
//Main (Main) package { import flash.events.*; import flash.display.*; import com.newgrounds.components.*; import classes.utils.*; import classes.levelCodes.*; import classes.*; import classes.system.*; public class Main extends MovieClip { public var gameMask:Sprite; public var RIGHT:Boolean; public var LEFT:Boolean; public var db_pos:String; public var gameStage:int; public var db_goa:String; public var db_the:String; public var db_son:String; public var db_spe:String; public var __id1_:APIConnector; public var displayAr:Array; public var DOWN:Boolean; public var contentReady:Boolean; public var UP:Boolean; public var display:Sprite; public var db_obs:String; public var PAUSE:Boolean; public var SPACE:Boolean; public function Main():void{ db_obs = ""; db_pos = ""; db_son = ""; db_the = ""; db_spe = ""; db_goa = ""; gameStage = -1; gameMask = new Sprite(); display = new Sprite(); UP = false; DOWN = false; LEFT = false; RIGHT = false; SPACE = false; gameMask.graphics.beginFill(0); gameMask.graphics.drawRect(0, 0, 800, 450); gameMask.graphics.endFill(); addChild(gameMask); addChild(display); mask = gameMask; runEvent(); stage.addEventListener(KeyboardEvent.KEY_DOWN, keysDown); stage.addEventListener(KeyboardEvent.KEY_UP, keysUp); __setProp___id1__Scene1_Layer1_1(); } public function buildEnding():void{ displayAr = [new Ending()]; display.addChild(displayAr[0]); contentReady = true; } public function removeDebug():void{ display.removeChild(displayAr[0]); displayAr = []; contentReady = false; } public function removeIntro():void{ display.removeChild(displayAr[0]); displayAr = []; contentReady = false; gameStage = 1; runEvent(); } function __setProp___id1__Scene1_Layer1_1(){ try { __id1_["componentInspectorSetting"] = true; } catch(e:Error) { }; __id1_.movieId = "17108:sq8Iot6a"; __id1_.debugMode = false; __id1_.encryptionKey = "rwiBMrzZ8fYzpVVVLHpMPlF6RXDV9Kud"; __id1_.movieVersion = ""; __id1_.showConnectingPopup = true; __id1_.useErrorPopup = true; __id1_.useMedalPopup = true; __id1_.useFakeSession = false; try { __id1_["componentInspectorSetting"] = false; } catch(e:Error) { }; } public function removePreloader():void{ display.removeChild(displayAr[0]); displayAr = []; contentReady = false; gameStage = 0; runEvent(); } public function resetLevel():void{ contentReady = false; display.removeChild(displayAr[0]); display.removeChild(displayAr[1]); displayAr = []; runEvent(); } public function buildDebug():void{ displayAr = [new PCustom()]; display.addChild(displayAr[0]); contentReady = true; } public function removeLevel():void{ contentReady = false; if (gameStage != -2){ gameStage++; }; display.removeChild(displayAr[0]); display.removeChild(displayAr[1]); displayAr = []; runEvent(); } public function buildPreloader():void{ displayAr = [new Preloader()]; display.addChild(displayAr[0]); contentReady = true; } public function buildIntro():void{ displayAr = [new Intro()]; display.addChild(displayAr[0]); contentReady = true; } public function keysUp(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){ UP = false; }; if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){ DOWN = false; }; if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){ LEFT = false; }; if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){ RIGHT = false; }; if (_arg1.keyCode == 32){ SPACE = false; }; } public function buildLevel(_arg1:LevelCode):void{ var _local2:LevelCode; contentReady = true; _local2 = _arg1; displayAr = [new MainStage(), new Hud()]; display.addChild(displayAr[0]); display.addChild(displayAr[1]); displayAr[0].initLevel(_local2); } public function keysDown(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == 38)) || ((_arg1.keyCode == 87)))){ UP = true; }; if ((((_arg1.keyCode == 40)) || ((_arg1.keyCode == 83)))){ DOWN = true; }; if ((((_arg1.keyCode == 37)) || ((_arg1.keyCode == 65)))){ LEFT = true; }; if ((((_arg1.keyCode == 39)) || ((_arg1.keyCode == 68)))){ RIGHT = true; }; if (_arg1.keyCode == 32){ SPACE = true; }; } public function runEvent():void{ if (contentReady){ if (gameStage == -2){ removeDebug(); } else { if (gameStage == -1){ removePreloader(); } else { if (gameStage == 0){ removeIntro(); } else { if ((((((gameStage == 1)) || ((gameStage == 2)))) || ((gameStage == 3)))){ removeLevel(); } else { if (gameStage == 4){ removeEnding(); }; }; }; }; }; } else { if (gameStage == -2){ buildDebug(); } else { if (gameStage == -1){ buildPreloader(); } else { if (gameStage == 0){ buildIntro(); } else { if (gameStage == 1){ buildLevel(new Level1()); } else { if (gameStage == 2){ buildLevel(new Level2()); } else { if (gameStage == 3){ buildLevel(new Level3()); } else { if (gameStage == 4){ buildEnding(); }; }; }; }; }; }; }; }; } public function removeEnding():void{ display.removeChild(displayAr[0]); displayAr = []; contentReady = false; gameStage = -1; runEvent(); } } }//package
Section 82
//MM (MM) package { import flash.media.*; public dynamic class MM extends Sound { } }//package
Section 83
//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
Section 84
//playbutton (playbutton) package { import classes.utils.*; public dynamic class playbutton extends ADV_Button { } }//package
Section 85
//SD (SD) package { import flash.media.*; public dynamic class SD extends Sound { } }//package

Library Items

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

Instance Names

"__id1_"Frame 1Symbol 430 MovieClip {com.newgrounds.components.APIConnector}
"adMask"Symbol 107 MovieClip {FlashAd_fla.NewgroundsAPIAsset_FlashAd_Container_2} Frame 1Symbol 95 MovieClip
"ngLinkButton"Symbol 107 MovieClip {FlashAd_fla.NewgroundsAPIAsset_FlashAd_Container_2} Frame 1Symbol 100 Button
"background"Symbol 108 MovieClip {com.newgrounds.components.FlashAd} Frame 1Symbol 107 MovieClip {FlashAd_fla.NewgroundsAPIAsset_FlashAd_Container_2}
"bar"Symbol 140 MovieClip {GJ3_fla.Timeline_40} Frame 1Symbol 111 MovieClip
"playButton"Symbol 140 MovieClip {GJ3_fla.Timeline_40} Frame 47Symbol 139 Button
"playBut"Symbol 155 MovieClip {classes.system.Preloader} Frame 2Symbol 143 MovieClip {playbutton}
"instBut"Symbol 155 MovieClip {classes.system.Preloader} Frame 2Symbol 146 MovieClip {howtoplaybutton}
"credBut"Symbol 155 MovieClip {classes.system.Preloader} Frame 2Symbol 151 MovieClip {creditsbutton}
"arr"Symbol 210 MovieClip {classes.Player} Frame 1Symbol 190 MovieClip
"jump"Symbol 210 MovieClip {classes.Player} Frame 2Symbol 205 MovieClip
"fall"Symbol 210 MovieClip {classes.Player} Frame 3Symbol 209 MovieClip {GJ3_fla.character_fall1_34}
"obC"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 247 EditableText
"poC"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 249 EditableText
"poC"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 252 EditableText
"lSp"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 253 EditableText
"plB"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 255 MovieClip
"lDs"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 257 EditableText
"lTh"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 259 EditableText
"lSo"Symbol 262 MovieClip {classes.utils.PCustom} Frame 1Symbol 261 EditableText
"bar"Symbol 335 MovieClip {GJ3_fla.Hud_4} Frame 1Symbol 331 MovieClip
"clear"Symbol 336 MovieClip {classes.system.Hud} Frame 1Symbol 324 MovieClip {GJ3_fla.Hud_2}
"fail"Symbol 336 MovieClip {classes.system.Hud} Frame 1Symbol 328 MovieClip {GJ3_fla.Hud_3}
"disp"Symbol 336 MovieClip {classes.system.Hud} Frame 1Symbol 335 MovieClip {GJ3_fla.Hud_4}
"bar"Symbol 370 MovieClip {com.newgrounds.components.PreloaderBar} Frame 2Symbol 344 MovieClip
"playButton"Symbol 370 MovieClip {com.newgrounds.components.PreloaderBar} Frame 48Symbol 369 Button
"shadow"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 396 MovieClip
"c"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 398 MovieClip
"b"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 400 MovieClip
"t"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 402 MovieClip
"l"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 404 MovieClip
"r"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 406 MovieClip
"tl"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 408 MovieClip
"tr"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 410 MovieClip
"bl"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 412 MovieClip
"br"Symbol 415 MovieClip {NewgroundsAPIAsset_big_popup_background} Frame 1Symbol 414 MovieClip
"errorDialog"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 5Symbol 388 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5}
"errorDialog"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 6Symbol 392 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7}
"background"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 394 MovieClip
"closeButton"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 419 Button
"viewLatestButton"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 7Symbol 425 Button
"viewAuthorizedButton"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 8Symbol 425 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.

Labels

"loaded"Symbol 140 MovieClip {GJ3_fla.Timeline_40} Frame 2
"LOAD"Symbol 370 MovieClip {com.newgrounds.components.PreloaderBar} Frame 2
"COMPLETE_STOP"Symbol 370 MovieClip {com.newgrounds.components.PreloaderBar} Frame 3
"closeme"Symbol 388 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Login_Warning_5} Frame 11
"closeme"Symbol 392 MovieClip {APIConnector_fla.NewgroundsAPIAsset_Connection_Error_7} Frame 11
"idle"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 2
"connecting"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 3
"connected"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 4
"no_login"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 5
"no_connect"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 6
"new_version"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 7
"bad_host"Symbol 430 MovieClip {com.newgrounds.components.APIConnector} Frame 8




http://swfchan.com/24/115603/info.shtml
Created: 9/3 -2019 11:20:44 Last modified: 9/3 -2019 11:20:44 Server time: 25/04 -2024 01:06:11