Section 1
//CreditsUI (assets.pages.CreditsUI)
package assets.pages {
import flash.display.*;
public dynamic class CreditsUI extends MovieClip {
public function CreditsUI(){
addFrameScript(27, frame28);
}
function frame28(){
stop();
}
}
}//package assets.pages
Section 2
//HelpUI (assets.pages.HelpUI)
package assets.pages {
import flash.display.*;
public dynamic class HelpUI extends MovieClip {
public function HelpUI(){
addFrameScript(27, frame28);
}
function frame28(){
stop();
}
}
}//package assets.pages
Section 3
//MedalsUI (assets.pages.MedalsUI)
package assets.pages {
import flash.display.*;
public dynamic class MedalsUI extends MovieClip {
public var medalMastermind:MovieClip;
public var medalIntel:MovieClip;
public var baseNinja:MovieClip;
public var medalScrapyard:MovieClip;
public var medalGenius:MovieClip;
public var baseBest:MovieClip;
public var medalBest:MovieClip;
public var baseDestroyer:MovieClip;
public var medalSaboteur:MovieClip;
public var baseIntel:MovieClip;
public var medalSecret:MovieClip;
public var baseSabotuer:MovieClip;
public var baseGenius:MovieClip;
public var baseMastermind:MovieClip;
public var baseScrapyard:MovieClip;
public var medalWeaponX:MovieClip;
public var baseWeaponx:MovieClip;
public var medalNinja:MovieClip;
public var baseSecret:MovieClip;
public var medalDestroyer:MovieClip;
public function MedalsUI(){
addFrameScript(27, frame28);
}
function frame28(){
stop();
}
}
}//package assets.pages
Section 4
//mutantButtons (assets.pages.mutantButtons)
package assets.pages {
import flash.display.*;
public dynamic class mutantButtons extends MovieClip {
public var next:MovieClip;
public var prev:MovieClip;
public var iconShadowcat:MovieClip;
public var iconBeast:MovieClip;
public var iconWolverine:MovieClip;
public var iconCyclops:MovieClip;
public var iconRogue:MovieClip;
}
}//package assets.pages
Section 5
//MutantsUI (assets.pages.MutantsUI)
package assets.pages {
import flash.display.*;
import events.*;
public dynamic class MutantsUI extends MovieClip {
public var pageBeast:MovieClip;
public var pageWolverine:MovieClip;
public var pageCyclops:MovieClip;
public var pageRogue:MovieClip;
public var pageShadowcat:MovieClip;
public function MutantsUI(){
addFrameScript(24, frame25);
}
function frame25(){
stop();
dispatchEvent(new UIEvent(UIEvent.LOAD_HIGHSCORES));
}
}
}//package assets.pages
Section 6
//SubmitScoreUI (assets.pages.SubmitScoreUI)
package assets.pages {
import flash.events.*;
import flash.display.*;
import events.*;
import flash.text.*;
public dynamic class SubmitScoreUI extends MovieClip {
public var tryAgainButton:MovieClip;
public var nameField:MovieClip;
public var submitButton:SimpleButton;
public var closeButton:MovieClip;
public var loginButton:MovieClip;
public var skipButton:MovieClip;
public var score:TextField;
public function SubmitScoreUI(){
addFrameScript(0, frame1, 7, frame8, 19, frame20, 20, frame21, 27, frame28, 36, frame37, 76, frame77, 77, frame78, 95, frame96);
}
function frame77(){
stop();
dispatchEvent(new UIEvent(UIEvent.SUBMIT_SCORE_SUCCESS));
}
function frame78(){
skipButton.addEventListener(MouseEvent.MOUSE_UP, onSkipPress);
tryAgainButton.addEventListener(MouseEvent.MOUSE_UP, onTryAgainPress);
}
public function onTryAgainPress(_arg1:MouseEvent):void{
dispatchEvent(new UIEvent(UIEvent.SUBMIT_SCORE_AGAIN));
}
function frame1(){
stop();
}
public function onClosePress(_arg1:MouseEvent):void{
dispatchEvent(new UIEvent(UIEvent.CLOSE));
}
function frame21(){
submitButton.addEventListener(MouseEvent.MOUSE_UP, onSubmitPress);
dispatchEvent(new UIEvent(UIEvent.SUBMIT_SCORE_FORM));
initializeCloseButton();
}
function frame8(){
loginButton.addEventListener(MouseEvent.MOUSE_UP, onLoginPress);
dispatchEvent(new UIEvent(UIEvent.SUBMIT_SCORE_FORM));
initializeCloseButton();
}
function frame96(){
stop();
}
function frame28(){
stop();
}
function frame20(){
stop();
}
public function initializeCloseButton():void{
closeButton.addEventListener(MouseEvent.MOUSE_UP, onClosePress);
}
public function onLoginPress(_arg1:MouseEvent):void{
dispatchEvent(new LoginEvent(LoginEvent.OPEN_LOGIN));
}
function frame37(){
stop();
dispatchEvent(new UIEvent(UIEvent.SEND_SCORE));
}
public function onSubmitPress(_arg1:MouseEvent):void{
dispatchEvent(new UIEvent(UIEvent.SUBMIT_SCORE));
}
public function onSkipPress(_arg1:MouseEvent):void{
dispatchEvent(new UIEvent(UIEvent.CLOSE));
}
}
}//package assets.pages
Section 7
//TitleUI (assets.pages.TitleUI)
package assets.pages {
import flash.display.*;
public dynamic class TitleUI extends MovieClip {
public var sponsor:MovieClip;
public function TitleUI(){
addFrameScript(0, frame1, 45, frame46);
}
function frame1(){
stop();
}
function frame46(){
stop();
}
}
}//package assets.pages
Section 8
//CameraLeftUI (assets.CameraLeftUI)
package assets {
import flash.display.*;
public dynamic class CameraLeftUI extends MovieClip {
}
}//package assets
Section 9
//CameraRightUI (assets.CameraRightUI)
package assets {
import flash.display.*;
public dynamic class CameraRightUI extends MovieClip {
}
}//package assets
Section 10
//DoorDoubleFutureExitUI (assets.DoorDoubleFutureExitUI)
package assets {
import flash.display.*;
public dynamic class DoorDoubleFutureExitUI extends MovieClip {
}
}//package assets
Section 11
//DoorDoubleFutureUI (assets.DoorDoubleFutureUI)
package assets {
import flash.display.*;
public dynamic class DoorDoubleFutureUI extends MovieClip {
}
}//package assets
Section 12
//DoorDoubleSteelExitUI (assets.DoorDoubleSteelExitUI)
package assets {
import flash.display.*;
public dynamic class DoorDoubleSteelExitUI extends MovieClip {
}
}//package assets
Section 13
//DoorDoubleSteelUI (assets.DoorDoubleSteelUI)
package assets {
import flash.display.*;
public dynamic class DoorDoubleSteelUI extends MovieClip {
}
}//package assets
Section 14
//DoorSingleSteelExitUI (assets.DoorSingleSteelExitUI)
package assets {
import flash.display.*;
public dynamic class DoorSingleSteelExitUI extends MovieClip {
}
}//package assets
Section 15
//DoorSingleSteelUI (assets.DoorSingleSteelUI)
package assets {
import flash.display.*;
public dynamic class DoorSingleSteelUI extends MovieClip {
}
}//package assets
Section 16
//HeroUI (assets.HeroUI)
package assets {
import flash.display.*;
public dynamic class HeroUI extends MovieClip {
public function HeroUI(){
addFrameScript(23, frame24, 40, frame41, 58, frame59, 69, frame70, 79, frame80, 89, frame90, 96, frame97, 108, frame109);
}
function frame70(){
stop();
}
function frame80(){
gotoAndPlay("idle");
}
function frame90(){
stop();
}
function frame97(){
stop();
}
function frame109(){
stop();
}
function frame24(){
gotoAndPlay("idle");
}
function frame41(){
gotoAndPlay("crouch");
}
function frame59(){
gotoAndPlay("walk");
}
}
}//package assets
Section 17
//HudItemBaseUI (assets.HudItemBaseUI)
package assets {
import flash.display.*;
public dynamic class HudItemBaseUI extends MovieClip {
}
}//package assets
Section 18
//HudItemUI (assets.HudItemUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class HudItemUI extends MovieClip {
public var locked:MovieClip;
public var hover:MovieClip;
public var titleText:TextField;
}
}//package assets
Section 19
//HudStartUI (assets.HudStartUI)
package assets {
import flash.display.*;
public dynamic class HudStartUI extends MovieClip {
public var btnStart:SimpleButton;
public var buttonContainer:MovieClip;
}
}//package assets
Section 20
//HudUI (assets.HudUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class HudUI extends MovieClip {
public var top:MovieClip;
public var btnMarvel:SimpleButton;
public var btnCredits:SimpleButton;
public var scoretext:TextField;
public var btnXmen:SimpleButton;
public var soundControls:MovieClip;
}
}//package assets
Section 21
//HudUIButtons (assets.HudUIButtons)
package assets {
import flash.display.*;
public dynamic class HudUIButtons extends MovieClip {
public var ButtonScores:MovieClip;
public var BaseShare:MovieClip;
public var BaseScores:MovieClip;
public var ButtonShare:MovieClip;
public var ButtonHelp:MovieClip;
public var ButtonMore:MovieClip;
public var BaseHelp:MovieClip;
public var InGame:MovieClip;
public var BaseMore:MovieClip;
}
}//package assets
Section 22
//HumanUI (assets.HumanUI)
package assets {
import flash.display.*;
public dynamic class HumanUI extends MovieClip {
}
}//package assets
Section 23
//KeypadFutureUI (assets.KeypadFutureUI)
package assets {
import flash.display.*;
public dynamic class KeypadFutureUI extends MovieClip {
}
}//package assets
Section 24
//KeypadUI (assets.KeypadUI)
package assets {
import flash.display.*;
public dynamic class KeypadUI extends MovieClip {
}
}//package assets
Section 25
//LaserBigUI (assets.LaserBigUI)
package assets {
import flash.display.*;
public dynamic class LaserBigUI extends MovieClip {
}
}//package assets
Section 26
//LaserFutureUI (assets.LaserFutureUI)
package assets {
import flash.display.*;
public dynamic class LaserFutureUI extends MovieClip {
}
}//package assets
Section 27
//LevelEndCompleteUI (assets.LevelEndCompleteUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class LevelEndCompleteUI extends MovieClip {
public var medalsEarned:MovieClip;
public var textBonusPoints:TextField;
public var textScore:TextField;
public var textTime:TextField;
public var btnPlay:SimpleButton;
public var textAlarms:TextField;
public function LevelEndCompleteUI(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package assets
Section 28
//LevelEndFailedUI (assets.LevelEndFailedUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class LevelEndFailedUI extends MovieClip {
public var textScore:TextField;
public var btnPlay:SimpleButton;
public function LevelEndFailedUI(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package assets
Section 29
//LevelEndGameCompleteUI (assets.LevelEndGameCompleteUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class LevelEndGameCompleteUI extends MovieClip {
public var medalsEarned:MovieClip;
public var textGameTime:TextField;
public var textBonusPoints:TextField;
public var textScore:TextField;
public var textTime:TextField;
public var textAlarms:TextField;
public function LevelEndGameCompleteUI(){
addFrameScript(5, frame6);
}
function frame6(){
stop();
}
}
}//package assets
Section 30
//MarvelLoginUI (assets.MarvelLoginUI)
package assets {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import events.*;
import flash.media.*;
import flash.filters.*;
import flash.system.*;
import flash.net.*;
import flash.geom.*;
import flash.text.*;
import flash.errors.*;
import flash.ui.*;
import flash.external.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.printing.*;
import flash.xml.*;
public dynamic class MarvelLoginUI extends MovieClip {
public var tryAgainButton:MovieClip;
public var loginButton:MovieClip;
public var skipButton:MovieClip;
public var nameEntry:MovieClip;
public var registerButton:MovieClip;
public var passEntry:MovieClip;
public var errorMessage:TextField;
public function MarvelLoginUI(){
addFrameScript(0, frame1, 1, frame2, 15, frame16, 23, frame24, 53, frame54, 54, frame55, 63, frame64);
}
function frame64(){
stop();
}
public function init():void{
nameEntry.input.tabIndex = 0;
passEntry.input.tabIndex = 1;
passEntry.input.displayAsPassword = true;
loginButton.button.addEventListener(MouseEvent.MOUSE_UP, onLoginPress);
skipButton.button.addEventListener(MouseEvent.MOUSE_UP, onSkipPress);
registerButton.button.addEventListener(MouseEvent.MOUSE_UP, onRegisterPress);
dispatchEvent(new LoginEvent(LoginEvent.INITIALIZE));
}
public function onSuccess():void{
dispatchEvent(new LoginEvent(LoginEvent.LOGIN_SUCCESS));
}
public function onTryAgainPress(_arg1:MouseEvent):void{
dispatchEvent(new LoginEvent(LoginEvent.TRY_AGAIN));
}
public function onError():void{
dispatchEvent(new LoginEvent(LoginEvent.LOGIN_ERROR));
}
function frame1(){
}
function frame24(){
stop();
}
function frame2(){
init();
}
function frame16(){
stop();
}
public function onLoginPress(_arg1:MouseEvent):void{
var _local2:Object;
var _local3:Boolean;
_local2 = new Object();
_local2.username = nameEntry.input.text;
_local2.password = passEntry.input.text;
_local3 = true;
if (_local2.username.length == 0){
_local3 = false;
nameEntry.gotoAndPlay("error");
};
if (_local2.password.length == 0){
_local3 = false;
passEntry.gotoAndPlay("error");
};
if (_local3 == true){
dispatchEvent(new LoginEvent(LoginEvent.LOGIN, _local2));
};
}
public function onRegisterPress(_arg1:MouseEvent):void{
dispatchEvent(new LoginEvent(LoginEvent.REGISTER));
}
function frame54(){
stop();
onSuccess();
}
function frame55(){
skipButton.button.addEventListener(MouseEvent.MOUSE_UP, onSkipPress);
tryAgainButton.button.addEventListener(MouseEvent.MOUSE_UP, onTryAgainPress);
onError();
}
public function onSkipPress(_arg1:MouseEvent):void{
dispatchEvent(new LoginEvent(LoginEvent.SKIP));
}
}
}//package assets
Section 31
//MedalSmall (assets.MedalSmall)
package assets {
import flash.display.*;
public dynamic class MedalSmall extends MovieClip {
public var toolTip:MovieClip;
public var hit:MovieClip;
}
}//package assets
Section 32
//MessageBoxUI (assets.MessageBoxUI)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class MessageBoxUI extends MovieClip {
public var description:TextField;
}
}//package assets
Section 33
//MiniGameIntro (assets.MiniGameIntro)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class MiniGameIntro extends MovieClip {
public var btnClose:SimpleButton;
public var infoText:TextField;
}
}//package assets
Section 34
//MiniGameIntroScreenBackground (assets.MiniGameIntroScreenBackground)
package assets {
import flash.display.*;
public dynamic class MiniGameIntroScreenBackground extends MovieClip {
}
}//package assets
Section 35
//MiniGameKeyboard (assets.MiniGameKeyboard)
package assets {
import flash.display.*;
public dynamic class MiniGameKeyboard extends MovieClip {
public var btnClose:SimpleButton;
public var btnClear:SimpleButton;
public var btnSubmit:SimpleButton;
public var key2:MovieClip;
public var key4:MovieClip;
public var key6:MovieClip;
public var key1:MovieClip;
public var key9:MovieClip;
public var key3:MovieClip;
public var key5:MovieClip;
public var key7:MovieClip;
public var key8:MovieClip;
public var digits:MovieClip;
public var status:MovieClip;
}
}//package assets
Section 36
//MiniGameTerminal (assets.MiniGameTerminal)
package assets {
import flash.display.*;
import flash.text.*;
public dynamic class MiniGameTerminal extends MovieClip {
public var btnClose:SimpleButton;
public var infoText:TextField;
}
}//package assets
Section 37
//MiniGameTerminalScreen (assets.MiniGameTerminalScreen)
package assets {
import flash.display.*;
public dynamic class MiniGameTerminalScreen extends MovieClip {
}
}//package assets
Section 38
//MiniGameWires (assets.MiniGameWires)
package assets {
import flash.display.*;
public dynamic class MiniGameWires extends MovieClip {
public var btnClose:SimpleButton;
public var btnGreen:SimpleButton;
public var greenbar:MovieClip;
public var claw:MovieClip;
public var wires:MovieClip;
public var btnRed:SimpleButton;
public var btnBlue:SimpleButton;
}
}//package assets
Section 39
//Mutant1 (assets.Mutant1)
package assets {
import flash.display.*;
public dynamic class Mutant1 extends MovieClip {
}
}//package assets
Section 40
//Mutant2 (assets.Mutant2)
package assets {
import flash.display.*;
public dynamic class Mutant2 extends MovieClip {
}
}//package assets
Section 41
//Mutant3 (assets.Mutant3)
package assets {
import flash.display.*;
public dynamic class Mutant3 extends MovieClip {
}
}//package assets
Section 42
//Mutant4 (assets.Mutant4)
package assets {
import flash.display.*;
public dynamic class Mutant4 extends MovieClip {
}
}//package assets
Section 43
//Preloader (assets.Preloader)
package assets {
import flash.display.*;
public dynamic class Preloader extends MovieClip {
public var bar:MovieClip;
}
}//package assets
Section 44
//Robot2UI (assets.Robot2UI)
package assets {
import flash.display.*;
public dynamic class Robot2UI extends MovieClip {
}
}//package assets
Section 45
//RobotUI (assets.RobotUI)
package assets {
import flash.display.*;
public dynamic class RobotUI extends MovieClip {
}
}//package assets
Section 46
//Scanline (assets.Scanline)
package assets {
import flash.display.*;
public dynamic class Scanline extends BitmapData {
public function Scanline(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package assets
Section 47
//SensorBottomUI (assets.SensorBottomUI)
package assets {
import flash.display.*;
public dynamic class SensorBottomUI extends MovieClip {
}
}//package assets
Section 48
//SensorTopUI (assets.SensorTopUI)
package assets {
import flash.display.*;
public dynamic class SensorTopUI extends MovieClip {
}
}//package assets
Section 49
//sfx_access_denied_01 (assets.sfx_access_denied_01)
package assets {
import flash.media.*;
public dynamic class sfx_access_denied_01 extends Sound {
}
}//package assets
Section 50
//sfx_aerial_01 (assets.sfx_aerial_01)
package assets {
import flash.media.*;
public dynamic class sfx_aerial_01 extends Sound {
}
}//package assets
Section 51
//sfx_auto_turret_scan_01 (assets.sfx_auto_turret_scan_01)
package assets {
import flash.media.*;
public dynamic class sfx_auto_turret_scan_01 extends Sound {
}
}//package assets
Section 52
//sfx_charge_kill_stab_01 (assets.sfx_charge_kill_stab_01)
package assets {
import flash.media.*;
public dynamic class sfx_charge_kill_stab_01 extends Sound {
}
}//package assets
Section 53
//sfx_console_entry_03 (assets.sfx_console_entry_03)
package assets {
import flash.media.*;
public dynamic class sfx_console_entry_03 extends Sound {
}
}//package assets
Section 54
//sfx_cursor (assets.sfx_cursor)
package assets {
import flash.media.*;
public dynamic class sfx_cursor extends Sound {
}
}//package assets
Section 55
//sfx_dry_fire_02 (assets.sfx_dry_fire_02)
package assets {
import flash.media.*;
public dynamic class sfx_dry_fire_02 extends Sound {
}
}//package assets
Section 56
//sfx_machete_heavy_01 (assets.sfx_machete_heavy_01)
package assets {
import flash.media.*;
public dynamic class sfx_machete_heavy_01 extends Sound {
}
}//package assets
Section 57
//sfx_machete_normal_02 (assets.sfx_machete_normal_02)
package assets {
import flash.media.*;
public dynamic class sfx_machete_normal_02 extends Sound {
}
}//package assets
Section 58
//sfx_machete_normal_04 (assets.sfx_machete_normal_04)
package assets {
import flash.media.*;
public dynamic class sfx_machete_normal_04 extends Sound {
}
}//package assets
Section 59
//sfx_machete_normal_08 (assets.sfx_machete_normal_08)
package assets {
import flash.media.*;
public dynamic class sfx_machete_normal_08 extends Sound {
}
}//package assets
Section 60
//sfx_mech_operate_17 (assets.sfx_mech_operate_17)
package assets {
import flash.media.*;
public dynamic class sfx_mech_operate_17 extends Sound {
}
}//package assets
Section 61
//sfx_MRD_intro_main (assets.sfx_MRD_intro_main)
package assets {
import flash.media.*;
public dynamic class sfx_MRD_intro_main extends Sound {
}
}//package assets
Section 62
//sfx_MRD_level_loop_2 (assets.sfx_MRD_level_loop_2)
package assets {
import flash.media.*;
public dynamic class sfx_MRD_level_loop_2 extends Sound {
}
}//package assets
Section 63
//sfx_MRD_level_loop_3 (assets.sfx_MRD_level_loop_3)
package assets {
import flash.media.*;
public dynamic class sfx_MRD_level_loop_3 extends Sound {
}
}//package assets
Section 64
//sfx_MRD_level_loop_4 (assets.sfx_MRD_level_loop_4)
package assets {
import flash.media.*;
public dynamic class sfx_MRD_level_loop_4 extends Sound {
}
}//package assets
Section 65
//sfx_SOUNDDOGS_AL_147468 (assets.sfx_SOUNDDOGS_AL_147468)
package assets {
import flash.media.*;
public dynamic class sfx_SOUNDDOGS_AL_147468 extends Sound {
}
}//package assets
Section 66
//sfx_staff_12 (assets.sfx_staff_12)
package assets {
import flash.media.*;
public dynamic class sfx_staff_12 extends Sound {
}
}//package assets
Section 67
//sfx_throw_whoosh_01 (assets.sfx_throw_whoosh_01)
package assets {
import flash.media.*;
public dynamic class sfx_throw_whoosh_01 extends Sound {
}
}//package assets
Section 68
//sfx_throw_whoosh_03 (assets.sfx_throw_whoosh_03)
package assets {
import flash.media.*;
public dynamic class sfx_throw_whoosh_03 extends Sound {
}
}//package assets
Section 69
//sfx_thud (assets.sfx_thud)
package assets {
import flash.media.*;
public dynamic class sfx_thud extends Sound {
}
}//package assets
Section 70
//sfx_thud2 (assets.sfx_thud2)
package assets {
import flash.media.*;
public dynamic class sfx_thud2 extends Sound {
}
}//package assets
Section 71
//sfx_tram_crash_01 (assets.sfx_tram_crash_01)
package assets {
import flash.media.*;
public dynamic class sfx_tram_crash_01 extends Sound {
}
}//package assets
Section 72
//sfx_turbolift_doorclose_01 (assets.sfx_turbolift_doorclose_01)
package assets {
import flash.media.*;
public dynamic class sfx_turbolift_doorclose_01 extends Sound {
}
}//package assets
Section 73
//sfx_wall_climb_02 (assets.sfx_wall_climb_02)
package assets {
import flash.media.*;
public dynamic class sfx_wall_climb_02 extends Sound {
}
}//package assets
Section 74
//sfx_wire_slice_01 (assets.sfx_wire_slice_01)
package assets {
import flash.media.*;
public dynamic class sfx_wire_slice_01 extends Sound {
}
}//package assets
Section 75
//SwitchFutureUI (assets.SwitchFutureUI)
package assets {
import flash.display.*;
public dynamic class SwitchFutureUI extends MovieClip {
}
}//package assets
Section 76
//SwitchUI (assets.SwitchUI)
package assets {
import flash.display.*;
public dynamic class SwitchUI extends MovieClip {
}
}//package assets
Section 77
//TerminalFutureUI (assets.TerminalFutureUI)
package assets {
import flash.display.*;
public dynamic class TerminalFutureUI extends MovieClip {
}
}//package assets
Section 78
//TerminalUI (assets.TerminalUI)
package assets {
import flash.display.*;
public dynamic class TerminalUI extends MovieClip {
}
}//package assets
Section 79
//tilesBackground (assets.tilesBackground)
package assets {
import flash.display.*;
public dynamic class tilesBackground extends BitmapData {
public function tilesBackground(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package assets
Section 80
//tilesForeground (assets.tilesForeground)
package assets {
import flash.display.*;
public dynamic class tilesForeground extends BitmapData {
public function tilesForeground(_arg1:Number, _arg2:Number){
super(_arg1, _arg2);
}
}
}//package assets
Section 81
//VideoEndSequence (assets.VideoEndSequence)
package assets {
import flash.display.*;
public dynamic class VideoEndSequence extends MovieClip {
public function VideoEndSequence(){
addFrameScript(332, frame333);
}
function frame333(){
stop();
}
}
}//package assets
Section 82
//VideoIntroSequence (assets.VideoIntroSequence)
package assets {
import flash.display.*;
public dynamic class VideoIntroSequence extends MovieClip {
public function VideoIntroSequence(){
addFrameScript(470, frame471);
}
function frame471(){
stop();
}
}
}//package assets
Section 83
//VideoUnlockSequence (assets.VideoUnlockSequence)
package assets {
import flash.display.*;
public dynamic class VideoUnlockSequence extends MovieClip {
public function VideoUnlockSequence(){
addFrameScript(33, frame34);
}
function frame34(){
stop();
}
}
}//package assets
Section 84
//WiresUI (assets.WiresUI)
package assets {
import flash.display.*;
public dynamic class WiresUI extends MovieClip {
}
}//package assets
Section 85
//Clawcopy_80 (assets_fla.Clawcopy_80)
package assets_fla {
import flash.display.*;
public dynamic class Clawcopy_80 extends MovieClip {
public function Clawcopy_80(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package assets_fla
Section 86
//highscoresNavArrow_2 (assets_fla.highscoresNavArrow_2)
package assets_fla {
import flash.display.*;
public dynamic class highscoresNavArrow_2 extends MovieClip {
public function highscoresNavArrow_2(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame1(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 87
//HudUI_19 (assets_fla.HudUI_19)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUI_19 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 88
//HudUi_21 (assets_fla.HudUi_21)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUi_21 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 89
//HudUi_23 (assets_fla.HudUi_23)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUi_23 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 90
//HudUi_25 (assets_fla.HudUi_25)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUi_25 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 91
//HudUI_27 (assets_fla.HudUI_27)
package assets_fla {
import flash.display.*;
public dynamic class HudUI_27 extends MovieClip {
public var ButtonMain:MovieClip;
public var ButtonPause:MovieClip;
}
}//package assets_fla
Section 92
//HudUI_28 (assets_fla.HudUI_28)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUI_28 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 93
//HudUI_30 (assets_fla.HudUI_30)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class HudUI_30 extends MovieClip {
public var label:TextField;
public var hover:MovieClip;
}
}//package assets_fla
Section 94
//Key_68 (assets_fla.Key_68)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Key_68 extends MovieClip {
public var digit:TextField;
public var sheen:MovieClip;
public var base:MovieClip;
}
}//package assets_fla
Section 95
//loginButton_150 (assets_fla.loginButton_150)
package assets_fla {
import flash.display.*;
public dynamic class loginButton_150 extends MovieClip {
public var button:NavButtonUI;
public function loginButton_150(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame1(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 96
//loginEntry_155 (assets_fla.loginEntry_155)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class loginEntry_155 extends MovieClip {
public var input:TextField;
public function loginEntry_155(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package assets_fla
Section 97
//medalsOverlay_116 (assets_fla.medalsOverlay_116)
package assets_fla {
import flash.display.*;
public dynamic class medalsOverlay_116 extends MovieClip {
public var scratch:MovieClip;
public var toolTip:MovieClip;
public var hit:MovieClip;
}
}//package assets_fla
Section 98
//registerButton_183 (assets_fla.registerButton_183)
package assets_fla {
import flash.display.*;
public dynamic class registerButton_183 extends MovieClip {
public var button:NavButtonUI;
public function registerButton_183(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame1(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 99
//scanLines_52 (assets_fla.scanLines_52)
package assets_fla {
import flash.display.*;
public dynamic class scanLines_52 extends MovieClip {
public function scanLines_52(){
addFrameScript(0, frame1);
}
function frame1(){
this.mouseEnabled = (this.mouseChildren = false);
}
}
}//package assets_fla
Section 100
//skipButton_163 (assets_fla.skipButton_163)
package assets_fla {
import flash.display.*;
public dynamic class skipButton_163 extends MovieClip {
public var button:NavButtonUI;
public function skipButton_163(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame1(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 101
//SoundControls_135 (assets_fla.SoundControls_135)
package assets_fla {
import flash.display.*;
public dynamic class SoundControls_135 extends MovieClip {
public var soundButton:SimpleButton;
public var musicSlider:MovieClip;
public var musicButton:SimpleButton;
public var soundSlider:MovieClip;
}
}//package assets_fla
Section 102
//soundSlider_136 (assets_fla.soundSlider_136)
package assets_fla {
import flash.display.*;
public dynamic class soundSlider_136 extends MovieClip {
public function soundSlider_136(){
addFrameScript(0, frame1, 7, frame8, 15, frame16);
}
function frame16(){
stop();
}
function frame1(){
stop();
}
function frame8(){
stop();
}
}
}//package assets_fla
Section 103
//submitScoreClose_152 (assets_fla.submitScoreClose_152)
package assets_fla {
import flash.display.*;
public dynamic class submitScoreClose_152 extends MovieClip {
public function submitScoreClose_152(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame1(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 104
//Terminal_71 (assets_fla.Terminal_71)
package assets_fla {
import flash.display.*;
public dynamic class Terminal_71 extends MovieClip {
public function Terminal_71(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package assets_fla
Section 105
//Terminal_72 (assets_fla.Terminal_72)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class Terminal_72 extends MovieClip {
public var digitsText:TextField;
}
}//package assets_fla
Section 106
//tooltip_12 (assets_fla.tooltip_12)
package assets_fla {
import flash.display.*;
import flash.text.*;
public dynamic class tooltip_12 extends MovieClip {
public var descriptionText:TextField;
public var titleText:TextField;
}
}//package assets_fla
Section 107
//tryAgainButton_161 (assets_fla.tryAgainButton_161)
package assets_fla {
import flash.display.*;
public dynamic class tryAgainButton_161 extends MovieClip {
public var button:NavButtonUI;
public function tryAgainButton_161(){
addFrameScript(0, frame1, 9, frame10, 18, frame19, 28, frame29, 38, frame39, 49, frame50);
}
function frame10(){
stop();
}
function frame19(){
stop();
}
function frame29(){
stop();
}
function frame1(){
stop();
}
function frame39(){
stop();
}
function frame50(){
stop();
}
}
}//package assets_fla
Section 108
//Wires_78 (assets_fla.Wires_78)
package assets_fla {
import flash.display.*;
public dynamic class Wires_78 extends MovieClip {
public function Wires_78(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4);
}
function frame3(){
stop();
}
function frame1(){
stop();
}
function frame4(){
stop();
}
function frame2(){
stop();
}
}
}//package assets_fla
Section 109
//NavButton (buttons.NavButton)
package buttons {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class NavButton extends SimpleButton {
private var _display:MovieClip;
private var _frames:Dictionary;
private var _disabled:Boolean;
private var _labels:Array;
private var _pressed:Boolean;
public var releaseFrame:String;
public var pressFrame:String;
public var releaseOutsideFrame:String;
public var overFrame:String;
public var outFrame:String;
public function NavButton():void{
outFrame = "out";
overFrame = "over";
pressFrame = "press";
releaseFrame = "release";
releaseOutsideFrame = "releaseOutside";
_pressed = false;
_disabled = false;
display = (parent as MovieClip);
}
private function navigateToFrame(_arg1:String):void{
if (_arg1 != null){
if (hasFrame(_arg1) == true){
_display.gotoAndPlay(_arg1);
};
};
}
public function get display():MovieClip{
return (_display);
}
public function set display(_arg1:MovieClip):void{
var _local2:int;
var _local3:int;
var _local4:FrameLabel;
if (_arg1 != null){
_display = _arg1;
_labels = _display.currentLabels;
_frames = new Dictionary(true);
_local3 = _labels.length;
_local2 = 0;
while (_local2 < _local3) {
_local4 = _labels[_local2];
_frames[_local4.name] = _local4;
_local2++;
};
enable();
};
}
protected function onButtonReleaseOutside():void{
navigateToFrame(releaseOutsideFrame);
}
protected function onDisable():void{
}
protected function onEnable():void{
}
public function enable():void{
_disabled = false;
_display.mouseEnabled = (_display.mouseChildren = true);
enableInternalEvents();
}
private function hasFrame(_arg1:String):Boolean{
return (!((_frames[_arg1] == null)));
}
protected function onButtonRelease():void{
navigateToFrame(releaseFrame);
}
protected function enableInternalEvents():void{
removeInternalEvents();
addEventListener(MouseEvent.ROLL_OVER, onButtonOver, false, 0, true);
addEventListener(MouseEvent.ROLL_OUT, onButtonOut, false, 0, true);
addEventListener(MouseEvent.MOUSE_DOWN, onButtonDown, false, 0, true);
}
protected function removeInternalEvents():void{
removeEventListener(MouseEvent.ROLL_OVER, onButtonOver);
removeEventListener(MouseEvent.ROLL_OUT, onButtonOut);
removeEventListener(MouseEvent.MOUSE_DOWN, onButtonDown);
}
protected function onButtonOut(_arg1:MouseEvent):void{
if (_pressed == false){
navigateToFrame(outFrame);
};
}
public function get pressed():Boolean{
return (_pressed);
}
public function disable():void{
_disabled = true;
_display.mouseEnabled = (_display.mouseChildren = false);
removeInternalEvents();
}
protected function onButtonOver(_arg1:MouseEvent):void{
if (_pressed == false){
navigateToFrame(overFrame);
};
}
public function set disabled(_arg1:Boolean):void{
if (_arg1 == true){
disable();
} else {
enable();
};
}
protected function onButtonDown(_arg1:MouseEvent):void{
_pressed = true;
navigateToFrame(pressFrame);
stage.addEventListener(MouseEvent.MOUSE_UP, onButtonUp, false, 0, true);
}
protected function onButtonUp(_arg1:MouseEvent):void{
_pressed = false;
var _local2:DisplayObject = (_arg1.target as DisplayObject);
if ((((_local2 == _display)) || (_display.contains(_local2)))){
onButtonRelease();
} else {
onButtonReleaseOutside();
};
if (stage != null){
stage.removeEventListener(MouseEvent.MOUSE_UP, onButtonUp);
};
}
public function get disabled():Boolean{
return (_disabled);
}
}
}//package buttons
Section 110
//AuxFunctions (caurina.transitions.AuxFunctions)
package caurina.transitions {
public class AuxFunctions {
public static function getObjectLength(_arg1:Object):uint{
var _local3:String;
var _local2:uint;
for (_local3 in _arg1) {
_local2++;
};
return (_local2);
}
public static function numberToG(_arg1:Number):Number{
return (((_arg1 & 0xFF00) >> 8));
}
public static function numberToB(_arg1:Number):Number{
return ((_arg1 & 0xFF));
}
public static function numberToR(_arg1:Number):Number{
return (((_arg1 & 0xFF0000) >> 16));
}
public static function concatObjects(... _args):Object{
var _local3:Object;
var _local5:String;
var _local2:Object = {};
var _local4:int;
while (_local4 < _args.length) {
_local3 = _args[_local4];
for (_local5 in _local3) {
if (_local3[_local5] == null){
delete _local2[_local5];
} else {
_local2[_local5] = _local3[_local5];
};
};
_local4++;
};
return (_local2);
}
}
}//package caurina.transitions
Section 111
//Equations (caurina.transitions.Equations)
package caurina.transitions {
public class Equations {
public function Equations(){
trace("Equations is a static class and should not be instantiated.");
}
public static function easeOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
if (_arg1 < (1 / 2.75)){
return (((_arg3 * ((7.5625 * _arg1) * _arg1)) + _arg2));
};
if (_arg1 < (2 / 2.75)){
_arg1 = (_arg1 - (1.5 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.75)) + _arg2));
};
if (_arg1 < (2.5 / 2.75)){
_arg1 = (_arg1 - (2.25 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.9375)) + _arg2));
};
_arg1 = (_arg1 - (2.625 / 2.75));
return (((_arg3 * (((7.5625 * _arg1) * _arg1) + 0.984375)) + _arg2));
}
public static function easeInOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 == 2){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * (0.3 * 1.5)) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
if (_arg1 < 1){
--_arg1;
return (((-0.5 * ((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
};
--_arg1;
return ((((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) * 0.5) + _arg3) + _arg2));
}
public static function easeInOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
public static function easeInOutBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (((easeInBounce((_arg1 * 2), 0, _arg3, _arg4) * 0.5) + _arg2));
};
return ((((easeOutBounce(((_arg1 * 2) - _arg4), 0, _arg3, _arg4) * 0.5) + (_arg3 * 0.5)) + _arg2));
}
public static function easeInOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_local6 + 1) * _arg1) - _local6))) + _arg2));
};
_arg1 = (_arg1 - 2);
_local6 = (_local6 * 1.525);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 2)) + _arg2));
}
public static function easeOutInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCubic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCubic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeNone(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((_arg3 * _arg1) / _arg4) + _arg2));
}
public static function easeOutBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * (((_local6 + 1) * _arg1) + _local6)) + 1)) + _arg2));
}
public static function easeInOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) / 2) * (Math.cos(((Math.PI * _arg1) / _arg4)) - 1)) + _arg2));
}
public static function easeInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.overshoot)))) ? 1.70158 : _arg5.overshoot;
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * (((_local6 + 1) * _arg1) - _local6)) + _arg2));
}
public static function easeInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeOutInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuint((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuint(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBounce((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBounce(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function init():void{
Tweener.registerTransition("easenone", easeNone);
Tweener.registerTransition("linear", easeNone);
Tweener.registerTransition("easeinquad", easeInQuad);
Tweener.registerTransition("easeoutquad", easeOutQuad);
Tweener.registerTransition("easeinoutquad", easeInOutQuad);
Tweener.registerTransition("easeoutinquad", easeOutInQuad);
Tweener.registerTransition("easeincubic", easeInCubic);
Tweener.registerTransition("easeoutcubic", easeOutCubic);
Tweener.registerTransition("easeinoutcubic", easeInOutCubic);
Tweener.registerTransition("easeoutincubic", easeOutInCubic);
Tweener.registerTransition("easeinquart", easeInQuart);
Tweener.registerTransition("easeoutquart", easeOutQuart);
Tweener.registerTransition("easeinoutquart", easeInOutQuart);
Tweener.registerTransition("easeoutinquart", easeOutInQuart);
Tweener.registerTransition("easeinquint", easeInQuint);
Tweener.registerTransition("easeoutquint", easeOutQuint);
Tweener.registerTransition("easeinoutquint", easeInOutQuint);
Tweener.registerTransition("easeoutinquint", easeOutInQuint);
Tweener.registerTransition("easeinsine", easeInSine);
Tweener.registerTransition("easeoutsine", easeOutSine);
Tweener.registerTransition("easeinoutsine", easeInOutSine);
Tweener.registerTransition("easeoutinsine", easeOutInSine);
Tweener.registerTransition("easeincirc", easeInCirc);
Tweener.registerTransition("easeoutcirc", easeOutCirc);
Tweener.registerTransition("easeinoutcirc", easeInOutCirc);
Tweener.registerTransition("easeoutincirc", easeOutInCirc);
Tweener.registerTransition("easeinexpo", easeInExpo);
Tweener.registerTransition("easeoutexpo", easeOutExpo);
Tweener.registerTransition("easeinoutexpo", easeInOutExpo);
Tweener.registerTransition("easeoutinexpo", easeOutInExpo);
Tweener.registerTransition("easeinelastic", easeInElastic);
Tweener.registerTransition("easeoutelastic", easeOutElastic);
Tweener.registerTransition("easeinoutelastic", easeInOutElastic);
Tweener.registerTransition("easeoutinelastic", easeOutInElastic);
Tweener.registerTransition("easeinback", easeInBack);
Tweener.registerTransition("easeoutback", easeOutBack);
Tweener.registerTransition("easeinoutback", easeInOutBack);
Tweener.registerTransition("easeoutinback", easeOutInBack);
Tweener.registerTransition("easeinbounce", easeInBounce);
Tweener.registerTransition("easeoutbounce", easeOutBounce);
Tweener.registerTransition("easeinoutbounce", easeInOutBounce);
Tweener.registerTransition("easeoutinbounce", easeOutInBounce);
}
public static function easeOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==_arg4) ? (_arg2 + _arg3) : (((_arg3 * 1.001) * (-(Math.pow(2, ((-10 * _arg1) / _arg4))) + 1)) + _arg2));
}
public static function easeOutInBack(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutBack((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInBack(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg1)==0) ? _arg2 : (((_arg3 * Math.pow(2, (10 * ((_arg1 / _arg4) - 1)))) + _arg2) - (_arg3 * 0.001)));
}
public static function easeInCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((_arg3 * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
}
public static function easeInOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((-(_arg3) / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (Math.sqrt((1 - (_arg1 * _arg1))) + 1)) + _arg2));
}
public static function easeInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInBounce(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 - easeOutBounce((_arg4 - _arg1), 0, _arg3, _arg4)) + _arg2));
}
public static function easeOutInExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutExpo((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInExpo(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((-(_arg3) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 1)) + _arg2));
}
public static function easeInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return ((((-(_arg3) * Math.cos(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg3) + _arg2));
}
public static function easeInOutQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((-(_arg3) / 2) * ((((_arg1 * _arg1) * _arg1) * _arg1) - 2)) + _arg2));
}
public static function easeOutQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeOutInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutElastic((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInElastic(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
--_arg1;
return ((-(((_local8 * Math.pow(2, (10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6)))) + _arg2));
}
public static function easeOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((_arg1 * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2));
}
public static function easeOutInQuad(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuad((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuad(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
return (((_arg3 * Math.sin(((_arg1 / _arg4) * (Math.PI / 2)))) + _arg2));
}
public static function easeInOutCubic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((_arg1 * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInOutQuint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2));
};
_arg1 = (_arg1 - 2);
return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2));
}
public static function easeInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = (_arg1 / _arg4);
return (((-(_arg3) * (Math.sqrt((1 - (_arg1 * _arg1))) - 1)) + _arg2));
}
public static function easeOutInSine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutSine((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInSine(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeInOutExpo(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 == 0){
return (_arg2);
};
if (_arg1 == _arg4){
return ((_arg2 + _arg3));
};
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * Math.pow(2, (10 * (_arg1 - 1)))) + _arg2) - (_arg3 * 0.0005)));
};
--_arg1;
return (((((_arg3 / 2) * 1.0005) * (-(Math.pow(2, (-10 * _arg1))) + 2)) + _arg2));
}
public static function easeOutElastic(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
var _local7:Number;
if (_arg1 == 0){
return (_arg2);
};
_arg1 = (_arg1 / _arg4);
if (_arg1 == 1){
return ((_arg2 + _arg3));
};
var _local6:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.period)))) ? (_arg4 * 0.3) : _arg5.period;
var _local8:Number = (((!(Boolean(_arg5))) || (isNaN(_arg5.amplitude)))) ? 0 : _arg5.amplitude;
if (((!(Boolean(_local8))) || ((_local8 < Math.abs(_arg3))))){
_local8 = _arg3;
_local7 = (_local6 / 4);
} else {
_local7 = ((_local6 / (2 * Math.PI)) * Math.asin((_arg3 / _local8)));
};
return (((((_local8 * Math.pow(2, (-10 * _arg1))) * Math.sin(((((_arg1 * _arg4) - _local7) * (2 * Math.PI)) / _local6))) + _arg3) + _arg2));
}
public static function easeOutCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
_arg1 = ((_arg1 / _arg4) - 1);
return (((_arg3 * Math.sqrt((1 - (_arg1 * _arg1)))) + _arg2));
}
public static function easeOutInQuart(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutQuart((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInQuart(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
public static function easeOutInCirc(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null):Number{
if (_arg1 < (_arg4 / 2)){
return (easeOutCirc((_arg1 * 2), _arg2, (_arg3 / 2), _arg4, _arg5));
};
return (easeInCirc(((_arg1 * 2) - _arg4), (_arg2 + (_arg3 / 2)), (_arg3 / 2), _arg4, _arg5));
}
}
}//package caurina.transitions
Section 112
//PropertyInfoObj (caurina.transitions.PropertyInfoObj)
package caurina.transitions {
public class PropertyInfoObj {
public var modifierParameters:Array;
public var isSpecialProperty:Boolean;
public var valueComplete:Number;
public var modifierFunction:Function;
public var extra:Object;
public var valueStart:Number;
public var hasModifier:Boolean;
public var arrayIndex:Number;
public var originalValueComplete:Object;
public function PropertyInfoObj(_arg1:Number, _arg2:Number, _arg3:Object, _arg4:Number, _arg5:Object, _arg6:Boolean, _arg7:Function, _arg8:Array){
valueStart = _arg1;
valueComplete = _arg2;
originalValueComplete = _arg3;
arrayIndex = _arg4;
extra = _arg5;
isSpecialProperty = _arg6;
hasModifier = Boolean(_arg7);
modifierFunction = _arg7;
modifierParameters = _arg8;
}
public function toString():String{
var _local1 = "\n[PropertyInfoObj ";
_local1 = (_local1 + ("valueStart:" + String(valueStart)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("valueComplete:" + String(valueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("originalValueComplete:" + String(originalValueComplete)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("arrayIndex:" + String(arrayIndex)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("extra:" + String(extra)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("isSpecialProperty:" + String(isSpecialProperty)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("hasModifier:" + String(hasModifier)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierFunction:" + String(modifierFunction)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("modifierParameters:" + String(modifierParameters)));
_local1 = (_local1 + "]\n");
return (_local1);
}
public function clone():PropertyInfoObj{
var _local1:PropertyInfoObj = new PropertyInfoObj(valueStart, valueComplete, originalValueComplete, arrayIndex, extra, isSpecialProperty, modifierFunction, modifierParameters);
return (_local1);
}
}
}//package caurina.transitions
Section 113
//SpecialProperty (caurina.transitions.SpecialProperty)
package caurina.transitions {
public class SpecialProperty {
public var parameters:Array;
public var getValue:Function;
public var preProcess:Function;
public var setValue:Function;
public function SpecialProperty(_arg1:Function, _arg2:Function, _arg3:Array=null, _arg4:Function=null){
getValue = _arg1;
setValue = _arg2;
parameters = _arg3;
preProcess = _arg4;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialProperty ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("setValue:" + String(setValue)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("preProcess:" + String(preProcess)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 114
//SpecialPropertyModifier (caurina.transitions.SpecialPropertyModifier)
package caurina.transitions {
public class SpecialPropertyModifier {
public var getValue:Function;
public var modifyValues:Function;
public function SpecialPropertyModifier(_arg1:Function, _arg2:Function){
modifyValues = _arg1;
getValue = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertyModifier ");
_local1 = (_local1 + ("modifyValues:" + String(modifyValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("getValue:" + String(getValue)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 115
//SpecialPropertySplitter (caurina.transitions.SpecialPropertySplitter)
package caurina.transitions {
public class SpecialPropertySplitter {
public var parameters:Array;
public var splitValues:Function;
public function SpecialPropertySplitter(_arg1:Function, _arg2:Array){
splitValues = _arg1;
parameters = _arg2;
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + "[SpecialPropertySplitter ");
_local1 = (_local1 + ("splitValues:" + String(splitValues)));
_local1 = (_local1 + ", ");
_local1 = (_local1 + ("parameters:" + String(parameters)));
_local1 = (_local1 + "]");
return (_local1);
}
}
}//package caurina.transitions
Section 116
//Tweener (caurina.transitions.Tweener)
package caurina.transitions {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Tweener {
private static var _timeScale:Number = 1;
private static var _currentTimeFrame:Number;
private static var _specialPropertySplitterList:Object;
private static var _engineExists:Boolean = false;
private static var _specialPropertyModifierList:Object;
private static var _currentTime:Number;
private static var _tweenList:Array;
private static var _specialPropertyList:Object;
private static var _transitionList:Object;
private static var _inited:Boolean = false;
private static var __tweener_controller__:MovieClip;
public function Tweener(){
trace("Tweener is a static class and should not be instantiated.");
}
public static function registerSpecialPropertyModifier(_arg1:String, _arg2:Function, _arg3:Function):void{
if (!_inited){
init();
};
var _local4:SpecialPropertyModifier = new SpecialPropertyModifier(_arg2, _arg3);
_specialPropertyModifierList[_arg1] = _local4;
}
public static function registerSpecialProperty(_arg1:String, _arg2:Function, _arg3:Function, _arg4:Array=null, _arg5:Function=null):void{
if (!_inited){
init();
};
var _local6:SpecialProperty = new SpecialProperty(_arg2, _arg3, _arg4, _arg5);
_specialPropertyList[_arg1] = _local6;
}
public static function init(... _args):void{
_inited = true;
_transitionList = new Object();
Equations.init();
_specialPropertyList = new Object();
_specialPropertyModifierList = new Object();
_specialPropertySplitterList = new Object();
}
private static function updateTweens():Boolean{
var _local1:int;
if (_tweenList.length == 0){
return (false);
};
_local1 = 0;
while (_local1 < _tweenList.length) {
if ((((_tweenList[_local1] == undefined)) || (!(_tweenList[_local1].isPaused)))){
if (!updateTweenByIndex(_local1)){
removeTweenByIndex(_local1);
};
if (_tweenList[_local1] == null){
removeTweenByIndex(_local1, true);
_local1--;
};
};
_local1++;
};
return (true);
}
public static function addCaller(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Array;
var _local8:Function;
var _local9:TweenListObj;
var _local10:Number;
var _local11:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local4 = _arg1.concat();
} else {
_local4 = [_arg1];
};
var _local5:Object = _arg2;
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local6:Number = (isNaN(_local5.time)) ? 0 : _local5.time;
var _local7:Number = (isNaN(_local5.delay)) ? 0 : _local5.delay;
if (typeof(_local5.transition) == "string"){
_local11 = _local5.transition.toLowerCase();
_local8 = _transitionList[_local11];
} else {
_local8 = _local5.transition;
};
if (!Boolean(_local8)){
_local8 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local4.length) {
if (_local5.useFrames == true){
_local9 = new TweenListObj(_local4[_local3], (_currentTimeFrame + (_local7 / _timeScale)), (_currentTimeFrame + ((_local7 + _local6) / _timeScale)), true, _local8, _local5.transitionParams);
} else {
_local9 = new TweenListObj(_local4[_local3], (_currentTime + ((_local7 * 1000) / _timeScale)), (_currentTime + (((_local7 * 1000) + (_local6 * 1000)) / _timeScale)), false, _local8, _local5.transitionParams);
};
_local9.properties = null;
_local9.onStart = _local5.onStart;
_local9.onUpdate = _local5.onUpdate;
_local9.onComplete = _local5.onComplete;
_local9.onOverwrite = _local5.onOverwrite;
_local9.onStartParams = _local5.onStartParams;
_local9.onUpdateParams = _local5.onUpdateParams;
_local9.onCompleteParams = _local5.onCompleteParams;
_local9.onOverwriteParams = _local5.onOverwriteParams;
_local9.onStartScope = _local5.onStartScope;
_local9.onUpdateScope = _local5.onUpdateScope;
_local9.onCompleteScope = _local5.onCompleteScope;
_local9.onOverwriteScope = _local5.onOverwriteScope;
_local9.onErrorScope = _local5.onErrorScope;
_local9.isCaller = true;
_local9.count = _local5.count;
_local9.waitFrames = _local5.waitFrames;
_tweenList.push(_local9);
if ((((_local6 == 0)) && ((_local7 == 0)))){
_local10 = (_tweenList.length - 1);
updateTweenByIndex(_local10);
removeTweenByIndex(_local10);
};
_local3++;
};
return (true);
}
public static function pauseAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
pauseTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function removeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local5:SpecialPropertySplitter;
var _local6:Array;
var _local7:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
if (_specialPropertySplitterList[_args[_local4]]){
_local5 = _specialPropertySplitterList[_args[_local4]];
_local6 = _local5.splitValues(_arg1, null);
_local7 = 0;
while (_local7 < _local6.length) {
_local3.push(_local6[_local7].name);
_local7++;
};
} else {
_local3.push(_args[_local4]);
};
};
_local4++;
};
return (affectTweens(removeTweenByIndex, _arg1, _local3));
}
public static function splitTweens(_arg1:Number, _arg2:Array):uint{
var _local5:uint;
var _local6:String;
var _local7:Boolean;
var _local3:TweenListObj = _tweenList[_arg1];
var _local4:TweenListObj = _local3.clone(false);
_local5 = 0;
while (_local5 < _arg2.length) {
_local6 = _arg2[_local5];
if (Boolean(_local3.properties[_local6])){
_local3.properties[_local6] = undefined;
delete _local3.properties[_local6];
};
_local5++;
};
for (_local6 in _local4.properties) {
_local7 = false;
_local5 = 0;
while (_local5 < _arg2.length) {
if (_arg2[_local5] == _local6){
_local7 = true;
break;
};
_local5++;
};
if (!_local7){
_local4.properties[_local6] = undefined;
delete _local4.properties[_local6];
};
};
_tweenList.push(_local4);
return ((_tweenList.length - 1));
}
public static function updateFrame():void{
_currentTimeFrame++;
}
public static function resumeTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (!(_local2.isPaused)))){
return (false);
};
var _local3:Number = getCurrentTweeningTime(_local2);
_local2.timeStart = (_local2.timeStart + (_local3 - _local2.timePaused));
_local2.timeComplete = (_local2.timeComplete + (_local3 - _local2.timePaused));
_local2.timePaused = undefined;
_local2.isPaused = false;
return (true);
}
public static function getVersion():String{
return ("AS3 1.31.74");
}
public static function onEnterFrame(_arg1:Event):void{
updateTime();
updateFrame();
var _local2:Boolean;
_local2 = updateTweens();
if (!_local2){
stopEngine();
};
}
public static function updateTime():void{
_currentTime = getTimer();
}
private static function updateTweenByIndex(_arg1:Number):Boolean{
var tTweening:TweenListObj;
var mustUpdate:Boolean;
var nv:Number;
var t:Number;
var b:Number;
var c:Number;
var d:Number;
var pName:String;
var eventScope:Object;
var tScope:Object;
var tProperty:Object;
var pv:Number;
var i = _arg1;
tTweening = _tweenList[i];
if ((((tTweening == null)) || (!(Boolean(tTweening.scope))))){
return (false);
};
var isOver:Boolean;
var cTime:Number = getCurrentTweeningTime(tTweening);
if (cTime >= tTweening.timeStart){
tScope = tTweening.scope;
if (tTweening.isCaller){
do {
t = (((tTweening.timeComplete - tTweening.timeStart) / tTweening.count) * (tTweening.timesCalled + 1));
b = tTweening.timeStart;
c = (tTweening.timeComplete - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d);
} while (!(cTime >= nv));
} else {
mustUpdate = (((((tTweening.skipUpdates < 1)) || (!(tTweening.skipUpdates)))) || ((tTweening.updatesSkipped >= tTweening.skipUpdates)));
if (cTime >= tTweening.timeComplete){
isOver = true;
mustUpdate = true;
};
if (!tTweening.hasStarted){
if (Boolean(tTweening.onStart)){
eventScope = (Boolean(tTweening.onStartScope)) ? tTweening.onStartScope : tScope;
try {
tTweening.onStart.apply(eventScope, tTweening.onStartParams);
} catch(e2:Error) {
handleError(tTweening, e2, "onStart");
};
};
for (pName in tTweening.properties) {
if (tTweening.properties[pName].isSpecialProperty){
if (Boolean(_specialPropertyList[pName].preProcess)){
tTweening.properties[pName].valueComplete = _specialPropertyList[pName].preProcess(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].originalValueComplete, tTweening.properties[pName].extra);
};
pv = _specialPropertyList[pName].getValue(tScope, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
pv = tScope[pName];
};
tTweening.properties[pName].valueStart = (isNaN(pv)) ? tTweening.properties[pName].valueComplete : pv;
};
mustUpdate = true;
tTweening.hasStarted = true;
};
if (mustUpdate){
for (pName in tTweening.properties) {
tProperty = tTweening.properties[pName];
if (isOver){
nv = tProperty.valueComplete;
} else {
if (tProperty.hasModifier){
t = (cTime - tTweening.timeStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, 0, 1, d, tTweening.transitionParams);
nv = tProperty.modifierFunction(tProperty.valueStart, tProperty.valueComplete, nv, tProperty.modifierParameters);
} else {
t = (cTime - tTweening.timeStart);
b = tProperty.valueStart;
c = (tProperty.valueComplete - tProperty.valueStart);
d = (tTweening.timeComplete - tTweening.timeStart);
nv = tTweening.transition(t, b, c, d, tTweening.transitionParams);
};
};
if (tTweening.rounded){
nv = Math.round(nv);
};
if (tProperty.isSpecialProperty){
_specialPropertyList[pName].setValue(tScope, nv, _specialPropertyList[pName].parameters, tTweening.properties[pName].extra);
} else {
tScope[pName] = nv;
};
};
tTweening.updatesSkipped = 0;
if (Boolean(tTweening.onUpdate)){
eventScope = (Boolean(tTweening.onUpdateScope)) ? tTweening.onUpdateScope : tScope;
try {
tTweening.onUpdate.apply(eventScope, tTweening.onUpdateParams);
} catch(e3:Error) {
handleError(tTweening, e3, "onUpdate");
};
};
} else {
tTweening.updatesSkipped++;
};
};
if (((isOver) && (Boolean(tTweening.onComplete)))){
eventScope = (Boolean(tTweening.onCompleteScope)) ? tTweening.onCompleteScope : tScope;
try {
tTweening.onComplete.apply(eventScope, tTweening.onCompleteParams);
} catch(e4:Error) {
handleError(tTweening, e4, "onComplete");
};
};
return (!(isOver));
};
return (true);
}
public static function setTimeScale(_arg1:Number):void{
var _local2:Number;
var _local3:Number;
if (isNaN(_arg1)){
_arg1 = 1;
};
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
if (_arg1 != _timeScale){
if (_tweenList != null){
_local2 = 0;
while (_local2 < _tweenList.length) {
_local3 = getCurrentTweeningTime(_tweenList[_local2]);
_tweenList[_local2].timeStart = (_local3 - (((_local3 - _tweenList[_local2].timeStart) * _timeScale) / _arg1));
_tweenList[_local2].timeComplete = (_local3 - (((_local3 - _tweenList[_local2].timeComplete) * _timeScale) / _arg1));
if (_tweenList[_local2].timePaused != undefined){
_tweenList[_local2].timePaused = (_local3 - (((_local3 - _tweenList[_local2].timePaused) * _timeScale) / _arg1));
};
_local2++;
};
};
_timeScale = _arg1;
};
}
public static function resumeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
resumeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
private static function handleError(_arg1:TweenListObj, _arg2:Error, _arg3:String):void{
var eventScope:Object;
var pTweening = _arg1;
var pError = _arg2;
var pCallBackName = _arg3;
if (((Boolean(pTweening.onError)) && ((pTweening.onError is Function)))){
eventScope = (Boolean(pTweening.onErrorScope)) ? pTweening.onErrorScope : pTweening.scope;
try {
pTweening.onError.apply(eventScope, [pTweening.scope, pError]);
} catch(metaError:Error) {
printError(((((String(pTweening.scope) + " raised an error while executing the 'onError' handler. Original error:\n ") + pError.getStackTrace()) + "\nonError error: ") + metaError.getStackTrace()));
};
} else {
if (!Boolean(pTweening.onError)){
printError(((((String(pTweening.scope) + " raised an error while executing the '") + pCallBackName) + "'handler. \n") + pError.getStackTrace()));
};
};
}
private static function startEngine():void{
_engineExists = true;
_tweenList = new Array();
__tweener_controller__ = new MovieClip();
__tweener_controller__.addEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
_currentTimeFrame = 0;
updateTime();
}
public static function removeAllTweens():Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
var _local1:Boolean;
_local2 = 0;
while (_local2 < _tweenList.length) {
removeTweenByIndex(_local2);
_local1 = true;
_local2++;
};
return (_local1);
}
public static function addTween(_arg1:Object=null, _arg2:Object=null):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:Array;
var _local13:Function;
var _local14:Object;
var _local15:TweenListObj;
var _local16:Number;
var _local17:Array;
var _local18:Array;
var _local19:Array;
var _local20:String;
if (!Boolean(_arg1)){
return (false);
};
if ((_arg1 is Array)){
_local6 = _arg1.concat();
} else {
_local6 = [_arg1];
};
var _local7:Object = TweenListObj.makePropertiesChain(_arg2);
if (!_inited){
init();
};
if (((!(_engineExists)) || (!(Boolean(__tweener_controller__))))){
startEngine();
};
var _local8:Number = (isNaN(_local7.time)) ? 0 : _local7.time;
var _local9:Number = (isNaN(_local7.delay)) ? 0 : _local7.delay;
var _local10:Array = new Array();
var _local11:Object = {time:true, delay:true, useFrames:true, skipUpdates:true, transition:true, transitionParams:true, onStart:true, onUpdate:true, onComplete:true, onOverwrite:true, onError:true, rounded:true, onStartParams:true, onUpdateParams:true, onCompleteParams:true, onOverwriteParams:true, onStartScope:true, onUpdateScope:true, onCompleteScope:true, onOverwriteScope:true, onErrorScope:true};
var _local12:Object = new Object();
for (_local5 in _local7) {
if (!_local11[_local5]){
if (_specialPropertySplitterList[_local5]){
_local17 = _specialPropertySplitterList[_local5].splitValues(_local7[_local5], _specialPropertySplitterList[_local5].parameters);
_local3 = 0;
while (_local3 < _local17.length) {
if (_specialPropertySplitterList[_local17[_local3].name]){
_local18 = _specialPropertySplitterList[_local17[_local3].name].splitValues(_local17[_local3].value, _specialPropertySplitterList[_local17[_local3].name].parameters);
_local4 = 0;
while (_local4 < _local18.length) {
_local10[_local18[_local4].name] = {valueStart:undefined, valueComplete:_local18[_local4].value, arrayIndex:_local18[_local4].arrayIndex, isSpecialProperty:false};
_local4++;
};
} else {
_local10[_local17[_local3].name] = {valueStart:undefined, valueComplete:_local17[_local3].value, arrayIndex:_local17[_local3].arrayIndex, isSpecialProperty:false};
};
_local3++;
};
} else {
if (_specialPropertyModifierList[_local5] != undefined){
_local19 = _specialPropertyModifierList[_local5].modifyValues(_local7[_local5]);
_local3 = 0;
while (_local3 < _local19.length) {
_local12[_local19[_local3].name] = {modifierParameters:_local19[_local3].parameters, modifierFunction:_specialPropertyModifierList[_local5].getValue};
_local3++;
};
} else {
_local10[_local5] = {valueStart:undefined, valueComplete:_local7[_local5]};
};
};
};
};
for (_local5 in _local10) {
if (_specialPropertyList[_local5] != undefined){
_local10[_local5].isSpecialProperty = true;
} else {
if (_local6[0][_local5] == undefined){
printError((((("The property '" + _local5) + "' doesn't seem to be a normal object property of ") + String(_local6[0])) + " or a registered special property."));
};
};
};
for (_local5 in _local12) {
if (_local10[_local5] != undefined){
_local10[_local5].modifierParameters = _local12[_local5].modifierParameters;
_local10[_local5].modifierFunction = _local12[_local5].modifierFunction;
};
};
if (typeof(_local7.transition) == "string"){
_local20 = _local7.transition.toLowerCase();
_local13 = _transitionList[_local20];
} else {
_local13 = _local7.transition;
};
if (!Boolean(_local13)){
_local13 = _transitionList["easeoutexpo"];
};
_local3 = 0;
while (_local3 < _local6.length) {
_local14 = new Object();
for (_local5 in _local10) {
_local14[_local5] = new PropertyInfoObj(_local10[_local5].valueStart, _local10[_local5].valueComplete, _local10[_local5].valueComplete, _local10[_local5].arrayIndex, {}, _local10[_local5].isSpecialProperty, _local10[_local5].modifierFunction, _local10[_local5].modifierParameters);
};
if (_local7.useFrames == true){
_local15 = new TweenListObj(_local6[_local3], (_currentTimeFrame + (_local9 / _timeScale)), (_currentTimeFrame + ((_local9 + _local8) / _timeScale)), true, _local13, _local7.transitionParams);
} else {
_local15 = new TweenListObj(_local6[_local3], (_currentTime + ((_local9 * 1000) / _timeScale)), (_currentTime + (((_local9 * 1000) + (_local8 * 1000)) / _timeScale)), false, _local13, _local7.transitionParams);
};
_local15.properties = _local14;
_local15.onStart = _local7.onStart;
_local15.onUpdate = _local7.onUpdate;
_local15.onComplete = _local7.onComplete;
_local15.onOverwrite = _local7.onOverwrite;
_local15.onError = _local7.onError;
_local15.onStartParams = _local7.onStartParams;
_local15.onUpdateParams = _local7.onUpdateParams;
_local15.onCompleteParams = _local7.onCompleteParams;
_local15.onOverwriteParams = _local7.onOverwriteParams;
_local15.onStartScope = _local7.onStartScope;
_local15.onUpdateScope = _local7.onUpdateScope;
_local15.onCompleteScope = _local7.onCompleteScope;
_local15.onOverwriteScope = _local7.onOverwriteScope;
_local15.onErrorScope = _local7.onErrorScope;
_local15.rounded = _local7.rounded;
_local15.skipUpdates = _local7.skipUpdates;
removeTweensByTime(_local15.scope, _local15.properties, _local15.timeStart, _local15.timeComplete);
_tweenList.push(_local15);
if ((((_local8 == 0)) && ((_local9 == 0)))){
_local16 = (_tweenList.length - 1);
updateTweenByIndex(_local16);
removeTweenByIndex(_local16);
};
_local3++;
};
return (true);
}
public static function registerTransition(_arg1:String, _arg2:Function):void{
if (!_inited){
init();
};
_transitionList[_arg1] = _arg2;
}
public static function printError(_arg1:String):void{
trace(("## [Tweener] Error: " + _arg1));
}
private static function affectTweens(_arg1:Function, _arg2:Object, _arg3:Array):Boolean{
var _local5:uint;
var _local6:Array;
var _local7:uint;
var _local8:uint;
var _local9:uint;
var _local4:Boolean;
if (!Boolean(_tweenList)){
return (false);
};
_local5 = 0;
while (_local5 < _tweenList.length) {
if (((_tweenList[_local5]) && ((_tweenList[_local5].scope == _arg2)))){
if (_arg3.length == 0){
_arg1(_local5);
_local4 = true;
} else {
_local6 = new Array();
_local7 = 0;
while (_local7 < _arg3.length) {
if (Boolean(_tweenList[_local5].properties[_arg3[_local7]])){
_local6.push(_arg3[_local7]);
};
_local7++;
};
if (_local6.length > 0){
_local8 = AuxFunctions.getObjectLength(_tweenList[_local5].properties);
if (_local8 == _local6.length){
_arg1(_local5);
_local4 = true;
} else {
_local9 = splitTweens(_local5, _local6);
_arg1(_local9);
_local4 = true;
};
};
};
};
_local5++;
};
return (_local4);
}
public static function getTweens(_arg1:Object):Array{
var _local2:uint;
var _local3:String;
if (!Boolean(_tweenList)){
return ([]);
};
var _local4:Array = new Array();
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
for (_local3 in _tweenList[_local2].properties) {
_local4.push(_local3);
};
};
_local2++;
};
return (_local4);
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:uint;
if (!Boolean(_tweenList)){
return (false);
};
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
return (true);
};
_local2++;
};
return (false);
}
public static function pauseTweenByIndex(_arg1:Number):Boolean{
var _local2:TweenListObj = _tweenList[_arg1];
if ((((_local2 == null)) || (_local2.isPaused))){
return (false);
};
_local2.timePaused = getCurrentTweeningTime(_local2);
_local2.isPaused = true;
return (true);
}
public static function getCurrentTweeningTime(_arg1:Object):Number{
return ((_arg1.useFrames) ? _currentTimeFrame : _currentTime);
}
public static function getTweenCount(_arg1:Object):Number{
var _local2:uint;
if (!Boolean(_tweenList)){
return (0);
};
var _local3:Number = 0;
_local2 = 0;
while (_local2 < _tweenList.length) {
if (((Boolean(_tweenList[_local2])) && ((_tweenList[_local2].scope == _arg1)))){
_local3 = (_local3 + AuxFunctions.getObjectLength(_tweenList[_local2].properties));
};
_local2++;
};
return (_local3);
}
private static function stopEngine():void{
_engineExists = false;
_tweenList = null;
_currentTime = 0;
_currentTimeFrame = 0;
__tweener_controller__.removeEventListener(Event.ENTER_FRAME, Tweener.onEnterFrame);
__tweener_controller__ = null;
}
public static function removeTweensByTime(_arg1:Object, _arg2:Object, _arg3:Number, _arg4:Number):Boolean{
var removedLocally:Boolean;
var i:uint;
var pName:String;
var eventScope:Object;
var p_scope = _arg1;
var p_properties = _arg2;
var p_timeStart = _arg3;
var p_timeComplete = _arg4;
var removed:Boolean;
var tl:uint = _tweenList.length;
i = 0;
while (i < tl) {
if (((Boolean(_tweenList[i])) && ((p_scope == _tweenList[i].scope)))){
if ((((p_timeComplete > _tweenList[i].timeStart)) && ((p_timeStart < _tweenList[i].timeComplete)))){
removedLocally = false;
for (pName in _tweenList[i].properties) {
if (Boolean(p_properties[pName])){
if (Boolean(_tweenList[i].onOverwrite)){
eventScope = (Boolean(_tweenList[i].onOverwriteScope)) ? _tweenList[i].onOverwriteScope : _tweenList[i].scope;
try {
_tweenList[i].onOverwrite.apply(eventScope, _tweenList[i].onOverwriteParams);
} catch(e:Error) {
handleError(_tweenList[i], e, "onOverwrite");
};
};
_tweenList[i].properties[pName] = undefined;
delete _tweenList[i].properties[pName];
removedLocally = true;
removed = true;
};
};
if (removedLocally){
if (AuxFunctions.getObjectLength(_tweenList[i].properties) == 0){
removeTweenByIndex(i);
};
};
};
};
i = (i + 1);
};
return (removed);
}
public static function registerSpecialPropertySplitter(_arg1:String, _arg2:Function, _arg3:Array=null):void{
if (!_inited){
init();
};
var _local4:SpecialPropertySplitter = new SpecialPropertySplitter(_arg2, _arg3);
_specialPropertySplitterList[_arg1] = _local4;
}
public static function removeTweenByIndex(_arg1:Number, _arg2:Boolean=false):Boolean{
_tweenList[_arg1] = null;
if (_arg2){
_tweenList.splice(_arg1, 1);
};
return (true);
}
public static function resumeTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(resumeTweenByIndex, _arg1, _local3));
}
public static function pauseTweens(_arg1:Object, ... _args):Boolean{
var _local4:uint;
var _local3:Array = new Array();
_local4 = 0;
while (_local4 < _args.length) {
if ((((typeof(_args[_local4]) == "string")) && ((_local3.indexOf(_args[_local4]) == -1)))){
_local3.push(_args[_local4]);
};
_local4++;
};
return (affectTweens(pauseTweenByIndex, _arg1, _local3));
}
}
}//package caurina.transitions
Section 117
//TweenListObj (caurina.transitions.TweenListObj)
package caurina.transitions {
public class TweenListObj {
public var hasStarted:Boolean;
public var onUpdate:Function;
public var useFrames:Boolean;
public var count:Number;
public var onOverwriteParams:Array;
public var timeStart:Number;
public var timeComplete:Number;
public var onStartParams:Array;
public var onUpdateScope:Object;
public var rounded:Boolean;
public var onUpdateParams:Array;
public var properties:Object;
public var onComplete:Function;
public var transitionParams:Object;
public var updatesSkipped:Number;
public var onStart:Function;
public var onOverwriteScope:Object;
public var skipUpdates:Number;
public var onStartScope:Object;
public var scope:Object;
public var isCaller:Boolean;
public var timePaused:Number;
public var transition:Function;
public var onCompleteParams:Array;
public var onError:Function;
public var timesCalled:Number;
public var onErrorScope:Object;
public var onOverwrite:Function;
public var isPaused:Boolean;
public var waitFrames:Boolean;
public var onCompleteScope:Object;
public function TweenListObj(_arg1:Object, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:Function, _arg6:Object){
scope = _arg1;
timeStart = _arg2;
timeComplete = _arg3;
useFrames = _arg4;
transition = _arg5;
transitionParams = _arg6;
properties = new Object();
isPaused = false;
timePaused = undefined;
isCaller = false;
updatesSkipped = 0;
timesCalled = 0;
skipUpdates = 0;
hasStarted = false;
}
public function clone(_arg1:Boolean):TweenListObj{
var _local3:String;
var _local2:TweenListObj = new TweenListObj(scope, timeStart, timeComplete, useFrames, transition, transitionParams);
_local2.properties = new Array();
for (_local3 in properties) {
_local2.properties[_local3] = properties[_local3].clone();
};
_local2.skipUpdates = skipUpdates;
_local2.updatesSkipped = updatesSkipped;
if (!_arg1){
_local2.onStart = onStart;
_local2.onUpdate = onUpdate;
_local2.onComplete = onComplete;
_local2.onOverwrite = onOverwrite;
_local2.onError = onError;
_local2.onStartParams = onStartParams;
_local2.onUpdateParams = onUpdateParams;
_local2.onCompleteParams = onCompleteParams;
_local2.onOverwriteParams = onOverwriteParams;
_local2.onStartScope = onStartScope;
_local2.onUpdateScope = onUpdateScope;
_local2.onCompleteScope = onCompleteScope;
_local2.onOverwriteScope = onOverwriteScope;
_local2.onErrorScope = onErrorScope;
};
_local2.rounded = rounded;
_local2.isPaused = isPaused;
_local2.timePaused = timePaused;
_local2.isCaller = isCaller;
_local2.count = count;
_local2.timesCalled = timesCalled;
_local2.waitFrames = waitFrames;
_local2.hasStarted = hasStarted;
return (_local2);
}
public function toString():String{
var _local3:String;
var _local1 = "\n[TweenListObj ";
_local1 = (_local1 + ("scope:" + String(scope)));
_local1 = (_local1 + ", properties:");
var _local2:Boolean;
for (_local3 in properties) {
if (!_local2){
_local1 = (_local1 + ",");
};
_local1 = (_local1 + ("[name:" + properties[_local3].name));
_local1 = (_local1 + (",valueStart:" + properties[_local3].valueStart));
_local1 = (_local1 + (",valueComplete:" + properties[_local3].valueComplete));
_local1 = (_local1 + "]");
_local2 = false;
};
_local1 = (_local1 + (", timeStart:" + String(timeStart)));
_local1 = (_local1 + (", timeComplete:" + String(timeComplete)));
_local1 = (_local1 + (", useFrames:" + String(useFrames)));
_local1 = (_local1 + (", transition:" + String(transition)));
_local1 = (_local1 + (", transitionParams:" + String(transitionParams)));
if (skipUpdates){
_local1 = (_local1 + (", skipUpdates:" + String(skipUpdates)));
};
if (updatesSkipped){
_local1 = (_local1 + (", updatesSkipped:" + String(updatesSkipped)));
};
if (Boolean(onStart)){
_local1 = (_local1 + (", onStart:" + String(onStart)));
};
if (Boolean(onUpdate)){
_local1 = (_local1 + (", onUpdate:" + String(onUpdate)));
};
if (Boolean(onComplete)){
_local1 = (_local1 + (", onComplete:" + String(onComplete)));
};
if (Boolean(onOverwrite)){
_local1 = (_local1 + (", onOverwrite:" + String(onOverwrite)));
};
if (Boolean(onError)){
_local1 = (_local1 + (", onError:" + String(onError)));
};
if (onStartParams){
_local1 = (_local1 + (", onStartParams:" + String(onStartParams)));
};
if (onUpdateParams){
_local1 = (_local1 + (", onUpdateParams:" + String(onUpdateParams)));
};
if (onCompleteParams){
_local1 = (_local1 + (", onCompleteParams:" + String(onCompleteParams)));
};
if (onOverwriteParams){
_local1 = (_local1 + (", onOverwriteParams:" + String(onOverwriteParams)));
};
if (onStartScope){
_local1 = (_local1 + (", onStartScope:" + String(onStartScope)));
};
if (onUpdateScope){
_local1 = (_local1 + (", onUpdateScope:" + String(onUpdateScope)));
};
if (onCompleteScope){
_local1 = (_local1 + (", onCompleteScope:" + String(onCompleteScope)));
};
if (onOverwriteScope){
_local1 = (_local1 + (", onOverwriteScope:" + String(onOverwriteScope)));
};
if (onErrorScope){
_local1 = (_local1 + (", onErrorScope:" + String(onErrorScope)));
};
if (rounded){
_local1 = (_local1 + (", rounded:" + String(rounded)));
};
if (isPaused){
_local1 = (_local1 + (", isPaused:" + String(isPaused)));
};
if (timePaused){
_local1 = (_local1 + (", timePaused:" + String(timePaused)));
};
if (isCaller){
_local1 = (_local1 + (", isCaller:" + String(isCaller)));
};
if (count){
_local1 = (_local1 + (", count:" + String(count)));
};
if (timesCalled){
_local1 = (_local1 + (", timesCalled:" + String(timesCalled)));
};
if (waitFrames){
_local1 = (_local1 + (", waitFrames:" + String(waitFrames)));
};
if (hasStarted){
_local1 = (_local1 + (", hasStarted:" + String(hasStarted)));
};
_local1 = (_local1 + "]\n");
return (_local1);
}
public static function makePropertiesChain(_arg1:Object):Object{
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local2:Object = _arg1.base;
if (_local2){
_local3 = {};
if ((_local2 is Array)){
_local4 = [];
_local8 = 0;
while (_local8 < _local2.length) {
_local4.push(_local2[_local8]);
_local8++;
};
} else {
_local4 = [_local2];
};
_local4.push(_arg1);
_local6 = _local4.length;
_local7 = 0;
while (_local7 < _local6) {
if (_local4[_local7]["base"]){
_local5 = AuxFunctions.concatObjects(makePropertiesChain(_local4[_local7]["base"]), _local4[_local7]);
} else {
_local5 = _local4[_local7];
};
_local3 = AuxFunctions.concatObjects(_local3, _local5);
_local7++;
};
if (_local3["base"]){
delete _local3["base"];
};
return (_local3);
//unresolved jump
};
return (_arg1);
}
}
}//package caurina.transitions
Section 118
//MemoryCrypto (com.electrotank.util.MemoryCrypto)
package com.electrotank.util {
import com.meychi.ascrypt3.*;
public class MemoryCrypto {
private static var crypto:TEA = null;
private static var INCREMENT:int = 0;
private static var initialized:Boolean = false;
private static var key:String = null;
private static var MULTIPLY:int = 2;
private static var DECREMENT:int = 1;
private static var dataHolder:Object = null;
private static var DIVIDE:int = 3;
public static function incrementValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, INCREMENT));
}
public static function getValue(_arg1:String):Number{
initIfNeeded();
var _local2:Number = 0;
if (!isValueSet(_arg1)){
setValue(_arg1, _local2);
} else {
_local2 = new Number(crypto.decrypt(dataHolder[_arg1], key));
};
return (_local2);
}
private static function processValue(_arg1:String, _arg2:Number, _arg3:int):Number{
initIfNeeded();
var _local4:Number = getValue(_arg1);
switch (_arg3){
case INCREMENT:
_local4 = (_local4 + _arg2);
break;
case DECREMENT:
_local4 = (_local4 - _arg2);
break;
case MULTIPLY:
_local4 = (_local4 * _arg2);
break;
case DIVIDE:
_local4 = (_local4 / _arg2);
break;
};
setValue(_arg1, _local4);
return (_local4);
}
public static function reset():void{
initialized = false;
initIfNeeded();
}
public static function decrementValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, DECREMENT));
}
private static function initIfNeeded():void{
var _local1:Number;
var _local2:String;
var _local3:Number;
var _local4:String;
if (!initialized){
_local1 = Math.random();
_local2 = new String(_local1);
_local2 = _local2.substr(2, (_local2.length - 2));
_local3 = Math.random();
_local4 = new String(_local3);
_local4 = _local4.substr(2, (_local4.length - 2));
key = (_local2 + _local4);
crypto = new TEA();
dataHolder = new Object();
initialized = true;
};
}
public static function multiplyValue(_arg1:String, _arg2:Number):Number{
return (processValue(_arg1, _arg2, MULTIPLY));
}
public static function setValue(_arg1:String, _arg2:Number):Number{
initIfNeeded();
dataHolder[_arg1] = crypto.encrypt(_arg2.toString(), key);
return (_arg2);
}
public static function divideValue(_arg1:String, _arg2:Number):Number{
if (_arg2 == 0){
throw (new Error("Amount can't be zero when dividing!"));
};
return (processValue(_arg1, _arg2, DIVIDE));
}
public static function isValueSet(_arg1:String):Boolean{
initIfNeeded();
var _local2:Boolean;
if (dataHolder[_arg1] != null){
_local2 = true;
};
return (_local2);
}
}
}//package com.electrotank.util
Section 119
//Raster (com.foxaweb.utils.Raster)
package com.foxaweb.utils {
import flash.display.*;
import flash.geom.*;
public class Raster {
public static function aaCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:Number):void{
var _local6:int;
var _local7:int;
var _local8:int;
var _local10:Number;
_local6 = _arg4;
_local7 = 0;
var _local9:Number = 0;
var _local11:Function = Math.sqrt;
var _local12:Function = Math.ceil;
_arg1.setPixel((_arg2 + _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel((_arg2 - _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel((_arg2 + _local7), (_arg3 + _local6), _arg5);
_arg1.setPixel((_arg2 + _local7), (_arg3 - _local6), _arg5);
while (_local6 > (_local7 + 1)) {
_local7++;
_local10 = (_local12(_local11(((_arg4 * _arg4) - (_local7 * _local7)))) - _local11(((_arg4 * _arg4) - (_local7 * _local7))));
if (_local10 < _local9){
_local6--;
};
drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 + _local7), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 + _local7), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 + _local7), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 + _local7), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 - _local7), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 - _local7), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 - _local7), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 - _local7), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 + _local6), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 + _local6) - 1), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 + _local6), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 + _local6) - 1), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 - _local6), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 - _local6) + 1), _local10, _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 - _local6), (1 - _local10), _arg5);
drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 - _local6) + 1), _local10, _arg5);
_local9 = _local10;
};
}
public static function cubicBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:Number, _arg11:int=5):void{
var _local14:int;
var _local15:int;
var _local18:Number;
var _local19:Number;
var _local20:Number;
var _local21:Number;
var _local22:Number;
var _local23:Number;
var _local12:Number = _arg2;
var _local13:Number = _arg3;
var _local16:Number = 0;
var _local17:Number = (1 / _arg11);
var _local24:int;
while (++_local24 <= _arg11) {
_local18 = (_local17 * _local24);
_local19 = ((_local17 * _local24) * _local18);
_local20 = (_local19 * _local18);
_local21 = (1 - _local18);
_local22 = ((1 - _local18) * _local21);
_local23 = (_local22 * _local21);
_local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20));
_local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20));
_local16 = (_local16 + Math.sqrt((((_local14 - _local12) * (_local14 - _local12)) + ((_local15 - _local13) * (_local15 - _local13)))));
_local12 = _local14;
_local13 = _local15;
};
var _local25:int = Math.floor(_local16);
_local17 = (1 / _local25);
var _local26:int = _arg2;
var _local27:int = _arg3;
_local24 = -1;
while (++_local24 <= _local25) {
_local18 = (_local17 * _local24);
_local19 = ((_local17 * _local24) * _local18);
_local20 = (_local19 * _local18);
_local21 = (1 - _local18);
_local22 = ((1 - _local18) * _local21);
_local23 = (_local22 * _local21);
_local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20));
_local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20));
line(_arg1, _local26, _local27, _local14, _local15, _arg10);
_local26 = _local14;
_local27 = _local15;
};
}
private static function checkLine(_arg1:Object, _arg2:int, _arg3:int, _arg4:BitmapData, _arg5:int, _arg6:Rectangle):void{
if (_arg1[_arg3]){
if (_arg1[_arg3] > _arg2){
_arg6.width = (_arg1[_arg3] - _arg2);
_arg6.x = _arg2;
_arg6.y = _arg3;
_arg4.fillRect(_arg6, _arg5);
} else {
_arg6.width = (_arg2 - _arg1[_arg3]);
_arg6.x = _arg1[_arg3];
_arg6.y = _arg3;
_arg4.fillRect(_arg6, _arg5);
};
} else {
_arg1[_arg3] = _arg2;
};
}
public static function line(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{
var _local7:int;
var _local8:int;
var _local9:int;
var _local10:int;
var _local11:int;
var _local12:int;
var _local13:int;
var _local14:int;
_local13 = _arg2;
_local14 = _arg3;
_local7 = (_arg4 - _arg2);
_local8 = (_arg5 - _arg3);
_local10 = ((_local7)>0) ? 1 : -1;
_local11 = ((_local8)>0) ? 1 : -1;
_local7 = Math.abs(_local7);
_local8 = Math.abs(_local8);
_arg1.setPixel32(_local13, _local14, _arg6);
if (_local7 > _local8){
_local12 = (_local7 / 2);
_local9 = 1;
while (_local9 <= _local7) {
_local13 = (_local13 + _local10);
_local12 = (_local12 + _local8);
if (_local12 >= _local7){
_local12 = (_local12 - _local7);
_local14 = (_local14 + _local11);
};
_arg1.setPixel32(_local13, _local14, _arg6);
_local9++;
};
} else {
_local12 = (_local8 / 2);
_local9 = 1;
while (_local9 <= _local8) {
_local14 = (_local14 + _local11);
_local12 = (_local12 + _local7);
if (_local12 >= _local8){
_local12 = (_local12 - _local8);
_local13 = (_local13 + _local10);
};
_arg1.setPixel32(_local13, _local14, _arg6);
_local9++;
};
};
}
public static function quadBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number, _arg9:int=3):void{
var _local12:int;
var _local13:int;
var _local16:Number;
var _local17:Number;
var _local18:Number;
var _local19:Number;
var _local10:Number = _arg2;
var _local11:Number = _arg3;
var _local14:Number = 0;
var _local15:Number = (1 / _arg9);
var _local20:int;
while (++_local20 <= _arg9) {
_local16 = (_local15 * _local20);
_local17 = ((_local15 * _local20) * _local16);
_local18 = (1 - _local16);
_local19 = ((1 - _local16) * _local18);
_local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6));
_local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7));
_local14 = (_local14 + Math.sqrt((((_local12 - _local10) * (_local12 - _local10)) + ((_local13 - _local11) * (_local13 - _local11)))));
_local10 = _local12;
_local11 = _local13;
};
var _local21:int = Math.floor(_local14);
_local15 = (1 / _local21);
var _local22:int = _arg2;
var _local23:int = _arg3;
_local20 = -1;
while (++_local20 <= _local21) {
_local16 = (_local15 * _local20);
_local17 = ((_local15 * _local20) * _local16);
_local18 = (1 - _local16);
_local19 = ((1 - _local16) * _local18);
_local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6));
_local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7));
line(_arg1, _local22, _local23, _local12, _local13, _arg8);
_local22 = _local12;
_local23 = _local13;
};
}
public static function circle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:Number):void{
var _local6:int;
var _local7:int;
var _local8:int;
_local6 = 0;
_local7 = _arg4;
_local8 = (1 - _arg4);
_arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5);
while (_local7 > _local6) {
if (_local8 < 0){
_local8 = (_local8 + ((2 * _local6) + 3));
} else {
_local8 = (_local8 + ((2 * (_local6 - _local7)) + 5));
_local7--;
};
_local6++;
_arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 - _local6), (_arg3 + _local7), _arg5);
_arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local6), (_arg3 - _local7), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5);
_arg1.setPixel32((_arg2 - _local7), (_arg3 - _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 - _local6), _arg5);
_arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5);
};
}
public static function triangle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{
line(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8);
line(_arg1, _arg4, _arg5, _arg6, _arg7, _arg8);
line(_arg1, _arg6, _arg7, _arg2, _arg3, _arg8);
}
public static function filledTri(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{
var _local9:Object = {};
lineTri(_local9, _arg1, _arg2, _arg3, _arg4, _arg5, _arg8);
lineTri(_local9, _arg1, _arg4, _arg5, _arg6, _arg7, _arg8);
lineTri(_local9, _arg1, _arg6, _arg7, _arg2, _arg3, _arg8);
}
public static function aaLine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{
var _local8:int;
var _local17:Number;
var _local7 = (Math.abs((_arg5 - _arg3)) > Math.abs((_arg4 - _arg2)));
if (_local7){
_local8 = _arg2;
_arg2 = _arg3;
_arg3 = _local8;
_local8 = _arg4;
_arg4 = _arg5;
_arg5 = _local8;
};
if (_arg2 > _arg4){
_local8 = _arg2;
_arg2 = _arg4;
_arg4 = _local8;
_local8 = _arg3;
_arg3 = _arg5;
_arg5 = _local8;
};
var _local9:int = (_arg4 - _arg2);
var _local10:int = (_arg5 - _arg3);
var _local11:Number = (_local10 / _local9);
var _local12:int = _arg2;
var _local13:Number = (_arg3 + (_local11 * (_local12 - _arg2)));
var _local14:Number = (1 - ((_arg2 + 0.5) % 1));
var _local15:int = _local12;
var _local16:int = Math.floor(_local13);
_local17 = ((1 - (_local13 % 1)) * _local14);
if (_local7){
};
_local17 = ((_local13 % 1) * _local14);
if (_local7){
};
var _local18:Number = (_local13 + _local11);
_local12 = _arg4;
_local13 = (_arg5 + (_local11 * (_local12 - _arg4)));
_local14 = ((_arg4 + 0.5) % 1);
var _local19:int = _local12;
var _local20:int = Math.floor(_local13);
_local17 = ((1 - (_local13 % 1)) * _local14);
if (_local7){
drawAlphaPixel(_arg1, _local20, _local19, _local17, _arg6);
} else {
drawAlphaPixel(_arg1, _local19, _local20, _local17, _arg6);
};
_local17 = ((_local13 % 1) * _local14);
if (_local7){
drawAlphaPixel(_arg1, (_local20 + 1), _local19, _local17, _arg6);
} else {
drawAlphaPixel(_arg1, _local19, (_local20 + 1), _local17, _arg6);
};
var _local21:int = _local15;
while (_local21++ < _local19) {
_local17 = (1 - (_local18 % 1));
if (_local7){
drawAlphaPixel(_arg1, _local18, _local21, _local17, _arg6);
} else {
drawAlphaPixel(_arg1, _local21, _local18, _local17, _arg6);
};
_local17 = (_local18 % 1);
if (_local7){
drawAlphaPixel(_arg1, (_local18 + 1), _local21, _local17, _arg6);
} else {
drawAlphaPixel(_arg1, _local21, (_local18 + 1), _local17, _arg6);
};
_local18 = (_local18 + _local11);
};
}
private static function drawAlphaPixel(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Number, _arg5:Number):void{
var _local6:uint = _arg1.getPixel32(_arg2, _arg3);
var _local7:uint = ((_local6 & 0xFF0000) >> 16);
var _local8:uint = ((_local6 & 0xFF00) >> 8);
var _local9:uint = (_local6 & 0xFF);
var _local10:uint = ((_arg5 & 0xFF0000) >> 16);
var _local11:uint = ((_arg5 & 0xFF00) >> 8);
var _local12:uint = (_arg5 & 0xFF);
var _local13:Number = 0xFF;
var _local14:Number = ((_local10 * _arg4) + (_local7 * (1 - _arg4)));
var _local15:Number = ((_local11 * _arg4) + (_local8 * (1 - _arg4)));
var _local16:Number = ((_local12 * _arg4) + (_local9 * (1 - _arg4)));
var _local17:uint = ((((_local13 << 24) + (_local14 << 16)) + (_local15 << 8)) + _local16);
_arg1.setPixel32(_arg2, _arg3, _local17);
}
private static function lineTri(_arg1:Object, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Number):void{
var _local9:int;
var _local8 = (((_arg6 - _arg4) * (_arg6 - _arg4)) > ((_arg5 - _arg3) * (_arg5 - _arg3)));
if (_local8){
_local9 = _arg3;
_arg3 = _arg4;
_arg4 = _local9;
_local9 = _arg5;
_arg5 = _arg6;
_arg6 = _local9;
};
if (_arg3 > _arg5){
_arg3 = (_arg3 ^ _arg5);
_arg5 = (_arg5 ^ _arg3);
_arg3 = (_arg3 ^ _arg5);
_arg4 = (_arg4 ^ _arg6);
_arg6 = (_arg6 ^ _arg4);
_arg4 = (_arg4 ^ _arg6);
};
var _local10:int = (_arg5 - _arg3);
var _local11:int = Math.abs((_arg6 - _arg4));
var _local12:int;
var _local13:int = _arg4;
var _local14:int = ((_arg4 < _arg6)) ? 1 : -1;
var _local15:int = _arg3;
var _local16:int = (_arg5 - (_local10 >> 1));
var _local17:int = _arg5;
var _local18:int = _arg6;
var _local19:Rectangle = new Rectangle();
var _local20:int;
_local19.x = 0;
_local19.y = 0;
_local19.width = 0;
_local19.height = 1;
while (_local15++ <= _local16) {
if (_local8){
checkLine(_arg1, _local13, _local15, _arg2, _arg7, _local19);
if (((!((_local17 == _arg5))) && (!((_local17 == _local16))))){
checkLine(_arg1, _local18, (_local17 + 1), _arg2, _arg7, _local19);
};
};
_local12 = (_local12 + _local11);
if ((_local12 << 1) >= _local10){
if (!_local8){
checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19);
if (_local17 != _local16){
checkLine(_arg1, (_local17 + 1), _local18, _arg2, _arg7, _local19);
};
};
_local20 = 0;
_local13 = (_local13 + _local14);
_local18 = (_local18 - _local14);
_local12 = (_local12 - _local10);
};
_local20++;
_local17--;
};
if (!_local8){
checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19);
};
}
}
}//package com.foxaweb.utils
Section 120
//CampaignInfo (com.google.analytics.campaign.CampaignInfo)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignInfo {
private var _new:Boolean;
private var _empty:Boolean;
public function CampaignInfo(_arg1:Boolean=true, _arg2:Boolean=false){
_empty = _arg1;
_new = _arg2;
}
public function toURLString():String{
var _local1:Variables = toVariables();
return (_local1.toString());
}
public function isNew():Boolean{
return (_new);
}
public function get utmcn():String{
return ("1");
}
public function isEmpty():Boolean{
return (_empty);
}
public function toVariables():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
if (((!(isEmpty())) && (isNew()))){
_local1.utmcn = utmcn;
};
if (((!(isEmpty())) && (!(isNew())))){
_local1.utmcr = utmcr;
};
return (_local1);
}
public function get utmcr():String{
return ("1");
}
}
}//package com.google.analytics.campaign
Section 121
//CampaignKey (com.google.analytics.campaign.CampaignKey)
package com.google.analytics.campaign {
public class CampaignKey {
public var UCMD:String;// = "utm_medium"
public var UCID:String;// = "utm_id"
public var UCTR:String;// = "utm_term"
public var UCSR:String;// = "utm_source"
public var UCNO:String;// = "utm_nooverride"
public var UCCN:String;// = "utm_campaign"
public var UGCLID:String;// = "gclid"
public var UCCT:String;// = "utm_content"
}
}//package com.google.analytics.campaign
Section 122
//CampaignManager (com.google.analytics.campaign.CampaignManager)
package com.google.analytics.campaign {
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
public class CampaignManager {
private var _config:Configuration;
private var _domainHash:Number;
private var _debug:DebugConfiguration;
private var _timeStamp:Number;
private var _referrer:String;
private var _buffer:Buffer;
public static const trackingDelimiter:String = "|";
public function CampaignManager(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Number, _arg5:String, _arg6:Number){
_config = _arg1;
_debug = _arg2;
_buffer = _arg3;
_domainHash = _arg4;
_referrer = _arg5;
_timeStamp = _arg6;
}
public function getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{
var _local4:CampaignTracker;
var _local8:CampaignTracker;
var _local9:int;
var _local3:CampaignInfo = new CampaignInfo();
var _local5:Boolean;
var _local6:Boolean;
var _local7:int;
if (((_config.allowLinker) && (_buffer.isGenuine()))){
if (!_buffer.hasUTMZ()){
return (_local3);
};
};
_local4 = getTrackerFromSearchString(_arg1);
if (isValid(_local4)){
_local6 = hasNoOverride(_arg1);
if (((_local6) && (!(_buffer.hasUTMZ())))){
return (_local3);
};
};
if (!isValid(_local4)){
_local4 = getOrganicCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(_local4)))){
return (_local3);
};
};
if (((!(isValid(_local4))) && (_arg2))){
_local4 = getReferrerCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(_local4)))){
return (_local3);
};
};
if (!isValid(_local4)){
if (((!(_buffer.hasUTMZ())) && (_arg2))){
_local4 = getDirectCampaign();
};
};
if (!isValid(_local4)){
return (_local3);
};
if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){
_local8 = new CampaignTracker();
_local8.fromTrackerString(_buffer.utmz.campaignTracking);
_local5 = (_local8.toTrackerString() == _local4.toTrackerString());
_local7 = _buffer.utmz.responseCount;
};
if (((!(_local5)) || (_arg2))){
_local9 = _buffer.utma.sessionCount;
_local7++;
if (_local9 == 0){
_local9 = 1;
};
_buffer.utmz.domainHash = _domainHash;
_buffer.utmz.campaignCreation = _timeStamp;
_buffer.utmz.campaignSessions = _local9;
_buffer.utmz.responseCount = _local7;
_buffer.utmz.campaignTracking = _local4.toTrackerString();
_debug.info(_buffer.utmz.toString(), VisualDebugMode.geek);
_local3 = new CampaignInfo(false, true);
} else {
_local3 = new CampaignInfo(false, false);
};
return (_local3);
}
public function hasNoOverride(_arg1:String):Boolean{
var _local2:CampaignKey = _config.campaignKey;
if (_arg1 == ""){
return (false);
};
var _local3:Variables = new Variables(_arg1);
var _local4 = "";
if (_local3.hasOwnProperty(_local2.UCNO)){
_local4 = _local3[_local2.UCNO];
switch (_local4){
case "1":
return (true);
case "":
case "0":
default:
return (false);
};
};
return (false);
}
public function getTrackerFromSearchString(_arg1:String):CampaignTracker{
var _local2:CampaignTracker = getOrganicCampaign();
var _local3:CampaignTracker = new CampaignTracker();
var _local4:CampaignKey = _config.campaignKey;
if (_arg1 == ""){
return (_local3);
};
var _local5:Variables = new Variables(_arg1);
if (_local5.hasOwnProperty(_local4.UCID)){
_local3.id = _local5[_local4.UCID];
};
if (_local5.hasOwnProperty(_local4.UCSR)){
_local3.source = _local5[_local4.UCSR];
};
if (_local5.hasOwnProperty(_local4.UGCLID)){
_local3.clickId = _local5[_local4.UGCLID];
};
if (_local5.hasOwnProperty(_local4.UCCN)){
_local3.name = _local5[_local4.UCCN];
} else {
_local3.name = "(not set)";
};
if (_local5.hasOwnProperty(_local4.UCMD)){
_local3.medium = _local5[_local4.UCMD];
} else {
_local3.medium = "(not set)";
};
if (_local5.hasOwnProperty(_local4.UCTR)){
_local3.term = _local5[_local4.UCTR];
} else {
if (((_local2) && (!((_local2.term == ""))))){
_local3.term = _local2.term;
};
};
if (_local5.hasOwnProperty(_local4.UCCT)){
_local3.content = _local5[_local4.UCCT];
};
return (_local3);
}
public function getOrganicCampaign():CampaignTracker{
var _local1:CampaignTracker;
var _local4:Array;
var _local5:OrganicReferrer;
var _local6:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (_local1);
};
var _local2:URL = new URL(_referrer);
var _local3 = "";
if (_local2.hostName != ""){
if (_local2.hostName.indexOf(".") > -1){
_local4 = _local2.hostName.split(".");
switch (_local4.length){
case 2:
_local3 = _local4[0];
break;
case 3:
_local3 = _local4[1];
break;
};
};
};
if (_config.organic.match(_local3)){
_local5 = _config.organic.getReferrerByName(_local3);
_local6 = _config.organic.getKeywordValue(_local5, _local2.search);
_local1 = new CampaignTracker();
_local1.source = _local5.engine;
_local1.name = "(organic)";
_local1.medium = "organic";
_local1.term = _local6;
};
return (_local1);
}
public function getDirectCampaign():CampaignTracker{
var _local1:CampaignTracker = new CampaignTracker();
_local1.source = "(direct)";
_local1.name = "(direct)";
_local1.medium = "(none)";
return (_local1);
}
public function isIgnoredKeyword(_arg1:CampaignTracker):Boolean{
if (((_arg1) && ((_arg1.medium == "organic")))){
return (_config.organic.isIgnoredKeyword(_arg1.term));
};
return (false);
}
public function isIgnoredReferral(_arg1:CampaignTracker):Boolean{
if (((_arg1) && ((_arg1.medium == "referral")))){
return (_config.organic.isIgnoredReferral(_arg1.source));
};
return (false);
}
public function isValid(_arg1:CampaignTracker):Boolean{
if (((_arg1) && (_arg1.isValid()))){
return (true);
};
return (false);
}
public function getReferrerCampaign():CampaignTracker{
var _local1:CampaignTracker;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (_local1);
};
var _local2:URL = new URL(_referrer);
var _local3:String = _local2.hostName;
var _local4:String = _local2.path;
if (_local3.indexOf("www.") == 0){
_local3 = _local3.substr(4);
};
_local1 = new CampaignTracker();
_local1.source = _local3;
_local1.name = "(referral)";
_local1.medium = "referral";
_local1.content = _local4;
return (_local1);
}
public static function isInvalidReferrer(_arg1:String):Boolean{
var _local2:URL;
if ((((((_arg1 == "")) || ((_arg1 == "-")))) || ((_arg1 == "0")))){
return (true);
};
if (_arg1.indexOf("://") > -1){
_local2 = new URL(_arg1);
if ((((_local2.protocol == Protocols.file)) || ((_local2.protocol == Protocols.none)))){
return (true);
};
};
return (false);
}
public static function isFromGoogleCSE(_arg1:String, _arg2:Configuration):Boolean{
var _local3:URL = new URL(_arg1);
if (_local3.hostName.indexOf(_arg2.google) > -1){
if (_local3.search.indexOf((_arg2.googleSearchParam + "=")) > -1){
if (_local3.path == ("/" + _arg2.googleCsePath)){
return (true);
};
};
};
return (false);
}
}
}//package com.google.analytics.campaign
Section 123
//CampaignTracker (com.google.analytics.campaign.CampaignTracker)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignTracker {
public var content:String;
public var source:String;
public var clickId:String;
public var name:String;
public var term:String;
public var medium:String;
public var id:String;
public function CampaignTracker(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:String="", _arg5:String="", _arg6:String="", _arg7:String=""){
this.id = _arg1;
this.source = _arg2;
this.clickId = _arg3;
this.name = _arg4;
this.medium = _arg5;
this.term = _arg6;
this.content = _arg7;
}
public function isValid():Boolean{
if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){
return (true);
};
return (false);
}
public function toTrackerString():String{
var _local1:Array = [];
_addIfNotEmpty(_local1, "utmcid=", id);
_addIfNotEmpty(_local1, "utmcsr=", source);
_addIfNotEmpty(_local1, "utmgclid=", clickId);
_addIfNotEmpty(_local1, "utmccn=", name);
_addIfNotEmpty(_local1, "utmcmd=", medium);
_addIfNotEmpty(_local1, "utmctr=", term);
_addIfNotEmpty(_local1, "utmcct=", content);
return (_local1.join(CampaignManager.trackingDelimiter));
}
private function _addIfNotEmpty(_arg1:Array, _arg2:String, _arg3:String):void{
if (_arg3 != ""){
_arg3 = _arg3.split("+").join("%20");
_arg3 = _arg3.split(" ").join("%20");
_arg1.push((_arg2 + _arg3));
};
}
public function fromTrackerString(_arg1:String):void{
var _local2:String = _arg1.split(CampaignManager.trackingDelimiter).join("&");
var _local3:Variables = new Variables(_local2);
if (_local3.hasOwnProperty("utmcid")){
this.id = _local3["utmcid"];
};
if (_local3.hasOwnProperty("utmcsr")){
this.source = _local3["utmcsr"];
};
if (_local3.hasOwnProperty("utmccn")){
this.name = _local3["utmccn"];
};
if (_local3.hasOwnProperty("utmcmd")){
this.medium = _local3["utmcmd"];
};
if (_local3.hasOwnProperty("utmctr")){
this.term = _local3["utmctr"];
};
if (_local3.hasOwnProperty("utmcct")){
this.content = _local3["utmcct"];
};
if (_local3.hasOwnProperty("utmgclid")){
this.clickId = _local3["utmgclid"];
};
}
}
}//package com.google.analytics.campaign
Section 124
//BrowserInfo (com.google.analytics.core.BrowserInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.utils.*;
public class BrowserInfo {
private var _config:Configuration;
private var _info:Environment;
public function BrowserInfo(_arg1:Configuration, _arg2:Environment){
_config = _arg1;
_info = _arg2;
}
public function get utmul():String{
return (_info.language.toLowerCase());
}
public function get utmje():String{
return ("0");
}
public function toURLString():String{
var _local1:Variables = toVariables();
return (_local1.toString());
}
public function get utmsr():String{
return (((_info.screenWidth + "x") + _info.screenHeight));
}
public function get utmfl():String{
var _local1:Version;
if (_config.detectFlash){
_local1 = _info.flashVersion;
return (((((_local1.major + ".") + _local1.minor) + " r") + _local1.build));
};
return ("-");
}
public function get utmcs():String{
return (_info.languageEncoding);
}
public function toVariables():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
_local1.utmcs = utmcs;
_local1.utmsr = utmsr;
_local1.utmsc = utmsc;
_local1.utmul = utmul;
_local1.utmje = utmje;
_local1.utmfl = utmfl;
return (_local1);
}
public function get utmsc():String{
return ((_info.screenColorDepth + "-bit"));
}
}
}//package com.google.analytics.core
Section 125
//Buffer (com.google.analytics.core.Buffer)
package com.google.analytics.core {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.net.*;
import com.google.analytics.data.*;
public dynamic class Buffer {
private var _SO:SharedObject;
private var _data:Object;
private var _OBJ:Object;
private var _utmb:UTMB;
private var _utmc:UTMC;
private var _utma:UTMA;
private var _debug:DebugConfiguration;
private var _utmk:UTMK;
private var _config:Configuration;
private var _utmv:UTMV;
private var _utmx:UTMX;
private var _utmz:UTMZ;
private var _volatile:Boolean;
public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){
var _local5:String;
super();
_config = _arg1;
_debug = _arg2;
_data = _arg4;
_volatile = _arg3;
if (_volatile){
_OBJ = new Object();
if (_data){
for (_local5 in _data) {
_OBJ[_local5] = _data[_local5];
};
};
};
}
public function save():void{
var flushStatus:String;
if (!isVolatile()){
flushStatus = null;
try {
flushStatus = _SO.flush();
} catch(e:Error) {
_debug.warning("Error...Could not write SharedObject to disk");
};
switch (flushStatus){
case SharedObjectFlushStatus.PENDING:
_debug.info("Requesting permission to save object...");
_SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
break;
case SharedObjectFlushStatus.FLUSHED:
_debug.info("Value flushed to disk.");
break;
};
};
}
public function get utmv():UTMV{
if (!hasUTMV()){
_createUMTV();
};
return (_utmv);
}
public function get utmx():UTMX{
if (!hasUTMX()){
_createUMTX();
};
return (_utmx);
}
public function get utmz():UTMZ{
if (!hasUTMZ()){
_createUMTZ();
};
return (_utmz);
}
public function hasUTMA():Boolean{
if (_utma){
return (true);
};
return (false);
}
public function hasUTMB():Boolean{
if (_utmb){
return (true);
};
return (false);
}
public function hasUTMC():Boolean{
if (_utmc){
return (true);
};
return (false);
}
public function clearCookies():void{
utma.reset();
utmb.reset();
utmc.reset();
utmz.reset();
utmv.reset();
utmk.reset();
}
public function resetCurrentSession():void{
_clearUTMB();
_clearUTMC();
save();
}
public function hasUTMK():Boolean{
if (_utmk){
return (true);
};
return (false);
}
public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{
var _local3:String = toLinkerParams();
var _local4:String = _arg1;
var _local5:Array = _arg1.split("#");
if (_local3){
if (_arg2){
if (1 >= _local5.length){
_local4 = (_local4 + ("#" + _local3));
} else {
_local4 = (_local4 + ("&" + _local3));
};
} else {
if (1 >= _local5.length){
if (_arg1.indexOf("?") > -1){
_local4 = (_local4 + "&");
} else {
_local4 = (_local4 + "?");
};
_local4 = (_local4 + _local3);
} else {
_local4 = _local5[0];
if (_arg1.indexOf("?") > -1){
_local4 = (_local4 + "&");
} else {
_local4 = (_local4 + "?");
};
_local4 = (_local4 + ((_local3 + "#") + _local5[1]));
};
};
};
return (_local4);
}
public function generateCookiesHash():Number{
var _local1 = "";
_local1 = (_local1 + utma.valueOf());
_local1 = (_local1 + utmb.valueOf());
_local1 = (_local1 + utmc.valueOf());
_local1 = (_local1 + utmx.valueOf());
_local1 = (_local1 + utmz.valueOf());
_local1 = (_local1 + utmv.valueOf());
return (Utils.generateHash(_local1));
}
private function _createUMTA():void{
_utma = new UTMA();
_utma.proxy = this;
}
private function _createUMTB():void{
_utmb = new UTMB();
_utmb.proxy = this;
}
private function _createUMTC():void{
_utmc = new UTMC();
}
public function hasUTMV():Boolean{
if (_utmv){
return (true);
};
return (false);
}
private function _createUMTK():void{
_utmk = new UTMK();
_utmk.proxy = this;
}
public function hasUTMX():Boolean{
if (_utmx){
return (true);
};
return (false);
}
public function hasUTMZ():Boolean{
if (_utmz){
return (true);
};
return (false);
}
private function _createUMTV():void{
_utmv = new UTMV();
_utmv.proxy = this;
}
private function _createUMTX():void{
_utmx = new UTMX();
_utmx.proxy = this;
}
private function _createUMTZ():void{
_utmz = new UTMZ();
_utmz.proxy = this;
}
public function updateUTMA(_arg1:Number):void{
if (_debug.verbose){
_debug.info((("updateUTMA( " + _arg1) + " )"), VisualDebugMode.advanced);
};
if (!utma.isEmpty()){
if (isNaN(utma.sessionCount)){
utma.sessionCount = 1;
} else {
utma.sessionCount = (utma.sessionCount + 1);
};
utma.lastTime = utma.currentTime;
utma.currentTime = _arg1;
};
}
public function isGenuine():Boolean{
if (!hasUTMK()){
return (true);
};
return ((utmk.hash == generateCookiesHash()));
}
private function _onFlushStatus(_arg1:NetStatusEvent):void{
_debug.info("User closed permission dialog...");
switch (_arg1.info.code){
case "SharedObject.Flush.Success":
_debug.info("User granted permission -- value saved.");
break;
case "SharedObject.Flush.Failed":
_debug.info("User denied permission -- value not saved.");
break;
};
_SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
}
public function toLinkerParams():String{
var _local1 = "";
_local1 = (_local1 + utma.toURLString());
_local1 = (_local1 + ("&" + utmb.toURLString()));
_local1 = (_local1 + ("&" + utmc.toURLString()));
_local1 = (_local1 + ("&" + utmx.toURLString()));
_local1 = (_local1 + ("&" + utmz.toURLString()));
_local1 = (_local1 + ("&" + utmv.toURLString()));
_local1 = (_local1 + ("&__utmk=" + generateCookiesHash()));
return (_local1);
}
private function _clearUTMA():void{
_utma = null;
if (!isVolatile()){
_SO.data.utma = null;
delete _SO.data.utma;
};
}
private function _clearUTMC():void{
_utmc = null;
}
private function _clearUTMB():void{
_utmb = null;
if (!isVolatile()){
_SO.data.utmb = null;
delete _SO.data.utmb;
};
}
public function update(_arg1:String, _arg2):void{
if (isVolatile()){
_OBJ[_arg1] = _arg2;
} else {
_SO.data[_arg1] = _arg2;
};
}
public function createSO():void{
var saveSO:Boolean;
UTMZ.defaultTimespan = _config.conversionTimeout;
UTMB.defaultTimespan = _config.sessionTimeout;
if (!_volatile){
try {
_SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath);
} catch(e:Error) {
if (_debug.active){
_debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + e.message));
};
};
saveSO = false;
if (_SO.data.utma){
if (!hasUTMA()){
_createUMTA();
};
_utma.fromSharedObject(_SO.data.utma);
if (_debug.verbose){
_debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek);
};
if (_utma.isExpired()){
if (_debug.verbose){
_debug.warning("UTMA has expired", VisualDebugMode.advanced);
};
_clearUTMA();
saveSO = true;
};
};
if (_SO.data.utmb){
if (!hasUTMB()){
_createUMTB();
};
_utmb.fromSharedObject(_SO.data.utmb);
if (_debug.verbose){
_debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek);
};
if (_utmb.isExpired()){
if (_debug.verbose){
_debug.warning("UTMB has expired", VisualDebugMode.advanced);
};
_clearUTMB();
saveSO = true;
};
};
if (_SO.data.utmc){
delete _SO.data.utmc;
saveSO = true;
};
if (_SO.data.utmk){
if (!hasUTMK()){
_createUMTK();
};
_utmk.fromSharedObject(_SO.data.utmk);
if (_debug.verbose){
_debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek);
};
};
if (!hasUTMX()){
_createUMTX();
};
if (_SO.data.utmv){
if (!hasUTMV()){
_createUMTV();
};
_utmv.fromSharedObject(_SO.data.utmv);
if (_debug.verbose){
_debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek);
};
if (_utmv.isExpired()){
if (_debug.verbose){
_debug.warning("UTMV has expired", VisualDebugMode.advanced);
};
_clearUTMV();
saveSO = true;
};
};
if (_SO.data.utmz){
if (!hasUTMZ()){
_createUMTZ();
};
_utmz.fromSharedObject(_SO.data.utmz);
if (_debug.verbose){
_debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek);
};
if (_utmz.isExpired()){
if (_debug.verbose){
_debug.warning("UTMZ has expired", VisualDebugMode.advanced);
};
_clearUTMZ();
saveSO = true;
};
};
if (saveSO){
save();
};
};
}
private function _clearUTMZ():void{
_utmz = null;
if (!isVolatile()){
_SO.data.utmz = null;
delete _SO.data.utmz;
};
}
private function _clearUTMV():void{
_utmv = null;
if (!isVolatile()){
_SO.data.utmv = null;
delete _SO.data.utmv;
};
}
public function isVolatile():Boolean{
return (_volatile);
}
public function get utma():UTMA{
if (!hasUTMA()){
_createUMTA();
};
return (_utma);
}
public function get utmb():UTMB{
if (!hasUTMB()){
_createUMTB();
};
return (_utmb);
}
public function get utmc():UTMC{
if (!hasUTMC()){
_createUMTC();
};
return (_utmc);
}
public function get utmk():UTMK{
if (!hasUTMK()){
_createUMTK();
};
return (_utmk);
}
}
}//package com.google.analytics.core
Section 126
//DocumentInfo (com.google.analytics.core.DocumentInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
public class DocumentInfo {
private var _pageURL:String;
private var _utmr:String;
private var _config:Configuration;
private var _adSense:AdSenseGlobals;
private var _info:Environment;
public function DocumentInfo(_arg1:Configuration, _arg2:Environment, _arg3:String, _arg4:String=null, _arg5:AdSenseGlobals=null){
_config = _arg1;
_info = _arg2;
_utmr = _arg3;
_pageURL = _arg4;
_adSense = _arg5;
}
public function get utmr():String{
if (!_utmr){
return ("-");
};
return (_utmr);
}
public function toURLString():String{
var _local1:Variables = toVariables();
return (_local1.toString());
}
private function _renderPageURL(_arg1:String=""):String{
var _local2:String = _info.locationPath;
var _local3:String = _info.locationSearch;
if (((!(_arg1)) || ((_arg1 == "")))){
_arg1 = (_local2 + unescape(_local3));
if (_arg1 == ""){
_arg1 = "/";
};
};
return (_arg1);
}
public function get utmp():String{
return (_renderPageURL(_pageURL));
}
public function get utmhid():String{
return (String(_generateHitId()));
}
private function _generateHitId():Number{
var _local1:Number;
if (((_adSense.hid) && (!((_adSense.hid == ""))))){
_local1 = Number(_adSense.hid);
} else {
_local1 = Math.round((Math.random() * 2147483647));
_adSense.hid = String(_local1);
};
return (_local1);
}
public function toVariables():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
if (((_config.detectTitle) && (!((utmdt == ""))))){
_local1.utmdt = utmdt;
};
_local1.utmhid = utmhid;
_local1.utmr = utmr;
_local1.utmp = utmp;
return (_local1);
}
public function get utmdt():String{
return (_info.documentTitle);
}
}
}//package com.google.analytics.core
Section 127
//Domain (com.google.analytics.core.Domain)
package com.google.analytics.core {
import com.google.analytics.debug.*;
public class Domain {
private var _mode:DomainNameMode;
private var _debug:DebugConfiguration;
private var _name:String;
public function Domain(_arg1:DomainNameMode=null, _arg2:String="", _arg3:DebugConfiguration=null){
_debug = _arg3;
if (_arg1 == null){
_arg1 = DomainNameMode.auto;
};
_mode = _arg1;
if (_arg1 == DomainNameMode.custom){
this.name = _arg2;
} else {
_name = _arg2;
};
}
public function get mode():DomainNameMode{
return (_mode);
}
public function set mode(_arg1:DomainNameMode):void{
_mode = _arg1;
if (_mode == DomainNameMode.none){
_name = "";
};
}
public function get name():String{
return (_name);
}
public function set name(_arg1:String):void{
if (((!((_arg1.charAt(0) == "."))) && (_debug))){
_debug.warning(("missing leading period \".\", cookie will only be accessible on " + _arg1), VisualDebugMode.geek);
};
_name = _arg1;
}
}
}//package com.google.analytics.core
Section 128
//DomainNameMode (com.google.analytics.core.DomainNameMode)
package com.google.analytics.core {
public class DomainNameMode {
private var _value:int;
private var _name:String;
public static const custom:DomainNameMode = new DomainNameMode(2, "custom");
;
public static const none:DomainNameMode = new DomainNameMode(0, "none");
;
public static const auto:DomainNameMode = new DomainNameMode(1, "auto");
;
public function DomainNameMode(_arg1:int=0, _arg2:String=""){
_value = _arg1;
_name = _arg2;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 129
//Ecommerce (com.google.analytics.core.Ecommerce)
package com.google.analytics.core {
import com.google.analytics.debug.*;
import com.google.analytics.ecommerce.*;
public class Ecommerce {
private var _debug:DebugConfiguration;
private var _trans:Array;
public function Ecommerce(_arg1:DebugConfiguration){
this._debug = _arg1;
_trans = new Array();
}
public function getTransLength():Number{
return (_trans.length);
}
public function getTransFromArray(_arg1:Number):Transaction{
return (_trans[_arg1]);
}
public function addTransaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String):Transaction{
var _local9:Transaction;
_local9 = getTransaction(_arg1);
if (_local9 == null){
_local9 = new Transaction(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
_trans.push(_local9);
} else {
_local9.affiliation = _arg2;
_local9.total = _arg3;
_local9.tax = _arg4;
_local9.shipping = _arg5;
_local9.city = _arg6;
_local9.state = _arg7;
_local9.country = _arg8;
};
return (_local9);
}
public function getTransaction(_arg1:String):Transaction{
var _local2:Number;
_local2 = 0;
while (_local2 < _trans.length) {
if (_trans[_local2].id == _arg1){
return (_trans[_local2]);
};
_local2++;
};
return (null);
}
}
}//package com.google.analytics.core
Section 130
//EventInfo (com.google.analytics.core.EventInfo)
package com.google.analytics.core {
import com.google.analytics.data.*;
import com.google.analytics.utils.*;
public class EventInfo {
private var _ext10:X10;
private var _isEventHit:Boolean;
private var _x10:X10;
public function EventInfo(_arg1:Boolean, _arg2:X10, _arg3:X10=null){
_isEventHit = _arg1;
_x10 = _arg2;
_ext10 = _arg3;
}
public function toURLString():String{
var _local1:Variables = toVariables();
return (_local1.toString());
}
public function get utmt():String{
return ("event");
}
public function get utme():String{
return (_x10.renderMergedUrlString(_ext10));
}
public function toVariables():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
if (_isEventHit){
_local1.utmt = utmt;
};
_local1.utme = utme;
return (_local1);
}
}
}//package com.google.analytics.core
Section 131
//EventTracker (com.google.analytics.core.EventTracker)
package com.google.analytics.core {
import com.google.analytics.v4.*;
public class EventTracker {
private var _parent:GoogleAnalyticsAPI;
public var name:String;
public function EventTracker(_arg1:String, _arg2:GoogleAnalyticsAPI){
this.name = _arg1;
_parent = _arg2;
}
public function trackEvent(_arg1:String, _arg2:String=null, _arg3:Number=NaN):Boolean{
return (_parent.trackEvent(name, _arg1, _arg2, _arg3));
}
}
}//package com.google.analytics.core
Section 132
//ga_internal (com.google.analytics.core.ga_internal)
package com.google.analytics.core {
public namespace ga_internal;
}//package com.google.analytics.core
Section 133
//GIFRequest (com.google.analytics.core.GIFRequest)
package com.google.analytics.core {
import flash.events.*;
import flash.display.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.system.*;
import flash.net.*;
import com.google.analytics.utils.*;
public class GIFRequest {
private var _info:Environment;
private var _count:int;
private var _utmac:String;
private var _alertcount:int;
private var _debug:DebugConfiguration;
private var _lastRequest:URLRequest;
private var _buffer:Buffer;
private var _config:Configuration;
private var _requests:Array;
public function GIFRequest(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Environment){
_config = _arg1;
_debug = _arg2;
_buffer = _arg3;
_info = _arg4;
_count = 0;
_alertcount = 0;
_requests = [];
}
public function get utmn():String{
return ((Utils.generate32bitRandom() as String));
}
public function onIOError(_arg1:IOErrorEvent):void{
var _local2:String = _lastRequest.url;
var _local3:String = String((_requests.length - 1));
var _local4 = (("Gif Request #" + _local3) + " failed");
if (_debug.GIFRequests){
if (!_debug.verbose){
if (_local2.indexOf("?") > -1){
_local2 = _local2.split("?")[0];
};
_local2 = _shortenURL(_local2);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
_local4 = (_local4 + ((" \"" + _local2) + "\" does not exists or is unreachable"));
};
_debug.failure(_local4);
} else {
_debug.warning(_local4);
};
_removeListeners(_arg1.target);
}
public function send(_arg1:String, _arg2:Variables=null, _arg3:Boolean=false, _arg4:Boolean=false):void{
var _local5:String;
var _local6:URLRequest;
var _local7:URLRequest;
_utmac = _arg1;
if (!_arg2){
_arg2 = new Variables();
};
_arg2.URIencode = false;
_arg2.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"];
_arg2.post = ["utmcc"];
if (_debug.verbose){
_debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek);
};
if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (_arg3))){
if (_arg4){
updateToken();
};
if (((((_arg3) || (!(_arg4)))) || ((_buffer.utmb.token >= 1)))){
if (((!(_arg3)) && (_arg4))){
_buffer.utmb.token = (_buffer.utmb.token - 1);
};
_buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1);
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
_arg2.utmwv = utmwv;
_arg2.utmn = Utils.generate32bitRandom();
if (_info.domainName != ""){
_arg2.utmhn = _info.domainName;
};
if (_config.sampleRate < 1){
_arg2.utmsp = (_config.sampleRate * 100);
};
if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){
_local5 = _info.locationSWFPath;
if (_local5.lastIndexOf("/") > 0){
_local5 = _local5.substring(0, _local5.lastIndexOf("/"));
};
_local6 = new URLRequest();
if (_config.localGIFpath.indexOf("http") == 0){
_local6.url = _config.localGIFpath;
} else {
_local6.url = (_local5 + _config.localGIFpath);
};
_local6.url = (_local6.url + ("?" + _arg2.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(_local6);
} else {
sendRequest(_local6);
};
};
if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){
_local7 = new URLRequest();
if (_info.protocol == Protocols.HTTPS){
_local7.url = _config.secureRemoteGIFpath;
} else {
if (_info.protocol == Protocols.HTTP){
_local7.url = _config.remoteGIFpath;
} else {
_local7.url = _config.remoteGIFpath;
};
};
_arg2.utmac = utmac;
_arg2.utmcc = encodeURIComponent(utmcc);
_local7.url = (_local7.url + ("?" + _arg2.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(_local7);
} else {
sendRequest(_local7);
};
};
};
};
}
public function onSecurityError(_arg1:SecurityErrorEvent):void{
if (_debug.GIFRequests){
_debug.failure(_arg1.text);
};
}
public function get utmsp():String{
return (((_config.sampleRate * 100) as String));
}
public function get utmcc():String{
var _local1:Array = [];
if (_buffer.hasUTMA()){
_local1.push((_buffer.utma.toURLString() + ";"));
};
if (_buffer.hasUTMZ()){
_local1.push((_buffer.utmz.toURLString() + ";"));
};
if (_buffer.hasUTMV()){
_local1.push((_buffer.utmv.toURLString() + ";"));
};
return (_local1.join("+"));
}
public function get utmac():String{
return (_utmac);
}
public function get utmwv():String{
return (_config.version);
}
public function sendRequest(_arg1:URLRequest):void{
var request = _arg1;
var loader:Loader = new Loader();
loader.name = String(_count++);
var context:LoaderContext = new LoaderContext(false);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_lastRequest = request;
_requests[loader.name] = new RequestObject(request);
try {
loader.load(request, context);
} catch(e:Error) {
_debug.failure("\"Loader.load()\" could not instanciate Gif Request");
};
}
private function _removeListeners(_arg1:Object):void{
_arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
_arg1.removeEventListener(Event.COMPLETE, onComplete);
}
public function updateToken():void{
var _local2:Number;
var _local1:Number = new Date().getTime();
_local2 = ((_local1 - _buffer.utmb.lastTime) * (_config.tokenRate / 1000));
if (_debug.verbose){
_debug.info(("tokenDelta: " + _local2), VisualDebugMode.geek);
};
if (_local2 >= 1){
_buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + _local2)), _config.bucketCapacity);
_buffer.utmb.lastTime = _local1;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
};
}
public function get utmhn():String{
return (_info.domainName);
}
private function _shortenURL(_arg1:String):String{
var _local2:Array;
if (_arg1.length > 60){
_local2 = _arg1.split("/");
while (_arg1.length > 60) {
_local2.shift();
_arg1 = ("../" + _local2.join("/"));
};
};
return (_arg1);
}
private function _debugSend(_arg1:URLRequest):void{
var _local3:String;
var _local2 = "";
switch (_debug.mode){
case VisualDebugMode.geek:
_local2 = ((("Gif Request #" + _alertcount) + ":\n") + _arg1.url);
break;
case VisualDebugMode.advanced:
_local3 = _arg1.url;
if (_local3.indexOf("?") > -1){
_local3 = _local3.split("?")[0];
};
_local3 = _shortenURL(_local3);
_local2 = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?");
break;
case VisualDebugMode.basic:
default:
_local2 = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?");
};
_debug.alertGifRequest(_local2, _arg1, this);
_alertcount++;
}
public function onComplete(_arg1:Event):void{
var _local2:String = _arg1.target.loader.name;
_requests[_local2].complete();
var _local3 = (("Gif Request #" + _local2) + " sent");
var _local4:String = _requests[_local2].request.url;
if (_debug.GIFRequests){
if (!_debug.verbose){
if (_local4.indexOf("?") > -1){
_local4 = _local4.split("?")[0];
};
_local4 = _shortenURL(_local4);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
_local3 = (_local3 + ((" to \"" + _local4) + "\""));
};
_debug.success(_local3);
} else {
_debug.info(_local3);
};
_removeListeners(_arg1.target);
}
}
}//package com.google.analytics.core
Section 134
//IdleTimer (com.google.analytics.core.IdleTimer)
package com.google.analytics.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public class IdleTimer {
private var _stage:Stage;
private var _loop:Timer;
private var _lastMove:int;
private var _inactivity:Number;
private var _debug:DebugConfiguration;
private var _session:Timer;
private var _buffer:Buffer;
public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){
var _local5:Number = _arg1.idleLoop;
var _local6:Number = _arg1.idleTimeout;
var _local7:Number = _arg1.sessionTimeout;
_loop = new Timer((_local5 * 1000));
_session = new Timer((_local7 * 1000), 1);
_debug = _arg2;
_stage = _arg3.stage;
_buffer = _arg4;
_lastMove = getTimer();
_inactivity = (_local6 * 1000);
_loop.addEventListener(TimerEvent.TIMER, checkForIdle);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_debug.info(((((("delay: " + _local5) + "sec , inactivity: ") + _local6) + "sec, sessionTimeout: ") + _local7), VisualDebugMode.geek);
_loop.start();
}
private function onMouseMove(_arg1:MouseEvent):void{
_lastMove = getTimer();
if (_session.running){
_debug.info("session timer reset", VisualDebugMode.geek);
_session.reset();
};
}
public function endSession(_arg1:TimerEvent):void{
_session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_debug.info("session timer end session", VisualDebugMode.geek);
_session.reset();
_buffer.resetCurrentSession();
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.geek);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
}
public function checkForIdle(_arg1:TimerEvent):void{
var _local2:int = getTimer();
if ((_local2 - _lastMove) >= _inactivity){
if (!_session.running){
_debug.info("session timer start", VisualDebugMode.geek);
_session.start();
};
};
}
}
}//package com.google.analytics.core
Section 135
//Organic (com.google.analytics.core.Organic)
package com.google.analytics.core {
import com.google.analytics.utils.*;
public class Organic {
private var _sourcesCache:Array;
private var _sourcesEngine:Array;
private var _ignoredKeywords:Array;
private var _ignoredReferralsCache:Object;
private var _ignoredReferrals:Array;
private var _ignoredKeywordsCache:Object;
private var _sources:Array;
public static var throwErrors:Boolean = false;
public function Organic(){
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
_ignoredReferrals = [];
_ignoredReferralsCache = {};
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function isIgnoredKeyword(_arg1:String):Boolean{
if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){
return (true);
};
return (false);
}
public function getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{
var _local3:String = _arg1.keyword;
return (getKeywordValueFromPath(_local3, _arg2));
}
public function isIgnoredReferral(_arg1:String):Boolean{
if (_ignoredReferralsCache.hasOwnProperty(_arg1)){
return (true);
};
return (false);
}
public function clear():void{
clearEngines();
clearIgnoredReferrals();
clearIgnoredKeywords();
}
public function get count():int{
return (_sources.length);
}
public function get ignoredKeywordsCount():int{
return (_ignoredKeywords.length);
}
public function match(_arg1:String):Boolean{
if (_arg1 == ""){
return (false);
};
_arg1 = _arg1.toLowerCase();
if (_sourcesEngine[_arg1] != undefined){
return (true);
};
return (false);
}
public function clearIgnoredKeywords():void{
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function addSource(_arg1:String, _arg2:String):void{
var _local3:OrganicReferrer = new OrganicReferrer(_arg1, _arg2);
if (_sourcesCache[_local3.toString()] == undefined){
_sources.push(_local3);
_sourcesCache[_local3.toString()] = (_sources.length - 1);
if (_sourcesEngine[_local3.engine] == undefined){
_sourcesEngine[_local3.engine] = [(_sources.length - 1)];
} else {
_sourcesEngine[_local3.engine].push((_sources.length - 1));
};
} else {
if (throwErrors){
throw (new Error((_local3.toString() + " already exists, we don't add it.")));
};
};
}
public function clearEngines():void{
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
}
public function get ignoredReferralsCount():int{
return (_ignoredReferrals.length);
}
public function addIgnoredReferral(_arg1:String):void{
if (_ignoredReferralsCache[_arg1] == undefined){
_ignoredReferrals.push(_arg1);
_ignoredReferralsCache[_arg1] = (_ignoredReferrals.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it.")));
};
};
}
public function clearIgnoredReferrals():void{
_ignoredReferrals = [];
_ignoredReferralsCache = {};
}
public function getReferrerByName(_arg1:String):OrganicReferrer{
var _local2:int;
if (match(_arg1)){
_local2 = _sourcesEngine[_arg1][0];
return (_sources[_local2]);
};
return (null);
}
public function addIgnoredKeyword(_arg1:String):void{
if (_ignoredKeywordsCache[_arg1] == undefined){
_ignoredKeywords.push(_arg1);
_ignoredKeywordsCache[_arg1] = (_ignoredKeywords.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it.")));
};
};
}
public function get sources():Array{
return (_sources);
}
public static function getKeywordValueFromPath(_arg1:String, _arg2:String):String{
var _local3:String;
var _local4:Variables;
if (_arg2.indexOf((_arg1 + "=")) > -1){
if (_arg2.charAt(0) == "?"){
_arg2 = _arg2.substr(1);
};
_arg2 = _arg2.split("+").join("%20");
_local4 = new Variables(_arg2);
_local3 = _local4[_arg1];
};
return (_local3);
}
}
}//package com.google.analytics.core
Section 136
//OrganicReferrer (com.google.analytics.core.OrganicReferrer)
package com.google.analytics.core {
public class OrganicReferrer {
private var _engine:String;
private var _keyword:String;
public function OrganicReferrer(_arg1:String, _arg2:String){
this.engine = _arg1;
this.keyword = _arg2;
}
public function get keyword():String{
return (_keyword);
}
public function get engine():String{
return (_engine);
}
public function set engine(_arg1:String):void{
_engine = _arg1.toLowerCase();
}
public function toString():String{
return (((engine + "?") + keyword));
}
public function set keyword(_arg1:String):void{
_keyword = _arg1.toLowerCase();
}
}
}//package com.google.analytics.core
Section 137
//RequestObject (com.google.analytics.core.RequestObject)
package com.google.analytics.core {
import flash.utils.*;
import flash.net.*;
public class RequestObject {
public var start:int;
public var end:int;
public var request:URLRequest;
public function RequestObject(_arg1:URLRequest){
start = getTimer();
this.request = _arg1;
}
public function hasCompleted():Boolean{
return ((end > 0));
}
public function toString():String{
var _local1:Array = [];
_local1.push((("duration: " + duration) + "ms"));
_local1.push(("url: " + request.url));
return ((("{ " + _local1.join(", ")) + " }"));
}
public function complete():void{
end = getTimer();
}
public function get duration():int{
if (!hasCompleted()){
return (0);
};
return ((end - start));
}
}
}//package com.google.analytics.core
Section 138
//ServerOperationMode (com.google.analytics.core.ServerOperationMode)
package com.google.analytics.core {
public class ServerOperationMode {
private var _value:int;
private var _name:String;
public static const both:ServerOperationMode = new ServerOperationMode(2, "both");
;
public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote");
;
public static const local:ServerOperationMode = new ServerOperationMode(0, "local");
;
public function ServerOperationMode(_arg1:int=0, _arg2:String=""){
_value = _arg1;
_name = _arg2;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 139
//TrackerCache (com.google.analytics.core.TrackerCache)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import flash.errors.*;
public class TrackerCache implements GoogleAnalyticsAPI {
public var tracker:GoogleAnalyticsAPI;
private var _ar:Array;
public static var CACHE_THROW_ERROR:Boolean;
public function TrackerCache(_arg1:GoogleAnalyticsAPI=null){
this.tracker = _arg1;
_ar = [];
}
public function size():uint{
return (_ar.length);
}
public function flush():void{
var _local1:Object;
var _local2:String;
var _local3:Array;
var _local4:int;
var _local5:int;
if (tracker == null){
return;
};
if (size() > 0){
_local4 = _ar.length;
while (_local5 < _local4) {
_local1 = _ar.shift();
_local2 = (_local1.name as String);
_local3 = (_local1.args as Array);
if (((!((_local2 == null))) && ((_local2 in tracker)))){
(tracker[_local2] as Function).apply(tracker, _local3);
};
_local5++;
};
};
}
public function enqueue(_arg1:String, ... _args):Boolean{
if (_arg1 == null){
return (false);
};
_ar.push({name:_arg1, args:_args});
return (true);
}
public function link(_arg1:String, _arg2:Boolean=false):void{
enqueue("link", _arg1, _arg2);
}
public function addOrganic(_arg1:String, _arg2:String):void{
enqueue("addOrganic", _arg1, _arg2);
}
public function setAllowLinker(_arg1:Boolean):void{
enqueue("setAllowLinker", _arg1);
}
public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{
enqueue("trackEvent", _arg1, _arg2, _arg3, _arg4);
return (true);
}
public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment."));
};
return ("");
}
public function getClientInfo():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment."));
};
return (false);
}
public function trackTrans():void{
enqueue("trackTrans");
}
public function trackPageview(_arg1:String=""):void{
enqueue("trackPageview", _arg1);
}
public function setClientInfo(_arg1:Boolean):void{
enqueue("setClientInfo", _arg1);
}
public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{
enqueue("linkByPost", _arg1, _arg2);
}
public function setCookieTimeout(_arg1:int):void{
enqueue("setCookieTimeout", _arg1);
}
public function isEmpty():Boolean{
return ((_ar.length == 0));
}
public function getDetectTitle():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment."));
};
return (false);
}
public function resetSession():void{
enqueue("resetSession");
}
public function setDetectFlash(_arg1:Boolean):void{
enqueue("setDetectFlash", _arg1);
}
public function clear():void{
_ar = [];
}
public function setCampNameKey(_arg1:String):void{
enqueue("setCampNameKey", _arg1);
}
public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{
enqueue("addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
public function createEventTracker(_arg1:String):EventTracker{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment."));
};
return (null);
}
public function clearIgnoredOrganic():void{
enqueue("clearIgnoredOrganic");
}
public function setVar(_arg1:String):void{
enqueue("setVar", _arg1);
}
public function setDomainName(_arg1:String):void{
enqueue("setDomainName", _arg1);
}
public function setCampSourceKey(_arg1:String):void{
enqueue("setCampSourceKey", _arg1);
}
public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment."));
};
}
public function setCampContentKey(_arg1:String):void{
enqueue("setCampContentKey", _arg1);
}
public function setLocalServerMode():void{
enqueue("setLocalServerMode");
}
public function getLocalGifPath():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment."));
};
return ("");
}
public function setAllowAnchor(_arg1:Boolean):void{
enqueue("setAllowAnchor", _arg1);
}
public function clearIgnoredRef():void{
enqueue("clearIgnoredRef");
}
public function setLocalGifPath(_arg1:String):void{
enqueue("setLocalGifPath", _arg1);
}
public function getVersion():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment."));
};
return ("");
}
public function setCookiePath(_arg1:String):void{
enqueue("setCookiePath", _arg1);
}
public function setSampleRate(_arg1:Number):void{
enqueue("setSampleRate", _arg1);
}
public function setDetectTitle(_arg1:Boolean):void{
enqueue("setDetectTitle", _arg1);
}
public function setAllowHash(_arg1:Boolean):void{
enqueue("setAllowHash", _arg1);
}
public function addIgnoredOrganic(_arg1:String):void{
enqueue("addIgnoredOrganic", _arg1);
}
public function setCampNOKey(_arg1:String):void{
enqueue("setCampNOKey", _arg1);
}
public function getServiceMode():ServerOperationMode{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment."));
};
return (null);
}
public function setLocalRemoteServerMode():void{
enqueue("setLocalRemoteServerMode");
}
public function cookiePathCopy(_arg1:String):void{
enqueue("cookiePathCopy", _arg1);
}
public function getDetectFlash():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment."));
};
return (false);
}
public function setCampaignTrack(_arg1:Boolean):void{
enqueue("setCampaignTrack", _arg1);
}
public function clearOrganic():void{
enqueue("clearOrganic");
}
public function setCampTermKey(_arg1:String):void{
enqueue("setCampTermKey", _arg1);
}
public function addIgnoredRef(_arg1:String):void{
enqueue("addIgnoredRef", _arg1);
}
public function setCampMediumKey(_arg1:String):void{
enqueue("setCampMediumKey", _arg1);
}
public function setSessionTimeout(_arg1:int):void{
enqueue("setSessionTimeout", _arg1);
}
public function setRemoteServerMode():void{
enqueue("setRemoteServerMode");
}
public function element(){
return (_ar[0]);
}
public function getAccount():String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment."));
};
return ("");
}
}
}//package com.google.analytics.core
Section 140
//TrackerMode (com.google.analytics.core.TrackerMode)
package com.google.analytics.core {
public class TrackerMode {
public static const BRIDGE:String = "Bridge";
public static const AS3:String = "AS3";
}
}//package com.google.analytics.core
Section 141
//Utils (com.google.analytics.core.Utils)
package com.google.analytics.core {
public class Utils {
public static function trim(_arg1:String, _arg2:Boolean=false):String{
var _local5:int;
var _local6:int;
var _local7:int;
if (_arg1 == ""){
return ("");
};
var _local3:Array = [" ", "\n", "\r", "\t"];
var _local4:String = _arg1;
if (_arg2){
_local5 = 0;
while ((((_local5 < _local3.length)) && ((_local4.indexOf(_local3[_local5]) > -1)))) {
_local4 = _local4.split(_local3[_local5]).join("");
_local5++;
};
} else {
_local6 = 0;
while ((((_local6 < _local4.length)) && ((_local3.indexOf(_local4.charAt(_local6)) > -1)))) {
_local6++;
};
_local4 = _local4.substr(_local6);
_local7 = (_local4.length - 1);
while ((((_local7 >= 0)) && ((_local3.indexOf(_local4.charAt(_local7)) > -1)))) {
_local7--;
};
_local4 = _local4.substring(0, (_local7 + 1));
};
return (_local4);
}
public static function generateHash(_arg1:String):int{
var _local4:int;
var _local5:int;
var _local2 = 1;
var _local3:int;
if (((!((_arg1 == null))) && (!((_arg1 == ""))))){
_local2 = 0;
_local4 = (_arg1.length - 1);
while (_local4 >= 0) {
_local5 = _arg1.charCodeAt(_local4);
_local2 = ((((_local2 << 6) & 268435455) + _local5) + (_local5 << 14));
_local3 = (_local2 & 266338304);
if (_local3 != 0){
_local2 = (_local2 ^ (_local3 >> 21));
};
_local4--;
};
};
return (_local2);
}
public static function generate32bitRandom():int{
return (Math.round((Math.random() * 2147483647)));
}
public static function validateAccount(_arg1:String):Boolean{
var _local2:RegExp = /^UA-[0-9]*-[0-9]*$/;
return (_local2.test(_arg1));
}
}
}//package com.google.analytics.core
Section 142
//Cookie (com.google.analytics.data.Cookie)
package com.google.analytics.data {
public interface Cookie {
function fromSharedObject(_arg1:Object):void;
function toURLString():String;
function get creation():Date;
function toSharedObject():Object;
function isExpired():Boolean;
function set creation(_arg1:Date):void;
function set expiration(_arg1:Date):void;
function get expiration():Date;
}
}//package com.google.analytics.data
Section 143
//UTMA (com.google.analytics.data.UTMA)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMA extends UTMCookie {
private var _sessionId:Number;
private var _domainHash:Number;
private var _firstTime:Number;
private var _currentTime:Number;
private var _lastTime:Number;
private var _sessionCount:Number;
public function UTMA(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:Number=NaN){
super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000));
this.domainHash = _arg1;
this.sessionId = _arg2;
this.firstTime = _arg3;
this.lastTime = _arg4;
this.currentTime = _arg5;
this.sessionCount = _arg6;
}
public function get lastTime():Number{
return (_lastTime);
}
public function set lastTime(_arg1:Number):void{
_lastTime = _arg1;
update();
}
public function set currentTime(_arg1:Number):void{
_currentTime = _arg1;
update();
}
public function get sessionId():Number{
return (_sessionId);
}
public function get sessionCount():Number{
return (_sessionCount);
}
public function get firstTime():Number{
return (_firstTime);
}
public function get currentTime():Number{
return (_currentTime);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function set sessionId(_arg1:Number):void{
_sessionId = _arg1;
update();
}
public function set sessionCount(_arg1:Number):void{
_sessionCount = _arg1;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set firstTime(_arg1:Number):void{
_firstTime = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 144
//UTMB (com.google.analytics.data.UTMB)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMB extends UTMCookie {
private var _trackCount:Number;
private var _lastTime:Number;
private var _domainHash:Number;
private var _token:Number;
public static var defaultTimespan:Number = Timespan.thirtyminutes;
public function UTMB(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN){
super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000));
this.domainHash = _arg1;
this.trackCount = _arg2;
this.token = _arg3;
this.lastTime = _arg4;
}
public function set token(_arg1:Number):void{
_token = _arg1;
update();
}
public function set trackCount(_arg1:Number):void{
_trackCount = _arg1;
update();
}
public function get lastTime():Number{
return (_lastTime);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function set lastTime(_arg1:Number):void{
_lastTime = _arg1;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function get token():Number{
return (_token);
}
public function get trackCount():Number{
return (_trackCount);
}
}
}//package com.google.analytics.data
Section 145
//UTMC (com.google.analytics.data.UTMC)
package com.google.analytics.data {
public class UTMC extends UTMCookie {
private var _domainHash:Number;
public function UTMC(_arg1:Number=NaN){
super("utmc", "__utmc", ["domainHash"]);
this.domainHash = _arg1;
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 146
//UTMCookie (com.google.analytics.data.UTMCookie)
package com.google.analytics.data {
import com.google.analytics.core.*;
public class UTMCookie implements Cookie {
protected var inURL:String;
protected var name:String;
private var _creation:Date;
private var _expiration:Date;
public var proxy:Buffer;
protected var fields:Array;
private var _timespan:Number;
public function UTMCookie(_arg1:String, _arg2:String, _arg3:Array, _arg4:Number=0){
this.name = _arg1;
this.inURL = _arg2;
this.fields = _arg3;
_timestamp(_arg4);
}
public function isEmpty():Boolean{
var _local2:String;
var _local1:int;
var _local3:int;
while (_local3 < fields.length) {
_local2 = fields[_local3];
if ((((this[_local2] is Number)) && (isNaN(this[_local2])))){
_local1++;
} else {
if ((((this[_local2] is String)) && ((this[_local2] == "")))){
_local1++;
};
};
_local3++;
};
if (_local1 == fields.length){
return (true);
};
return (false);
}
public function resetTimestamp(_arg1:Number=NaN):void{
if (!isNaN(_arg1)){
_timespan = _arg1;
};
_creation = null;
_expiration = null;
_timestamp(_timespan);
}
protected function update():void{
resetTimestamp();
if (proxy){
proxy.update(name, toSharedObject());
};
}
public function reset():void{
var _local1:String;
var _local2:int;
while (_local2 < fields.length) {
_local1 = fields[_local2];
if ((this[_local1] is Number)){
this[_local1] = NaN;
} else {
if ((this[_local1] is String)){
this[_local1] = "";
};
};
_local2++;
};
resetTimestamp();
update();
}
public function fromSharedObject(_arg1:Object):void{
var _local2:String;
var _local3:int = fields.length;
var _local4:int;
while (_local4 < _local3) {
_local2 = fields[_local4];
if (_arg1[_local2]){
this[_local2] = _arg1[_local2];
};
_local4++;
};
if (_arg1.creation){
this.creation = _arg1.creation;
};
if (_arg1.expiration){
this.expiration = _arg1.expiration;
};
}
private function _timestamp(_arg1:Number):void{
creation = new Date();
_timespan = _arg1;
if (_arg1 > 0){
expiration = new Date((creation.valueOf() + _arg1));
};
}
public function isExpired():Boolean{
var _local1:Date = new Date();
var _local2:Number = (expiration.valueOf() - _local1.valueOf());
if (_local2 <= 0){
return (true);
};
return (false);
}
public function set expiration(_arg1:Date):void{
_expiration = _arg1;
}
public function get creation():Date{
return (_creation);
}
public function valueOf():String{
var _local2:String;
var _local3:*;
var _local4:Array;
var _local1:Array = [];
var _local5 = "";
var _local6:int;
while (_local6 < fields.length) {
_local2 = fields[_local6];
_local3 = this[_local2];
if ((_local3 is String)){
if (_local3 == ""){
_local3 = "-";
_local1.push(_local3);
} else {
_local1.push(_local3);
};
} else {
if ((_local3 is Number)){
if (_local3 == 0){
_local1.push(_local3);
} else {
if (isNaN(_local3)){
_local3 = "-";
_local1.push(_local3);
} else {
_local1.push(_local3);
};
};
};
};
_local6++;
};
if (isEmpty()){
return ("-");
};
return (("" + _local1.join(".")));
}
public function toURLString():String{
return (((inURL + "=") + valueOf()));
}
public function get expiration():Date{
if (_expiration){
return (_expiration);
};
return (new Date((new Date().valueOf() + 1000)));
}
public function toSharedObject():Object{
var _local2:String;
var _local3:*;
var _local1:Object = {};
var _local4:int;
for (;_local4 < fields.length;_local4++) {
_local2 = fields[_local4];
_local3 = this[_local2];
if ((_local3 is String)){
_local1[_local2] = _local3;
} else {
if (_local3 == 0){
_local1[_local2] = _local3;
} else {
if (isNaN(_local3)){
continue;
} else {
_local1[_local2] = _local3;
};
};
};
};
_local1.creation = creation;
_local1.expiration = expiration;
return (_local1);
}
public function toString(_arg1:Boolean=false):String{
var _local3:String;
var _local4:*;
var _local2:Array = [];
var _local5:int = fields.length;
var _local6:int;
for (;_local6 < _local5;_local6++) {
_local3 = fields[_local6];
_local4 = this[_local3];
if ((_local4 is String)){
_local2.push((((_local3 + ": \"") + _local4) + "\""));
} else {
if (_local4 == 0){
_local2.push(((_local3 + ": ") + _local4));
} else {
if (isNaN(_local4)){
continue;
} else {
_local2.push(((_local3 + ": ") + _local4));
};
};
};
};
var _local7 = (((name.toUpperCase() + " {") + _local2.join(", ")) + "}");
if (_arg1){
_local7 = (_local7 + (((" creation:" + creation) + ", expiration:") + expiration));
};
return (_local7);
}
public function set creation(_arg1:Date):void{
_creation = _arg1;
}
}
}//package com.google.analytics.data
Section 147
//UTMK (com.google.analytics.data.UTMK)
package com.google.analytics.data {
public class UTMK extends UTMCookie {
private var _hash:Number;
public function UTMK(_arg1:Number=NaN){
super("utmk", "__utmk", ["hash"]);
this.hash = _arg1;
}
public function set hash(_arg1:Number):void{
_hash = _arg1;
update();
}
public function get hash():Number{
return (_hash);
}
}
}//package com.google.analytics.data
Section 148
//UTMV (com.google.analytics.data.UTMV)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMV extends UTMCookie {
private var _domainHash:Number;
private var _value:String;
public function UTMV(_arg1:Number=NaN, _arg2:String=""){
super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000));
this.domainHash = _arg1;
this.value = _arg2;
}
public function get value():String{
return (_value);
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function set value(_arg1:String):void{
_value = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 149
//UTMX (com.google.analytics.data.UTMX)
package com.google.analytics.data {
public class UTMX extends UTMCookie {
private var _value:String;
public function UTMX(){
super("utmx", "__utmx", ["value"], 0);
_value = "-";
}
public function get value():String{
return (_value);
}
public function set value(_arg1:String):void{
_value = _arg1;
}
}
}//package com.google.analytics.data
Section 150
//UTMZ (com.google.analytics.data.UTMZ)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMZ extends UTMCookie {
private var _campaignTracking:String;
private var _campaignCreation:Number;
private var _responseCount:Number;
private var _domainHash:Number;
private var _campaignSessions:Number;
public static var defaultTimespan:Number = Timespan.sixmonths;
public function UTMZ(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:String=""){
super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000));
this.domainHash = _arg1;
this.campaignCreation = _arg2;
this.campaignSessions = _arg3;
this.responseCount = _arg4;
this.campaignTracking = _arg5;
}
public function set responseCount(_arg1:Number):void{
_responseCount = _arg1;
update();
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function set campaignCreation(_arg1:Number):void{
_campaignCreation = _arg1;
update();
}
public function get campaignTracking():String{
return (_campaignTracking);
}
public function get campaignSessions():Number{
return (_campaignSessions);
}
public function get domainHash():Number{
return (_domainHash);
}
public function get responseCount():Number{
return (_responseCount);
}
public function get campaignCreation():Number{
return (_campaignCreation);
}
public function set campaignSessions(_arg1:Number):void{
_campaignSessions = _arg1;
update();
}
public function set campaignTracking(_arg1:String):void{
_campaignTracking = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 151
//X10 (com.google.analytics.data.X10)
package com.google.analytics.data {
public class X10 {
private var _delimEnd:String;// = ")"
private var _minimum:int;
private var _delimSet:String;// = "*"
private var _escapeChar:String;// = "'"
private var _delimBegin:String;// = "("
private var _delimNumValue:String;// = "!"
private var _key:String;// = "k"
private var _set:Array;
private var _hasData:int;
private var _escapeCharMap:Object;
private var _projectData:Object;
private var _value:String;// = "v"
public function X10(){
_set = [_key, _value];
super();
_projectData = {};
_escapeCharMap = {};
_escapeCharMap[_escapeChar] = "'0";
_escapeCharMap[_delimEnd] = "'1";
_escapeCharMap[_delimSet] = "'2";
_escapeCharMap[_delimNumValue] = "'3";
_minimum = 1;
}
private function _setInternal(_arg1:Number, _arg2:String, _arg3:Number, _arg4:String):void{
if (!hasProject(_arg1)){
_projectData[_arg1] = {};
};
if (_projectData[_arg1][_arg2] == undefined){
_projectData[_arg1][_arg2] = [];
};
_projectData[_arg1][_arg2][_arg3] = _arg4;
_hasData = (_hasData + 1);
}
private function _renderProject(_arg1:Object):String{
var _local4:int;
var _local5:Array;
var _local2 = "";
var _local3:Boolean;
var _local6:int = _set.length;
_local4 = 0;
while (_local4 < _local6) {
_local5 = _arg1[_set[_local4]];
if (_local5){
if (_local3){
_local2 = (_local2 + _set[_local4]);
};
_local2 = (_local2 + _renderDataType(_local5));
_local3 = false;
} else {
_local3 = true;
};
_local4++;
};
return (_local2);
}
public function hasProject(_arg1:Number):Boolean{
return (_projectData[_arg1]);
}
public function clearKey(_arg1:Number):void{
_clearInternal(_arg1, _key);
}
private function _renderDataType(_arg1:Array):String{
var _local3:String;
var _local4:int;
var _local2:Array = [];
_local4 = 0;
while (_local4 < _arg1.length) {
if (_arg1[_local4] != undefined){
_local3 = "";
if (((!((_local4 == _minimum))) && ((_arg1[(_local4 - 1)] == undefined)))){
_local3 = (_local3 + _local4.toString());
_local3 = (_local3 + _delimNumValue);
};
_local3 = (_local3 + _escapeExtensibleValue(_arg1[_local4]));
_local2.push(_local3);
};
_local4++;
};
return (((_delimBegin + _local2.join(_delimSet)) + _delimEnd));
}
public function getKey(_arg1:Number, _arg2:Number):String{
return ((_getInternal(_arg1, _key, _arg2) as String));
}
public function hasData():Boolean{
return ((_hasData > 0));
}
public function renderMergedUrlString(_arg1:X10=null):String{
var _local3:String;
if (!_arg1){
return (renderUrlString());
};
var _local2:Array = [_arg1.renderUrlString()];
for (_local3 in _projectData) {
if (((hasProject(Number(_local3))) && (!(_arg1.hasProject(Number(_local3)))))){
_local2.push((_local3 + _renderProject(_projectData[_local3])));
};
};
return (_local2.join(""));
}
public function setValue(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
if (((((!((Math.round(_arg3) == _arg3))) || (isNaN(_arg3)))) || ((_arg3 == Infinity)))){
return (false);
};
_setInternal(_arg1, _value, _arg2, _arg3.toString());
return (true);
}
public function renderUrlString():String{
var _local2:String;
var _local1:Array = [];
for (_local2 in _projectData) {
if (hasProject(Number(_local2))){
_local1.push((_local2 + _renderProject(_projectData[_local2])));
};
};
return (_local1.join(""));
}
private function _getInternal(_arg1:Number, _arg2:String, _arg3:Number):Object{
if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){
return (_projectData[_arg1][_arg2][_arg3]);
};
return (undefined);
}
public function setKey(_arg1:Number, _arg2:Number, _arg3:String):Boolean{
_setInternal(_arg1, _key, _arg2, _arg3);
return (true);
}
public function clearValue(_arg1:Number):void{
_clearInternal(_arg1, _value);
}
private function _clearInternal(_arg1:Number, _arg2:String):void{
var _local3:Boolean;
var _local4:int;
var _local5:int;
if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){
_projectData[_arg1][_arg2] = undefined;
_local3 = true;
_local5 = _set.length;
_local4 = 0;
while (_local4 < _local5) {
if (_projectData[_arg1][_set[_local4]] != undefined){
_local3 = false;
break;
};
_local4++;
};
if (_local3){
_projectData[_arg1] = undefined;
_hasData = (_hasData - 1);
};
};
}
public function getValue(_arg1:Number, _arg2:Number){
var _local3:* = _getInternal(_arg1, _value, _arg2);
if (_local3 == null){
return (null);
};
return (Number(_local3));
}
private function _escapeExtensibleValue(_arg1:String):String{
var _local3:int;
var _local4:String;
var _local5:String;
var _local2 = "";
_local3 = 0;
while (_local3 < _arg1.length) {
_local4 = _arg1.charAt(_local3);
_local5 = _escapeCharMap[_local4];
if (_local5){
_local2 = (_local2 + _local5);
} else {
_local2 = (_local2 + _local4);
};
_local3++;
};
return (_local2);
}
}
}//package com.google.analytics.data
Section 152
//_Style (com.google.analytics.debug._Style)
package com.google.analytics.debug {
import flash.net.*;
import flash.text.*;
public class _Style {
public var failureColor:uint;
public var borderColor:uint;
public var backgroundColor:uint;
private var _sheet:StyleSheet;
public var roundedCorner:uint;
public var warningColor:uint;
public var infoColor:uint;
public var alertColor:uint;
public var successColor:uint;
private var _loader:URLLoader;
private var _defaultSheet:String;
public function _Style(){
_sheet = new StyleSheet();
_loader = new URLLoader();
_init();
}
private function _parseSheet(_arg1:String):void{
_sheet.parseCSS(_arg1);
}
public function get sheet():StyleSheet{
return (_sheet);
}
private function _init():void{
_defaultSheet = "";
_defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n");
_defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n");
_defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n");
_defaultSheet = (_defaultSheet + "\n");
roundedCorner = 6;
backgroundColor = 0xCCCCCC;
borderColor = 0x555555;
infoColor = 16777113;
alertColor = 0xFFCC00;
warningColor = 0xCC0000;
successColor = 0xFF00;
failureColor = 0xFF0000;
_parseSheet(_defaultSheet);
}
}
}//package com.google.analytics.debug
Section 153
//Alert (com.google.analytics.debug.Alert)
package com.google.analytics.debug {
import flash.events.*;
public class Alert extends Label {
public var autoClose:Boolean;// = true
public var actionOnNextLine:Boolean;// = true
private var _actions:Array;
public function Alert(_arg1:String, _arg2:Array, _arg3:String="uiAlert", _arg4:uint=0, _arg5:Align=null, _arg6:Boolean=false, _arg7:Boolean=true){
if (_arg4 == 0){
_arg4 = Style.alertColor;
};
if (_arg5 == null){
_arg5 = Align.center;
};
super(_arg1, _arg3, _arg4, _arg5, _arg6);
this.selectable = true;
super.mouseChildren = true;
this.buttonMode = true;
this.mouseEnabled = true;
this.useHandCursor = true;
this.actionOnNextLine = _arg7;
_actions = [];
var _local8:int;
while (_local8 < _arg2.length) {
_arg2[_local8].container = this;
_actions.push(_arg2[_local8]);
_local8++;
};
}
private function _defineActions():void{
var _local3:AlertAction;
var _local1 = "";
if (actionOnNextLine){
_local1 = (_local1 + "\n");
} else {
_local1 = (_local1 + " |");
};
_local1 = (_local1 + " ");
var _local2:Array = [];
var _local4:int;
while (_local4 < _actions.length) {
_local3 = _actions[_local4];
_local2.push((((("<a href=\"event:" + _local3.activator) + "\">") + _local3.name) + "</a>"));
_local4++;
};
_local1 = (_local1 + _local2.join(" | "));
appendText(_local1, "uiAlertAction");
}
protected function isValidAction(_arg1:String):Boolean{
var _local2:int;
while (_local2 < _actions.length) {
if (_arg1 == _actions[_local2].activator){
return (true);
};
_local2++;
};
return (false);
}
override protected function layout():void{
super.layout();
_defineActions();
}
protected function getAction(_arg1:String):AlertAction{
var _local2:int;
while (_local2 < _actions.length) {
if (_arg1 == _actions[_local2].activator){
return (_actions[_local2]);
};
_local2++;
};
return (null);
}
protected function spaces(_arg1:int):String{
var _local2 = "";
var _local3 = " ";
var _local4:int;
while (_local4 < (_arg1 + 1)) {
_local2 = (_local2 + _local3);
_local4++;
};
return (_local2);
}
override public function onLink(_arg1:TextEvent):void{
var _local2:AlertAction;
if (isValidAction(_arg1.text)){
_local2 = getAction(_arg1.text);
if (_local2){
_local2.execute();
};
};
if (autoClose){
close();
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 154
//AlertAction (com.google.analytics.debug.AlertAction)
package com.google.analytics.debug {
public class AlertAction {
public var container:Alert;
private var _callback;
public var activator:String;
public var name:String;
public function AlertAction(_arg1:String, _arg2:String, _arg3){
this.name = _arg1;
this.activator = _arg2;
_callback = _arg3;
}
public function execute():void{
if (_callback){
if ((_callback is Function)){
(_callback as Function)();
} else {
if ((_callback is String)){
var _local1 = container;
_local1[_callback]();
};
};
};
}
}
}//package com.google.analytics.debug
Section 155
//Align (com.google.analytics.debug.Align)
package com.google.analytics.debug {
public class Align {
private var _value:int;
private var _name:String;
public static const bottomRight:Align = new Align(18, "bottomRight");
;
public static const right:Align = new Align(16, "right");
;
public static const left:Align = new Align(32, "left");
;
public static const topRight:Align = new Align(17, "topRight");
;
public static const bottom:Align = new Align(2, "bottom");
;
public static const bottomLeft:Align = new Align(34, "bottomLeft");
;
public static const topLeft:Align = new Align(33, "topLeft");
;
public static const center:Align = new Align(0x0100, "center");
;
public static const none:Align = new Align(0, "none");
;
public static const top:Align = new Align(1, "top");
;
public function Align(_arg1:int=0, _arg2:String=""){
_value = _arg1;
_name = _arg2;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 156
//Background (com.google.analytics.debug.Background)
package com.google.analytics.debug {
import flash.display.*;
public class Background {
public static function drawRounded(_arg1, _arg2:Graphics, _arg3:uint=0, _arg4:uint=0):void{
var _local5:uint;
var _local6:uint;
var _local7:uint = Style.roundedCorner;
if ((((_arg3 > 0)) && ((_arg4 > 0)))){
_local5 = _arg3;
_local6 = _arg4;
} else {
_local5 = _arg1.width;
_local6 = _arg1.height;
};
if (((_arg1.stickToEdge) && (!((_arg1.alignement == Align.none))))){
switch (_arg1.alignement){
case Align.top:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, _local7);
break;
case Align.topLeft:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, 0, _local7);
break;
case Align.topRight:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, 0);
break;
case Align.bottom:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, _local7, 0, 0);
break;
case Align.bottomLeft:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, 0);
break;
case Align.bottomRight:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, 0, 0);
break;
case Align.left:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, _local7);
break;
case Align.right:
_arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, _local7, 0);
break;
case Align.center:
_arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7);
break;
};
} else {
_arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7);
};
}
}
}//package com.google.analytics.debug
Section 157
//Debug (com.google.analytics.debug.Debug)
package com.google.analytics.debug {
import flash.events.*;
import flash.ui.*;
public class Debug extends Label {
private var _lines:Array;
private var _preferredForcedWidth:uint;// = 540
private var _linediff:int;// = 0
public var maxLines:uint;// = 16
public static var count:uint;
public function Debug(_arg1:uint=0, _arg2:Align=null, _arg3:Boolean=false){
if (_arg2 == null){
_arg2 = Align.bottom;
};
super("", "uiLabel", _arg1, _arg2, _arg3);
this.name = ("Debug" + count++);
_lines = [];
selectable = true;
addEventListener(KeyboardEvent.KEY_DOWN, onKey);
}
public function writeBold(_arg1:String):void{
write(_arg1, true);
}
private function _getLinesToDisplay(_arg1:int=0):Array{
var _local2:Array;
var _local3:uint;
var _local4:uint;
if ((_lines.length - 1) > maxLines){
if ((_linediff <= 0)){
_linediff = (_linediff + _arg1);
} else {
if ((((_linediff > 0)) && ((_arg1 < 0)))){
_linediff = (_linediff + _arg1);
};
};
_local3 = ((_lines.length - maxLines) + _linediff);
_local4 = (_local3 + maxLines);
_local2 = _lines.slice(_local3, _local4);
} else {
_local2 = _lines;
};
return (_local2);
}
private function onKey(_arg1:KeyboardEvent=null):void{
var _local2:Array;
switch (_arg1.keyCode){
case Keyboard.DOWN:
_local2 = _getLinesToDisplay(1);
break;
case Keyboard.UP:
_local2 = _getLinesToDisplay(-1);
break;
default:
_local2 = null;
};
if (_local2 == null){
return;
};
text = _local2.join("\n");
}
override public function get forcedWidth():uint{
if (this.parent){
if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){
return (_preferredForcedWidth);
};
return (UISprite(this.parent).forcedWidth);
//unresolved jump
};
return (super.forcedWidth);
}
public function write(_arg1:String, _arg2:Boolean=false):void{
var _local3:Array;
if (_arg1.indexOf("") > -1){
_local3 = _arg1.split("\n");
} else {
_local3 = [_arg1];
};
var _local4 = "";
var _local5 = "";
if (_arg2){
_local4 = "<b>";
_local5 = "</b>";
};
var _local6:int;
while (_local6 < _local3.length) {
_lines.push(((_local4 + _local3[_local6]) + _local5));
_local6++;
};
var _local7:Array = _getLinesToDisplay();
text = _local7.join("\n");
}
public function close():void{
dispose();
}
override protected function dispose():void{
removeEventListener(KeyboardEvent.KEY_DOWN, onKey);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 158
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration)
package com.google.analytics.debug {
import flash.utils.*;
import com.google.analytics.core.*;
import flash.net.*;
public class DebugConfiguration {
public var showHideKey:Number;// = 32
private var _mode:VisualDebugMode;
private var _verbose:Boolean;// = false
public var destroyKey:Number;// = 8
public var GIFRequests:Boolean;// = false
public var showInfos:Boolean;// = true
public var infoTimeout:Number;// = 1000
public var minimizedOnStart:Boolean;// = false
private var _active:Boolean;// = false
public var traceOutput:Boolean;// = false
public var layout:ILayout;
public var warningTimeout:Number;// = 1500
public var javascript:Boolean;// = false
public var showWarnings:Boolean;// = true
private var _visualInitialized:Boolean;// = false
public function DebugConfiguration(){
_mode = VisualDebugMode.basic;
super();
}
public function get verbose():Boolean{
return (_verbose);
}
public function set verbose(_arg1:Boolean):void{
_verbose = _arg1;
}
public function set mode(_arg1):void{
if ((_arg1 is String)){
switch (_arg1){
case "geek":
_arg1 = VisualDebugMode.geek;
break;
case "advanced":
_arg1 = VisualDebugMode.advanced;
break;
case "basic":
default:
_arg1 = VisualDebugMode.basic;
};
};
_mode = _arg1;
}
public function success(_arg1:String):void{
if (layout){
layout.createSuccessAlert(_arg1);
};
if (traceOutput){
trace((("[+] " + _arg1) + " !!"));
};
}
public function get active():Boolean{
return (_active);
}
private function _initializeVisual():void{
if (layout){
layout.init();
_visualInitialized = true;
};
}
private function _destroyVisual():void{
if (((layout) && (_visualInitialized))){
layout.destroy();
};
}
public function warning(_arg1:String, _arg2:VisualDebugMode=null):void{
if (_filter(_arg2)){
return;
};
if (((layout) && (showWarnings))){
layout.createWarning(_arg1);
};
if (traceOutput){
trace((("## " + _arg1) + " ##"));
};
}
private function _filter(_arg1:VisualDebugMode=null):Boolean{
return (((_arg1) && ((int(_arg1) >= int(this.mode)))));
}
public function failure(_arg1:String):void{
if (layout){
layout.createFailureAlert(_arg1);
};
if (traceOutput){
trace((("[-] " + _arg1) + " !!"));
};
}
public function get mode(){
return (_mode);
}
public function set active(_arg1:Boolean):void{
_active = _arg1;
if (_active){
_initializeVisual();
} else {
_destroyVisual();
};
}
protected function trace(_arg1:String):void{
var _local7:Array;
var _local8:int;
var _local2:Array = [];
var _local3 = "";
var _local4 = "";
if (this.mode == VisualDebugMode.geek){
_local3 = (getTimer() + " - ");
_local4 = (new Array(_local3.length).join(" ") + " ");
};
if (_arg1.indexOf("\n") > -1){
_local7 = _arg1.split("\n");
_local8 = 0;
while (_local8 < _local7.length) {
if (_local7[_local8] == ""){
} else {
if (_local8 == 0){
_local2.push((_local3 + _local7[_local8]));
} else {
_local2.push((_local4 + _local7[_local8]));
};
};
_local8++;
};
} else {
_local2.push((_local3 + _arg1));
};
var _local5:int = _local2.length;
var _local6:int;
while (_local6 < _local5) {
trace(_local2[_local6]);
_local6++;
};
}
public function alert(_arg1:String):void{
if (layout){
layout.createAlert(_arg1);
};
if (traceOutput){
trace((("!! " + _arg1) + " !!"));
};
}
public function info(_arg1:String, _arg2:VisualDebugMode=null):void{
if (_filter(_arg2)){
return;
};
if (((layout) && (showInfos))){
layout.createInfo(_arg1);
};
if (traceOutput){
trace(_arg1);
};
}
public function alertGifRequest(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{
if (layout){
layout.createGIFRequestAlert(_arg1, _arg2, _arg3);
};
if (traceOutput){
trace(((">> " + _arg1) + " <<"));
};
}
}
}//package com.google.analytics.debug
Section 159
//FailureAlert (com.google.analytics.debug.FailureAlert)
package com.google.analytics.debug {
public class FailureAlert extends Alert {
public function FailureAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){
var _local4:Align = Align.bottomLeft;
var _local5:Boolean;
var _local6:Boolean;
if (_arg1.verbose){
_arg2 = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + _arg2);
_local4 = Align.center;
_local5 = false;
_local6 = true;
};
super(_arg2, _arg3, "uiFailure", Style.failureColor, _local4, _local5, _local6);
}
}
}//package com.google.analytics.debug
Section 160
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert)
package com.google.analytics.debug {
public class GIFRequestAlert extends Alert {
public function GIFRequestAlert(_arg1:String, _arg2:Array){
super(_arg1, _arg2);
}
}
}//package com.google.analytics.debug
Section 161
//ILayout (com.google.analytics.debug.ILayout)
package com.google.analytics.debug {
import flash.display.*;
import com.google.analytics.core.*;
import flash.net.*;
public interface ILayout {
function createAlert(_arg1:String):void;
function addToStage(_arg1:DisplayObject):void;
function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void;
function createWarning(_arg1:String):void;
function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void;
function createInfo(_arg1:String):void;
function createFailureAlert(_arg1:String):void;
function addToPanel(_arg1:String, _arg2:DisplayObject):void;
function init():void;
function createSuccessAlert(_arg1:String):void;
function createVisualDebug():void;
function destroy():void;
function bringToFront(_arg1:DisplayObject):void;
function isAvailable():Boolean;
}
}//package com.google.analytics.debug
Section 162
//Info (com.google.analytics.debug.Info)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Info extends Label {
private var _timer:Timer;
public function Info(_arg1:String="", _arg2:uint=3000){
super(_arg1, "uiInfo", Style.infoColor, Align.top, true);
if (_arg2 > 0){
_timer = new Timer(_arg2, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(_arg1:TextEvent):void{
switch (_arg1.text){
case "hide":
close();
break;
};
}
public function onComplete(_arg1:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 163
//Label (com.google.analytics.debug.Label)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
import flash.text.*;
public class Label extends UISprite {
private var _color:uint;
private var _background:Shape;
private var _textField:TextField;
public var stickToEdge:Boolean;
private var _text:String;
protected var selectable:Boolean;
private var _tag:String;
public static var count:uint = 0;
public function Label(_arg1:String="", _arg2:String="uiLabel", _arg3:uint=0, _arg4:Align=null, _arg5:Boolean=false){
this.name = ("Label" + count++);
selectable = false;
_background = new Shape();
_textField = new TextField();
_text = _arg1;
_tag = _arg2;
if (_arg4 == null){
_arg4 = Align.none;
};
this.alignement = _arg4;
this.stickToEdge = _arg5;
if (_arg3 == 0){
_arg3 = Style.backgroundColor;
};
_color = _arg3;
_textField.addEventListener(TextEvent.LINK, onLink);
}
public function get tag():String{
return (_tag);
}
private function _draw():void{
var _local1:Graphics = _background.graphics;
_local1.clear();
_local1.beginFill(_color);
var _local2:uint = _textField.width;
var _local3:uint = _textField.height;
if (forcedWidth > 0){
_local2 = forcedWidth;
};
Background.drawRounded(this, _local1, _local2, _local3);
_local1.endFill();
}
public function get text():String{
return (_textField.text);
}
public function appendText(_arg1:String, _arg2:String=""):void{
if (_arg1 == ""){
return;
};
if (_arg2 == ""){
_arg2 = tag;
};
_textField.htmlText = (_textField.htmlText + (((("<span class=\"" + _arg2) + "\">") + _arg1) + "</span>"));
_text = (_text + _arg1);
_draw();
resize();
}
public function set text(_arg1:String):void{
if (_arg1 == ""){
_arg1 = _text;
};
_textField.htmlText = (((("<span class=\"" + tag) + "\">") + _arg1) + "</span>");
_text = _arg1;
_draw();
resize();
}
override protected function layout():void{
_textField.type = TextFieldType.DYNAMIC;
_textField.autoSize = TextFieldAutoSize.LEFT;
_textField.background = false;
_textField.selectable = selectable;
_textField.multiline = true;
_textField.styleSheet = Style.sheet;
this.text = _text;
addChild(_background);
addChild(_textField);
}
public function set tag(_arg1:String):void{
_tag = _arg1;
text = "";
}
public function onLink(_arg1:TextEvent):void{
}
override protected function dispose():void{
_textField.removeEventListener(TextEvent.LINK, onLink);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 164
//Layout (com.google.analytics.debug.Layout)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
import com.google.analytics.core.*;
import flash.net.*;
import com.google.analytics.*;
public class Layout implements ILayout {
private var _display:DisplayObject;
private var _infoQueue:Array;
private var _maxCharPerLine:int;// = 85
private var _hasInfo:Boolean;
private var _warningQueue:Array;
private var _hasDebug:Boolean;
private var _hasWarning:Boolean;
private var _mainPanel:Panel;
private var _GRAlertQueue:Array;
private var _debug:DebugConfiguration;
public var visualDebug:Debug;
private var _hasGRAlert:Boolean;
public function Layout(_arg1:DebugConfiguration, _arg2:DisplayObject){
_display = _arg2;
_debug = _arg1;
_hasWarning = false;
_hasInfo = false;
_hasDebug = false;
_hasGRAlert = false;
_warningQueue = [];
_infoQueue = [];
_GRAlertQueue = [];
}
private function onKey(_arg1:KeyboardEvent=null):void{
switch (_arg1.keyCode){
case _debug.showHideKey:
_mainPanel.visible = !(_mainPanel.visible);
break;
case _debug.destroyKey:
destroy();
break;
};
}
public function createWarning(_arg1:String):void{
if (((_hasWarning) || (!(isAvailable())))){
_warningQueue.push(_arg1);
return;
};
_arg1 = _filterMaxChars(_arg1);
_hasWarning = true;
var _local2:Warning = new Warning(_arg1, _debug.warningTimeout);
addToPanel("analytics", _local2);
_local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true);
if (_hasDebug){
visualDebug.writeBold(_arg1);
};
}
public function bringToFront(_arg1:DisplayObject):void{
_display.stage.setChildIndex(_arg1, (_display.stage.numChildren - 1));
}
public function createFailureAlert(_arg1:String):void{
var _local2:AlertAction;
if (_debug.verbose){
_arg1 = _filterMaxChars(_arg1);
_local2 = new AlertAction("Close", "close", "close");
} else {
_local2 = new AlertAction("X", "close", "close");
};
var _local3:Alert = new FailureAlert(_debug, _arg1, [_local2]);
addToPanel("analytics", _local3);
if (_hasDebug){
if (_debug.verbose){
_arg1 = _arg1.split("\n").join("");
_arg1 = _filterMaxChars(_arg1, 66);
};
visualDebug.writeBold(_arg1);
};
}
public function init():void{
var _local1 = 10;
var _local2:uint = (_display.stage.stageWidth - (_local1 * 2));
var _local3:uint = (_display.stage.stageHeight - (_local1 * 2));
var _local4:Panel = new Panel("analytics", _local2, _local3);
_local4.alignement = Align.top;
_local4.stickToEdge = false;
_local4.title = ("Google Analytics v" + GATracker.version);
_mainPanel = _local4;
addToStage(_local4);
bringToFront(_local4);
if (_debug.minimizedOnStart){
_mainPanel.onToggle();
};
createVisualDebug();
_display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true);
}
public function addToPanel(_arg1:String, _arg2:DisplayObject):void{
var _local4:Panel;
var _local3:DisplayObject = _display.stage.getChildByName(_arg1);
if (_local3){
_local4 = (_local3 as Panel);
_local4.addData(_arg2);
} else {
trace((("panel \"" + _arg1) + "\" not found"));
};
}
private function _clearInfo(_arg1:Event):void{
_hasInfo = false;
if (_infoQueue.length > 0){
createInfo(_infoQueue.shift());
};
}
private function _filterMaxChars(_arg1:String, _arg2:int=0):String{
var _local6:String;
var _local3 = "\n";
var _local4:Array = [];
var _local5:Array = _arg1.split(_local3);
if (_arg2 == 0){
_arg2 = _maxCharPerLine;
};
var _local7:int;
while (_local7 < _local5.length) {
_local6 = _local5[_local7];
while (_local6.length > _arg2) {
_local4.push(_local6.substr(0, _arg2));
_local6 = _local6.substring(_arg2);
};
_local4.push(_local6);
_local7++;
};
return (_local4.join(_local3));
}
private function _clearGRAlert(_arg1:Event):void{
_hasGRAlert = false;
if (_GRAlertQueue.length > 0){
createGIFRequestAlert.apply(this, _GRAlertQueue.shift());
};
}
public function createSuccessAlert(_arg1:String):void{
var _local2:AlertAction;
if (_debug.verbose){
_arg1 = _filterMaxChars(_arg1);
_local2 = new AlertAction("Close", "close", "close");
} else {
_local2 = new AlertAction("X", "close", "close");
};
var _local3:Alert = new SuccessAlert(_debug, _arg1, [_local2]);
addToPanel("analytics", _local3);
if (_hasDebug){
if (_debug.verbose){
_arg1 = _arg1.split("\n").join("");
_arg1 = _filterMaxChars(_arg1, 66);
};
visualDebug.writeBold(_arg1);
};
}
public function isAvailable():Boolean{
return (!((_display.stage == null)));
}
public function createAlert(_arg1:String):void{
_arg1 = _filterMaxChars(_arg1);
var _local2:Alert = new Alert(_arg1, [new AlertAction("Close", "close", "close")]);
addToPanel("analytics", _local2);
if (_hasDebug){
visualDebug.writeBold(_arg1);
};
}
public function createInfo(_arg1:String):void{
if (((_hasInfo) || (!(isAvailable())))){
_infoQueue.push(_arg1);
return;
};
_arg1 = _filterMaxChars(_arg1);
_hasInfo = true;
var _local2:Info = new Info(_arg1, _debug.infoTimeout);
addToPanel("analytics", _local2);
_local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true);
if (_hasDebug){
visualDebug.write(_arg1);
};
}
public function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{
var message = _arg1;
var request = _arg2;
var ref = _arg3;
if (_hasGRAlert){
_GRAlertQueue.push([message, request, ref]);
return;
};
_hasGRAlert = true;
var f:Function = function ():void{
ref.sendRequest(request);
};
message = _filterMaxChars(message);
var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]);
addToPanel("analytics", gra);
gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.write(message);
};
}
public function createVisualDebug():void{
if (!visualDebug){
visualDebug = new Debug();
visualDebug.alignement = Align.bottom;
visualDebug.stickToEdge = true;
addToPanel("analytics", visualDebug);
_hasDebug = true;
};
}
public function addToStage(_arg1:DisplayObject):void{
_display.stage.addChild(_arg1);
}
private function _clearWarning(_arg1:Event):void{
_hasWarning = false;
if (_warningQueue.length > 0){
createWarning(_warningQueue.shift());
};
}
public function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void{
var _local4:Panel = new Panel(_arg1, _arg2, _arg3);
_local4.alignement = Align.center;
_local4.stickToEdge = false;
addToStage(_local4);
bringToFront(_local4);
}
public function destroy():void{
_mainPanel.close();
_debug.layout = null;
}
}
}//package com.google.analytics.debug
Section 165
//Margin (com.google.analytics.debug.Margin)
package com.google.analytics.debug {
public class Margin {
public var top:int;
public var left:int;
public var bottom:int;
public var right:int;
public function Margin(_arg1:int=0, _arg2:int=0, _arg3:int=0, _arg4:int=0){
this.top = _arg1;
this.bottom = _arg2;
this.left = _arg3;
this.right = _arg4;
}
}
}//package com.google.analytics.debug
Section 166
//Panel (com.google.analytics.debug.Panel)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
public class Panel extends UISprite {
private var _savedH:uint;
private var _data:UISprite;
private var _mask:Sprite;
private var _background:Shape;
private var _savedW:uint;
private var _stickToEdge:Boolean;
private var _border:Shape;
private var _borderColor:uint;
protected var baseAlpha:Number;
private var _backgroundColor:uint;
private var _title:Label;
private var _colapsed:Boolean;
private var _name:String;
public function Panel(_arg1:String, _arg2:uint, _arg3:uint, _arg4:uint=0, _arg5:uint=0, _arg6:Number=0.3, _arg7:Align=null, _arg8:Boolean=false){
_name = _arg1;
this.name = _arg1;
this.mouseEnabled = false;
_colapsed = false;
forcedWidth = _arg2;
forcedHeight = _arg3;
this.baseAlpha = _arg6;
_background = new Shape();
_data = new UISprite();
_data.forcedWidth = _arg2;
_data.forcedHeight = _arg3;
_data.mouseEnabled = false;
_title = new Label(_arg1, "uiLabel", 0xFFFFFF, Align.topLeft, _arg8);
_title.buttonMode = true;
_title.margin.top = 0.6;
_title.margin.left = 0.6;
_title.addEventListener(MouseEvent.CLICK, onToggle);
_title.mouseChildren = false;
_border = new Shape();
_mask = new Sprite();
_mask.useHandCursor = false;
_mask.mouseEnabled = false;
_mask.mouseChildren = false;
if (_arg7 == null){
_arg7 = Align.none;
};
this.alignement = _arg7;
this.stickToEdge = _arg8;
if (_arg4 == 0){
_arg4 = Style.backgroundColor;
};
_backgroundColor = _arg4;
if (_arg5 == 0){
_arg5 = Style.borderColor;
};
_borderColor = _arg5;
}
public function get stickToEdge():Boolean{
return (_stickToEdge);
}
public function onToggle(_arg1:MouseEvent=null):void{
if (_colapsed){
_data.visible = true;
} else {
_data.visible = false;
};
_colapsed = !(_colapsed);
_update();
resize();
}
public function set stickToEdge(_arg1:Boolean):void{
_stickToEdge = _arg1;
_title.stickToEdge = _arg1;
}
override protected function dispose():void{
_title.removeEventListener(MouseEvent.CLICK, onToggle);
super.dispose();
}
private function _draw():void{
var _local1:uint;
var _local2:uint;
if (((_savedW) && (_savedH))){
forcedWidth = _savedW;
forcedHeight = _savedH;
};
if (!_colapsed){
_local1 = forcedWidth;
_local2 = forcedHeight;
} else {
_local1 = _title.width;
_local2 = _title.height;
_savedW = forcedWidth;
_savedH = forcedHeight;
forcedWidth = _local1;
forcedHeight = _local2;
};
var _local3:Graphics = _background.graphics;
_local3.clear();
_local3.beginFill(_backgroundColor);
Background.drawRounded(this, _local3, _local1, _local2);
_local3.endFill();
var _local4:Graphics = _data.graphics;
_local4.clear();
_local4.beginFill(_backgroundColor, 0);
Background.drawRounded(this, _local4, _local1, _local2);
_local4.endFill();
var _local5:Graphics = _border.graphics;
_local5.clear();
_local5.lineStyle(0.1, _borderColor);
Background.drawRounded(this, _local5, _local1, _local2);
_local5.endFill();
var _local6:Graphics = _mask.graphics;
_local6.clear();
_local6.beginFill(_backgroundColor);
Background.drawRounded(this, _local6, (_local1 + 1), (_local2 + 1));
_local6.endFill();
}
public function get title():String{
return (_title.text);
}
private function _update():void{
_draw();
if (baseAlpha < 1){
_background.alpha = baseAlpha;
_border.alpha = baseAlpha;
};
}
public function addData(_arg1:DisplayObject):void{
_data.addChild(_arg1);
}
override protected function layout():void{
_update();
addChild(_background);
addChild(_data);
addChild(_title);
addChild(_border);
addChild(_mask);
mask = _mask;
}
public function set title(_arg1:String):void{
_title.text = _arg1;
}
public function close():void{
dispose();
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 167
//Style (com.google.analytics.debug.Style)
package com.google.analytics.debug {
public const Style:_Style = new _Style();
}//package com.google.analytics.debug
Section 168
//SuccessAlert (com.google.analytics.debug.SuccessAlert)
package com.google.analytics.debug {
public class SuccessAlert extends Alert {
public function SuccessAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){
var _local4:Align = Align.bottomLeft;
var _local5:Boolean;
var _local6:Boolean;
if (_arg1.verbose){
_arg2 = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + _arg2);
_local4 = Align.center;
_local5 = false;
_local6 = true;
};
super(_arg2, _arg3, "uiSuccess", Style.successColor, _local4, _local5, _local6);
}
}
}//package com.google.analytics.debug
Section 169
//UISprite (com.google.analytics.debug.UISprite)
package com.google.analytics.debug {
import flash.events.*;
import flash.display.*;
public class UISprite extends Sprite {
private var _forcedWidth:uint;
public var margin:Margin;
protected var alignTarget:DisplayObject;
protected var listenResize:Boolean;
public var alignement:Align;
private var _forcedHeight:uint;
public function UISprite(_arg1:DisplayObject=null){
listenResize = false;
alignement = Align.none;
this.alignTarget = _arg1;
margin = new Margin();
addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
}
public function get forcedHeight():uint{
if (_forcedHeight){
return (_forcedHeight);
};
return (height);
}
private function _onAddedToStage(_arg1:Event):void{
layout();
resize();
}
protected function dispose():void{
var _local1:DisplayObject;
var _local2:int;
while (_local2 < numChildren) {
_local1 = getChildAt(_local2);
if (_local1){
removeChild(_local1);
};
_local2++;
};
}
public function set forcedHeight(_arg1:uint):void{
_forcedHeight = _arg1;
}
public function set forcedWidth(_arg1:uint):void{
_forcedWidth = _arg1;
}
protected function layout():void{
}
public function get forcedWidth():uint{
if (_forcedWidth){
return (_forcedWidth);
};
return (width);
}
public function alignTo(_arg1:Align, _arg2:DisplayObject=null):void{
var _local3:uint;
var _local4:uint;
var _local5:uint;
var _local6:uint;
var _local7:UISprite;
if (_arg2 == null){
if ((parent is Stage)){
_arg2 = this.stage;
} else {
_arg2 = parent;
};
};
if (_arg2 == this.stage){
if (this.stage == null){
return;
};
_local3 = this.stage.stageHeight;
_local4 = this.stage.stageWidth;
_local5 = 0;
_local6 = 0;
} else {
_local7 = (_arg2 as UISprite);
if (_local7.forcedHeight){
_local3 = _local7.forcedHeight;
} else {
_local3 = _local7.height;
};
if (_local7.forcedWidth){
_local4 = _local7.forcedWidth;
} else {
_local4 = _local7.width;
};
_local5 = 0;
_local6 = 0;
};
switch (_arg1){
case Align.top:
x = ((_local4 / 2) - (forcedWidth / 2));
y = (_local6 + margin.top);
break;
case Align.bottom:
x = ((_local4 / 2) - (forcedWidth / 2));
y = (((_local6 + _local3) - forcedHeight) - margin.bottom);
break;
case Align.left:
x = (_local5 + margin.left);
y = ((_local3 / 2) - (forcedHeight / 2));
break;
case Align.right:
x = (((_local5 + _local4) - forcedWidth) - margin.right);
y = ((_local3 / 2) - (forcedHeight / 2));
break;
case Align.center:
x = ((_local4 / 2) - (forcedWidth / 2));
y = ((_local3 / 2) - (forcedHeight / 2));
break;
case Align.topLeft:
x = (_local5 + margin.left);
y = (_local6 + margin.top);
break;
case Align.topRight:
x = (((_local5 + _local4) - forcedWidth) - margin.right);
y = (_local6 + margin.top);
break;
case Align.bottomLeft:
x = (_local5 + margin.left);
y = (((_local6 + _local3) - forcedHeight) - margin.bottom);
break;
case Align.bottomRight:
x = (((_local5 + _local4) - forcedWidth) - margin.right);
y = (((_local6 + _local3) - forcedHeight) - margin.bottom);
break;
};
if (((!(listenResize)) && (!((_arg1 == Align.none))))){
_arg2.addEventListener(Event.RESIZE, onResize, false, 0, true);
listenResize = true;
};
this.alignement = _arg1;
this.alignTarget = _arg2;
}
private function _onRemovedFromStage(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
dispose();
}
public function resize():void{
if (alignement != Align.none){
alignTo(alignement, alignTarget);
};
}
protected function onResize(_arg1:Event):void{
resize();
}
}
}//package com.google.analytics.debug
Section 170
//Warning (com.google.analytics.debug.Warning)
package com.google.analytics.debug {
import flash.events.*;
import flash.utils.*;
public class Warning extends Label {
private var _timer:Timer;
public function Warning(_arg1:String="", _arg2:uint=3000){
super(_arg1, "uiWarning", Style.warningColor, Align.top, false);
margin.top = 32;
if (_arg2 > 0){
_timer = new Timer(_arg2, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(_arg1:TextEvent):void{
switch (_arg1.text){
case "hide":
close();
break;
};
}
public function onComplete(_arg1:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 171
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode)
package com.google.analytics.debug {
public class VisualDebugMode {
private var _value:int;
private var _name:String;
public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced");
;
public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek");
;
public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic");
;
public function VisualDebugMode(_arg1:int=0, _arg2:String=""){
_value = _arg1;
_name = _arg2;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 172
//Item (com.google.analytics.ecommerce.Item)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Item {
private var _price:String;
private var _id:String;
private var _sku:String;
private var _category:String;
private var _quantity:String;
private var _name:String;
public function Item(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String){
this._id = _arg1;
this._sku = _arg2;
this._name = _arg3;
this._category = _arg4;
this._price = _arg5;
this._quantity = _arg6;
}
public function set sku(_arg1:String):void{
_sku = _arg1;
}
public function get price():String{
return (_price);
}
public function get name():String{
return (_name);
}
public function get quantity():String{
return (_quantity);
}
public function set name(_arg1:String):void{
_name = _arg1;
}
public function set price(_arg1:String):void{
_price = _arg1;
}
public function get id():String{
return (_id);
}
public function get sku():String{
return (_sku);
}
public function set quantity(_arg1:String):void{
_quantity = _arg1;
}
public function toGifParams():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
_local1.post = ["utmt", "utmtid", "utmipc", "utmipn", "utmiva", "utmipr", "utmiqt"];
_local1.utmt = "item";
_local1.utmtid = _id;
_local1.utmipc = _sku;
_local1.utmipn = _name;
_local1.utmiva = _category;
_local1.utmipr = _price;
_local1.utmiqt = _quantity;
return (_local1);
}
public function set id(_arg1:String):void{
_id = _arg1;
}
public function set category(_arg1:String):void{
_category = _arg1;
}
public function get category():String{
return (_category);
}
}
}//package com.google.analytics.ecommerce
Section 173
//Transaction (com.google.analytics.ecommerce.Transaction)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Transaction {
private var _items:Array;
private var _total:String;
private var _vars:Variables;
private var _shipping:String;
private var _city:String;
private var _state:String;
private var _country:String;
private var _tax:String;
private var _affiliation:String;
private var _id:String;
public function Transaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String){
this._id = _arg1;
this._affiliation = _arg2;
this._total = _arg3;
this._tax = _arg4;
this._shipping = _arg5;
this._city = _arg6;
this._state = _arg7;
this._country = _arg8;
_items = new Array();
}
public function get total():String{
return (_total);
}
public function getItemFromArray(_arg1:Number):Item{
return (_items[_arg1]);
}
public function set total(_arg1:String):void{
_total = _arg1;
}
public function getItem(_arg1:String):Item{
var _local2:Number;
_local2 = 0;
while (_local2 < _items.length) {
if (_items[_local2].sku == _arg1){
return (_items[_local2]);
};
_local2++;
};
return (null);
}
public function getItemsLength():Number{
return (_items.length);
}
public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String):void{
var _local6:Item;
_local6 = getItem(_arg1);
if (_local6 == null){
_local6 = new Item(_id, _arg1, _arg2, _arg3, _arg4, _arg5);
_items.push(_local6);
} else {
_local6.name = _arg2;
_local6.category = _arg3;
_local6.price = _arg4;
_local6.quantity = _arg5;
};
}
public function set shipping(_arg1:String):void{
_shipping = _arg1;
}
public function get country():String{
return (_country);
}
public function get state():String{
return (_state);
}
public function set tax(_arg1:String):void{
_tax = _arg1;
}
public function set affiliation(_arg1:String):void{
_affiliation = _arg1;
}
public function set state(_arg1:String):void{
_state = _arg1;
}
public function get id():String{
return (_id);
}
public function get tax():String{
return (_tax);
}
public function toGifParams():Variables{
var _local1:Variables = new Variables();
_local1.URIencode = true;
_local1.utmt = "tran";
_local1.utmtid = id;
_local1.utmtst = affiliation;
_local1.utmtto = total;
_local1.utmttx = tax;
_local1.utmtsp = shipping;
_local1.utmtci = city;
_local1.utmtrg = state;
_local1.utmtco = country;
_local1.post = ["utmtid", "utmtst", "utmtto", "utmttx", "utmtsp", "utmtci", "utmtrg", "utmtco"];
return (_local1);
}
public function get affiliation():String{
return (_affiliation);
}
public function get city():String{
return (_city);
}
public function get shipping():String{
return (_shipping);
}
public function set id(_arg1:String):void{
_id = _arg1;
}
public function set city(_arg1:String):void{
_city = _arg1;
}
public function set country(_arg1:String):void{
_country = _arg1;
}
}
}//package com.google.analytics.ecommerce
Section 174
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent)
package com.google.analytics.events {
import flash.events.*;
import com.google.analytics.*;
public class AnalyticsEvent extends Event {
public var tracker:AnalyticsTracker;
public static const READY:String = "ready";
public function AnalyticsEvent(_arg1:String, _arg2:AnalyticsTracker, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.tracker = _arg2;
}
override public function clone():Event{
return (new AnalyticsEvent(type, tracker, bubbles, cancelable));
}
}
}//package com.google.analytics.events
Section 175
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class AdSenseGlobals extends JavascriptProxy {
private var _gaGlobalVerified:Boolean;// = false
public static var gaGlobal_js:XML = <script>
<![CDATA[
function()
{
try
{
gaGlobal
}
catch(e)
{
gaGlobal = {} ;
}
}
]]>
</script>
;
public function AdSenseGlobals(_arg1:DebugConfiguration){
super(_arg1);
}
public function set vid(_arg1:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.vid", _arg1);
}
public function get hid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.hid"));
}
public function set hid(_arg1:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.hid", _arg1);
}
public function get dh():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.dh"));
}
public function get sid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.sid"));
}
public function get vid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.vid"));
}
private function _verify():void{
if (!_gaGlobalVerified){
executeBlock(gaGlobal_js);
_gaGlobalVerified = true;
};
}
public function set sid(_arg1:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.sid", _arg1);
}
public function get gaGlobal():Object{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal"));
}
}
}//package com.google.analytics.external
Section 176
//HTMLDOM (com.google.analytics.external.HTMLDOM)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class HTMLDOM extends JavascriptProxy {
private var _referrer:String;
private var _language:String;
private var _host:String;
private var _pathname:String;
private var _location:String;
private var _search:String;
private var _characterSet:String;
private var _title:String;
private var _protocol:String;
private var _colorDepth:String;
public static var cache_properties_js:XML = <script>
<![CDATA[
function()
{
var obj = {};
obj.host = document.location.host;
obj.language = navigator.language ? navigator.language : navigator.browserLanguage;
obj.characterSet = document.characterSet ? document.characterSet : document.charset;
obj.colorDepth = window.screen.colorDepth;
obj.location = document.location.toString();
obj.pathname = document.location.pathname;
obj.protocol = document.location.protocol;
obj.search = document.location.search;
obj.referrer = document.referrer;
obj.title = document.title;
return obj;
}
]]>
</script>
;
public function HTMLDOM(_arg1:DebugConfiguration){
super(_arg1);
}
public function get search():String{
if (_search){
return (_search);
};
if (!isAvailable()){
return (null);
};
_search = getProperty("document.location.search");
return (_search);
}
public function get location():String{
if (_location){
return (_location);
};
if (!isAvailable()){
return (null);
};
_location = getPropertyString("document.location");
return (_location);
}
public function get pathname():String{
if (_pathname){
return (_pathname);
};
if (!isAvailable()){
return (null);
};
_pathname = getProperty("document.location.pathname");
return (_pathname);
}
public function cacheProperties():void{
if (!isAvailable()){
return;
};
var _local1:Object = call(cache_properties_js);
if (_local1){
_host = _local1.host;
_language = _local1.language;
_characterSet = _local1.characterSet;
_colorDepth = _local1.colorDepth;
_location = _local1.location;
_pathname = _local1.pathname;
_protocol = _local1.protocol;
_search = _local1.search;
_referrer = _local1.referrer;
_title = _local1.title;
};
}
public function get language():String{
if (_language){
return (_language);
};
if (!isAvailable()){
return (null);
};
var _local1:String = getProperty("navigator.language");
if (_local1 == null){
_local1 = getProperty("navigator.browserLanguage");
};
_language = _local1;
return (_language);
}
public function get colorDepth():String{
if (_colorDepth){
return (_colorDepth);
};
if (!isAvailable()){
return (null);
};
_colorDepth = getProperty("window.screen.colorDepth");
return (_colorDepth);
}
public function get referrer():String{
if (_referrer){
return (_referrer);
};
if (!isAvailable()){
return (null);
};
_referrer = getProperty("document.referrer");
return (_referrer);
}
public function get protocol():String{
if (_protocol){
return (_protocol);
};
if (!isAvailable()){
return (null);
};
_protocol = getProperty("document.location.protocol");
return (_protocol);
}
public function get host():String{
if (_host){
return (_host);
};
if (!isAvailable()){
return (null);
};
_host = getProperty("document.location.host");
return (_host);
}
public function get characterSet():String{
if (_characterSet){
return (_characterSet);
};
if (!isAvailable()){
return (null);
};
var _local1:String = getProperty("document.characterSet");
if (_local1 == null){
_local1 = getProperty("document.charset");
};
_characterSet = _local1;
return (_characterSet);
}
public function get title():String{
if (_title){
return (_title);
};
if (!isAvailable()){
return (null);
};
_title = getProperty("document.title");
return (_title);
}
}
}//package com.google.analytics.external
Section 177
//JavascriptProxy (com.google.analytics.external.JavascriptProxy)
package com.google.analytics.external {
import com.google.analytics.debug.*;
import flash.system.*;
import flash.external.*;
public class JavascriptProxy {
private var _notAvailableWarning:Boolean;// = true
private var _debug:DebugConfiguration;
public static var setProperty_js:XML = <script>
<![CDATA[
function( path , value )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
target[ prop ] = value ;
}
]]>
</script>
;
public static var hasProperty_js:XML = <script>
<![CDATA[
function( path )
{
var paths;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
}
else
{
paths = [path];
}
var target = window ;
var len = paths.length ;
for( var i = 0 ; i < len ; i++ )
{
target = target[ paths[i] ] ;
}
if( target )
{
return true;
}
else
{
return false;
}
}
]]>
</script>
;
public static var setPropertyRef_js:XML = <script>
<![CDATA[
function( path , target )
{
var paths;
var prop;
if( path.indexOf(".") > 0 )
{
paths = path.split(".");
prop = paths.pop() ;
}
else
{
paths = [];
prop = path;
}
alert( "paths:"+paths.length+", prop:"+prop );
var targets;
var name;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
alert( "targets:"+targets.length+", name:"+name );
var root = window;
var len = paths.length;
for( var i = 0 ; i < len ; i++ )
{
root = root[ paths[i] ] ;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
root[ prop ] = ref[name] ;
}
]]>
</script>
;
public function JavascriptProxy(_arg1:DebugConfiguration){
_debug = _arg1;
}
public function getProperty(_arg1:String){
return (call((_arg1 + ".valueOf")));
}
public function hasProperty(_arg1:String):Boolean{
return (call(hasProperty_js, _arg1));
}
public function setProperty(_arg1:String, _arg2):void{
call(setProperty_js, _arg1, _arg2);
}
public function executeBlock(_arg1:String):void{
var data = _arg1;
if (isAvailable()){
try {
ExternalInterface.call(data);
} catch(e:SecurityError) {
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
} catch(e:Error) {
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message));
};
};
};
}
public function getPropertyString(_arg1:String):String{
return (call((_arg1 + ".toString")));
}
public function setPropertyByReference(_arg1:String, _arg2:String):void{
call(setPropertyRef_js, _arg1, _arg2);
}
public function call(_arg1:String, ... _args){
var output:String;
var functionName = _arg1;
var args = _args;
if (isAvailable()){
try {
if (((_debug.javascript) && (_debug.verbose))){
output = "";
output = ("Flash->JS: " + functionName);
output = (output + "( ");
if (args.length > 0){
output = (output + args.join(","));
};
output = (output + " )");
_debug.info(output);
};
args.unshift(functionName);
return (ExternalInterface.call.apply(ExternalInterface, args));
} catch(e:SecurityError) {
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
} catch(e:Error) {
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message));
};
};
};
return (null);
}
public function isAvailable():Boolean{
var _local1:Boolean = ExternalInterface.available;
if (((_local1) && ((Capabilities.playerType == "External")))){
_local1 = false;
};
if (((((!(_local1)) && (_debug.javascript))) && (_notAvailableWarning))){
_debug.warning("ExternalInterface is not available.");
_notAvailableWarning = false;
};
return (_local1);
}
}
}//package com.google.analytics.external
Section 178
//Environment (com.google.analytics.utils.Environment)
package com.google.analytics.utils {
import com.google.analytics.debug.*;
import flash.system.*;
import com.google.analytics.external.*;
public class Environment {
private var _dom:HTMLDOM;
private var _appName:String;
private var _debug:DebugConfiguration;
private var _appVersion:Version;
private var _url:String;
private var _protocol:Protocols;
private var _userAgent:UserAgent;
public function Environment(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:DebugConfiguration=null, _arg5:HTMLDOM=null){
var _local6:Version;
super();
if (_arg2 == ""){
if (isAIR()){
_arg2 = "AIR";
} else {
_arg2 = "Flash";
};
};
if (_arg3 == ""){
_local6 = flashVersion;
} else {
_local6 = Version.fromString(_arg3);
};
_url = _arg1;
_appName = _arg2;
_appVersion = _local6;
_debug = _arg4;
_dom = _arg5;
}
public function isAIR():Boolean{
return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application"))));
}
public function get screenWidth():Number{
return (Capabilities.screenResolutionX);
}
public function get playerType():String{
return (Capabilities.playerType);
}
public function get locationSearch():String{
var _local1:String = _dom.search;
if (_local1){
return (_local1);
};
return ("");
}
public function get protocol():Protocols{
if (!_protocol){
_findProtocol();
};
return (_protocol);
}
public function get flashVersion():Version{
var _local1:Version = Version.fromString(Capabilities.version.split(" ")[1], ",");
return (_local1);
}
public function get userAgent():UserAgent{
if (!_userAgent){
_userAgent = new UserAgent(this, appName, appVersion.toString(4));
};
return (_userAgent);
}
public function get languageEncoding():String{
var _local1:String;
if (System.useCodePage){
_local1 = _dom.characterSet;
if (_local1){
return (_local1);
};
return ("-");
};
return ("UTF-8");
}
public function get appName():String{
return (_appName);
}
public function get screenColorDepth():String{
var _local1:String;
switch (Capabilities.screenColor){
case "bw":
_local1 = "1";
break;
case "gray":
_local1 = "2";
break;
case "color":
default:
_local1 = "24";
};
var _local2:String = _dom.colorDepth;
if (_local2){
_local1 = _local2;
};
return (_local1);
}
private function _findProtocol():void{
var _local4:String;
var _local5:String;
var _local1:Protocols = Protocols.none;
if (_url != ""){
_local4 = _url.toLowerCase();
_local5 = _local4.substr(0, 5);
switch (_local5){
case "file:":
_local1 = Protocols.file;
break;
case "http:":
_local1 = Protocols.HTTP;
break;
case "https":
if (_local4.charAt(5) == ":"){
_local1 = Protocols.HTTPS;
};
break;
default:
_protocol = Protocols.none;
};
};
var _local2:String = _dom.protocol;
var _local3:String = (_local1.toString() + ":").toLowerCase();
if (((((_local2) && (!((_local2 == _local3))))) && (_debug))){
_debug.warning(((("Protocol mismatch: SWF=" + _local3) + ", DOM=") + _local2));
};
_protocol = _local1;
}
public function get locationSWFPath():String{
return (_url);
}
public function get platform():String{
var _local1:String = Capabilities.manufacturer;
return (_local1.split("Adobe ")[1]);
}
public function get operatingSystem():String{
return (Capabilities.os);
}
public function set appName(_arg1:String):void{
_appName = _arg1;
userAgent.applicationProduct = _arg1;
}
function set url(_arg1:String):void{
_url = _arg1;
}
public function get referrer():String{
var _local1:String = _dom.referrer;
if (_local1){
return (_local1);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function isInHTML():Boolean{
return ((Capabilities.playerType == "PlugIn"));
}
public function get language():String{
var _local1:String = _dom.language;
var _local2:String = Capabilities.language;
if (_local1){
if ((((_local1.length > _local2.length)) && ((_local1.substr(0, _local2.length) == _local2)))){
_local2 = _local1;
};
};
return (_local2);
}
public function get domainName():String{
var _local1:String;
var _local2:String;
var _local3:int;
if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){
_local1 = _url.toLowerCase();
if (protocol == Protocols.HTTP){
_local2 = _local1.split("http://").join("");
} else {
if (protocol == Protocols.HTTPS){
_local2 = _local1.split("https://").join("");
};
};
_local3 = _local2.indexOf("/");
if (_local3 > -1){
_local2 = _local2.substring(0, _local3);
};
return (_local2);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function set userAgent(_arg1:UserAgent):void{
_userAgent = _arg1;
}
public function set appVersion(_arg1:Version):void{
_appVersion = _arg1;
userAgent.applicationVersion = _arg1.toString(4);
}
public function get screenHeight():Number{
return (Capabilities.screenResolutionY);
}
public function get locationPath():String{
var _local1:String = _dom.pathname;
if (_local1){
return (_local1);
};
return ("");
}
public function get documentTitle():String{
var _local1:String = _dom.title;
if (_local1){
return (_local1);
};
return ("");
}
public function get appVersion():Version{
return (_appVersion);
}
}
}//package com.google.analytics.utils
Section 179
//Protocols (com.google.analytics.utils.Protocols)
package com.google.analytics.utils {
public class Protocols {
private var _value:int;
private var _name:String;
public static const none:Protocols = new Protocols(0, "none");
;
public static const HTTPS:Protocols = new Protocols(3, "HTTPS");
;
public static const file:Protocols = new Protocols(1, "file");
;
public static const HTTP:Protocols = new Protocols(2, "HTTP");
;
public function Protocols(_arg1:int=0, _arg2:String=""){
_value = _arg1;
_name = _arg2;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.utils
Section 180
//Timespan (com.google.analytics.utils.Timespan)
package com.google.analytics.utils {
public class Timespan {
public static var sixmonths:Number = 15768000;
public static var twoyears:Number = 63072000;
public static var thirtyminutes:Number = 1800;
}
}//package com.google.analytics.utils
Section 181
//URL (com.google.analytics.utils.URL)
package com.google.analytics.utils {
public class URL {
private var _url:String;
public function URL(_arg1:String=""){
_url = _arg1.toLowerCase();
}
public function get domain():String{
var _local1:Array;
if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){
_local1 = hostName.split(".");
switch (_local1.length){
case 2:
return (hostName);
case 3:
if (_local1[1] == "co"){
return (hostName);
};
_local1.shift();
return (_local1.join("."));
case 4:
_local1.shift();
return (_local1.join("."));
};
};
return ("");
}
public function get path():String{
var _local1:String = _url;
if (_local1.indexOf("://") > -1){
_local1 = _local1.split("://")[1];
};
if (_local1.indexOf(hostName) == 0){
_local1 = _local1.substr(hostName.length);
};
if (_local1.indexOf("?") > -1){
_local1 = _local1.split("?")[0];
};
if (_local1.charAt(0) != "/"){
_local1 = ("/" + _local1);
};
return (_local1);
}
public function get protocol():Protocols{
var _local1:String = _url.split("://")[0];
switch (_local1){
case "file":
return (Protocols.file);
case "http":
return (Protocols.HTTP);
case "https":
return (Protocols.HTTPS);
default:
return (Protocols.none);
};
}
public function get hostName():String{
var _local1:String = _url;
if (_local1.indexOf("://") > -1){
_local1 = _local1.split("://")[1];
};
if (_local1.indexOf("/") > -1){
_local1 = _local1.split("/")[0];
};
if (_local1.indexOf("?") > -1){
_local1 = _local1.split("?")[0];
};
if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){
return ("");
};
return (_local1);
}
public function get subDomain():String{
if (((!((domain == ""))) && (!((domain == hostName))))){
return (hostName.split(("." + domain)).join(""));
};
return ("");
}
public function get search():String{
var _local1:String = _url;
if (_local1.indexOf("://") > -1){
_local1 = _local1.split("://")[1];
};
if (_local1.indexOf(hostName) == 0){
_local1 = _local1.substr(hostName.length);
};
if (_local1.indexOf("?") > -1){
_local1 = _local1.split("?")[1];
} else {
_local1 = "";
};
return (_local1);
}
}
}//package com.google.analytics.utils
Section 182
//UserAgent (com.google.analytics.utils.UserAgent)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import flash.system.*;
public class UserAgent {
private var _localInfo:Environment;
private var _applicationProduct:String;
private var _version:Version;
public static var minimal:Boolean = false;
public function UserAgent(_arg1:Environment, _arg2:String="", _arg3:String=""){
_localInfo = _arg1;
applicationProduct = _arg2;
_version = Version.fromString(_arg3);
}
public function get tamarinProductToken():String{
if (UserAgent.minimal){
return ("");
};
if (System.vmVersion){
return (("Tamarin/" + Utils.trim(System.vmVersion, true)));
};
return ("");
}
public function get applicationVersion():String{
return (_version.toString(2));
}
public function get vendorProductToken():String{
var _local1 = "";
if (_localInfo.isAIR()){
_local1 = (_local1 + "AIR");
} else {
_local1 = (_local1 + "FlashPlayer");
};
_local1 = (_local1 + "/");
_local1 = (_local1 + _version.toString(3));
return (_local1);
}
public function toString():String{
var _local1 = "";
_local1 = (_local1 + applicationProductToken);
if (applicationComment != ""){
_local1 = (_local1 + (" " + applicationComment));
};
if (tamarinProductToken != ""){
_local1 = (_local1 + (" " + tamarinProductToken));
};
if (vendorProductToken != ""){
_local1 = (_local1 + (" " + vendorProductToken));
};
return (_local1);
}
public function get applicationComment():String{
var _local1:Array = [];
_local1.push(_localInfo.platform);
_local1.push(_localInfo.playerType);
if (!UserAgent.minimal){
_local1.push(_localInfo.operatingSystem);
_local1.push(_localInfo.language);
};
if (Capabilities.isDebugger){
_local1.push("DEBUG");
};
if (_local1.length > 0){
return ((("(" + _local1.join("; ")) + ")"));
};
return ("");
}
public function set applicationVersion(_arg1:String):void{
_version = Version.fromString(_arg1);
}
public function get applicationProductToken():String{
var _local1:String = applicationProduct;
if (applicationVersion != ""){
_local1 = (_local1 + ("/" + applicationVersion));
};
return (_local1);
}
public function set applicationProduct(_arg1:String):void{
_applicationProduct = _arg1;
}
public function get applicationProduct():String{
return (_applicationProduct);
}
}
}//package com.google.analytics.utils
Section 183
//Variables (com.google.analytics.utils.Variables)
package com.google.analytics.utils {
import flash.net.*;
public dynamic class Variables {
public var post:Array;
public var URIencode:Boolean;
public var pre:Array;
public var sort:Boolean;// = true
public function Variables(_arg1:String=null, _arg2:Array=null, _arg3:Array=null){
pre = [];
post = [];
super();
if (_arg1){
decode(_arg1);
};
if (_arg2){
this.pre = _arg2;
};
if (_arg3){
this.post = _arg3;
};
}
private function _join(_arg1:Variables):void{
var _local2:String;
if (!_arg1){
return;
};
for (_local2 in _arg1) {
this[_local2] = _arg1[_local2];
};
}
public function join(... _args):void{
var _local2:int = _args.length;
var _local3:int;
while (_local3 < _local2) {
if (!(_args[_local3] is Variables)){
} else {
_join(_args[_local3]);
};
_local3++;
};
}
public function toString():String{
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:int;
var _local7:String;
var _local8:String;
var _local1:Array = [];
for (_local3 in this) {
_local2 = this[_local3];
if (URIencode){
_local2 = encodeURI(_local2);
};
_local1.push(((_local3 + "=") + _local2));
};
if (sort){
_local1.sort();
};
if (pre.length > 0){
pre.reverse();
_local5 = 0;
while (_local5 < pre.length) {
_local7 = pre[_local5];
_local6 = 0;
while (_local6 < _local1.length) {
_local4 = _local1[_local6];
if (_local4.indexOf(_local7) == 0){
_local1.unshift(_local1.splice(_local6, 1)[0]);
};
_local6++;
};
_local5++;
};
pre.reverse();
};
if (post.length > 0){
_local5 = 0;
while (_local5 < post.length) {
_local8 = post[_local5];
_local6 = 0;
while (_local6 < _local1.length) {
_local4 = _local1[_local6];
if (_local4.indexOf(_local8) == 0){
_local1.push(_local1.splice(_local6, 1)[0]);
};
_local6++;
};
_local5++;
};
};
return (_local1.join("&"));
}
public function decode(_arg1:String):void{
var _local2:Array;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:Array;
if (_arg1 == ""){
return;
};
if (_arg1.charAt(0) == "?"){
_arg1 = _arg1.substr(1, _arg1.length);
};
if (_arg1.indexOf("&") > -1){
_local2 = _arg1.split("&");
} else {
_local2 = [_arg1];
};
var _local7:int;
while (_local7 < _local2.length) {
_local3 = _local2[_local7];
if (_local3.indexOf("=") > -1){
_local6 = _local3.split("=");
_local4 = _local6[0];
_local5 = decodeURI(_local6[1]);
this[_local4] = _local5;
};
_local7++;
};
}
public function toURLVariables():URLVariables{
var _local2:String;
var _local1:URLVariables = new URLVariables();
for (_local2 in this) {
_local1[_local2] = this[_local2];
};
return (_local1);
}
}
}//package com.google.analytics.utils
Section 184
//Version (com.google.analytics.utils.Version)
package com.google.analytics.utils {
public class Version {
private var _revision:uint;
private var _maxBuild:uint;// = 0xFF
private var _maxMinor:uint;// = 15
private var _maxMajor:uint;// = 15
private var _separator:String;// = "."
private var _maxRevision:uint;// = 0xFFFF
private var _build:uint;
private var _major:uint;
private var _minor:uint;
public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){
var _local5:Version;
super();
if ((((((((_arg1 > _maxMajor)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){
_local5 = Version.fromNumber(_arg1);
_arg1 = _local5.major;
_arg2 = _local5.minor;
_arg3 = _local5.build;
_arg4 = _local5.revision;
};
this.major = _arg1;
this.minor = _arg2;
this.build = _arg3;
this.revision = _arg4;
}
public function toString(_arg1:int=0):String{
var _local2:Array;
if ((((_arg1 <= 0)) || ((_arg1 > 4)))){
_arg1 = getFields();
};
switch (_arg1){
case 1:
_local2 = [major];
break;
case 2:
_local2 = [major, minor];
break;
case 3:
_local2 = [major, minor, build];
break;
case 4:
default:
_local2 = [major, minor, build, revision];
};
return (_local2.join(_separator));
}
public function set revision(_arg1:uint):void{
_revision = Math.min(_arg1, _maxRevision);
}
public function get revision():uint{
return (_revision);
}
public function set build(_arg1:uint):void{
_build = Math.min(_arg1, _maxBuild);
}
public function set minor(_arg1:uint):void{
_minor = Math.min(_arg1, _maxMinor);
}
public function get build():uint{
return (_build);
}
public function set major(_arg1:uint):void{
_major = Math.min(_arg1, _maxMajor);
}
public function get minor():uint{
return (_minor);
}
private function getFields():int{
var _local1 = 4;
if (revision == 0){
_local1--;
};
if ((((_local1 == 3)) && ((build == 0)))){
_local1--;
};
if ((((_local1 == 2)) && ((minor == 0)))){
_local1--;
};
return (_local1);
}
public function valueOf():uint{
return (((((major << 28) | (minor << 24)) | (build << 16)) | revision));
}
public function get major():uint{
return (_major);
}
public function equals(_arg1):Boolean{
if (!(_arg1 is Version)){
return (false);
};
if ((((((((_arg1.major == major)) && ((_arg1.minor == minor)))) && ((_arg1.build == build)))) && ((_arg1.revision == revision)))){
return (true);
};
return (false);
}
public static function fromString(_arg1:String="", _arg2:String="."):Version{
var _local4:Array;
var _local3:Version = new (Version);
if ((((_arg1 == "")) || ((_arg1 == null)))){
return (_local3);
};
if (_arg1.indexOf(_arg2) > -1){
_local4 = _arg1.split(_arg2);
_local3.major = parseInt(_local4[0]);
_local3.minor = parseInt(_local4[1]);
_local3.build = parseInt(_local4[2]);
_local3.revision = parseInt(_local4[3]);
} else {
_local3.major = parseInt(_arg1);
};
return (_local3);
}
public static function fromNumber(_arg1:Number=0):Version{
var _local2:Version = new (Version);
if (((((((((((isNaN(_arg1)) || ((_arg1 == 0)))) || ((_arg1 < 0)))) || ((_arg1 == Number.MAX_VALUE)))) || ((_arg1 == Number.POSITIVE_INFINITY)))) || ((_arg1 == Number.NEGATIVE_INFINITY)))){
return (_local2);
};
_local2.major = (_arg1 >>> 28);
_local2.minor = ((_arg1 & 251658240) >>> 24);
_local2.build = ((_arg1 & 0xFF0000) >>> 16);
_local2.revision = (_arg1 & 0xFFFF);
return (_local2);
}
}
}//package com.google.analytics.utils
Section 185
//Bridge (com.google.analytics.v4.Bridge)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
public class Bridge implements GoogleAnalyticsAPI {
private var _debug:DebugConfiguration;
private var _proxy:JavascriptProxy;
private var _jsContainer:String;// = "_GATracker"
private var _hasGATracker:Boolean;// = false
private var _account:String;
private static var _linkTrackingObject_js:XML = <script>
<![CDATA[
function( container , target )
{
var targets ;
var name ;
if( target.indexOf(".") > 0 )
{
targets = target.split(".");
name = targets.pop();
}
else
{
targets = [];
name = target;
}
var ref = window;
var depth = targets.length;
for( var j = 0 ; j < depth ; j++ )
{
ref = ref[ targets[j] ] ;
}
window[container][target] = ref[name] ;
}
]]>
</script>
;
private static var _createTrackingObject_js:XML = <script>
<![CDATA[
function( acct )
{
_GATracker[acct] = _gat._getTracker(acct);
}
]]>
</script>
;
private static var _injectTrackingObject_js:XML = <script>
<![CDATA[
function()
{
try
{
_GATracker
}
catch(e)
{
_GATracker = {};
}
}
]]>
</script>
;
private static var _checkGAJS_js:XML = <script>
<![CDATA[
function()
{
if( _gat && _gat._getTracker )
{
return true;
}
return false;
}
]]>
</script>
;
private static var _checkValidTrackingObject_js:XML = <script>
<![CDATA[
function(acct)
{
if( _GATracker[acct] && (_GATracker[acct]._getAccount) )
{
return true ;
}
else
{
return false;
}
}
]]>
</script>
;
public function Bridge(_arg1:String, _arg2:DebugConfiguration, _arg3:JavascriptProxy){
var _local4:String;
var _local5:String;
var _local6:String;
super();
_account = _arg1;
_debug = _arg2;
_proxy = _arg3;
if (!_checkGAJS()){
_local4 = "";
_local4 = (_local4 + "ga.js not found, be sure to check if\n");
_local4 = (_local4 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n");
_local4 = (_local4 + "is included in the HTML.");
_debug.warning(_local4);
throw (new Error(_local4));
};
if (!_hasGATracker){
if (((_debug.javascript) && (_debug.verbose))){
_local5 = "";
_local5 = (_local5 + "The Google Analytics tracking code was not found on the container page\n");
_local5 = (_local5 + "we create it");
_debug.info(_local5, VisualDebugMode.advanced);
};
_injectTrackingObject();
};
if (Utils.validateAccount(_arg1)){
_createTrackingObject(_arg1);
} else {
if (_checkTrackingObject(_arg1)){
_linkTrackingObject(_arg1);
} else {
_local6 = "";
_local6 = (_local6 + (("JS Object \"" + _arg1) + "\" doesn't exist in DOM\n"));
_local6 = (_local6 + "Bridge object not created.");
_debug.warning(_local6);
throw (new Error(_local6));
};
};
}
public function link(_arg1:String, _arg2:Boolean=false):void{
_debug.info((((("link( " + _arg1) + ", ") + _arg2) + " )"));
_call("_link", _arg1, _arg2);
}
public function addOrganic(_arg1:String, _arg2:String):void{
_debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )"));
_call("_addOrganic", _arg1);
}
public function setAllowLinker(_arg1:Boolean):void{
_debug.info((("setAllowLinker( " + _arg1) + " )"));
_call("_setAllowLinker", _arg1);
}
public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{
_debug.info((((("getLinkerUrl(" + _arg1) + ", ") + _arg2) + ")"));
return (_call("_getLinkerUrl", _arg1, _arg2));
}
private function _linkTrackingObject(_arg1:String):void{
_proxy.call(_linkTrackingObject_js, _jsContainer, _arg1);
}
public function setClientInfo(_arg1:Boolean):void{
_debug.info((("setClientInfo( " + _arg1) + " )"));
_call("_setClientInfo", _arg1);
}
public function trackTrans():void{
_debug.info("trackTrans()");
_call("_trackTrans");
}
public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{
var _local5 = 2;
if (((_arg3) && (!((_arg3 == ""))))){
_local5 = 3;
};
if ((((_local5 == 3)) && (!(isNaN(_arg4))))){
_local5 = 4;
};
switch (_local5){
case 4:
_debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )"));
return (_call("_trackEvent", _arg1, _arg2, _arg3, _arg4));
case 3:
_debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )"));
return (_call("_trackEvent", _arg1, _arg2, _arg3));
case 2:
default:
_debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )"));
return (_call("_trackEvent", _arg1, _arg2));
};
}
public function setCookieTimeout(_arg1:int):void{
_debug.info((("setCookieTimeout( " + _arg1) + " )"));
_call("_setCookieTimeout", _arg1);
}
public function trackPageview(_arg1:String=""):void{
_debug.info((("trackPageview( " + _arg1) + " )"));
_call("_trackPageview", _arg1);
}
private function _checkValidTrackingObject(_arg1:String):Boolean{
return (_proxy.call(_checkValidTrackingObject_js, _arg1));
}
private function _checkGAJS():Boolean{
return (_proxy.call(_checkGAJS_js));
}
public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{
_debug.warning((((("linkByPost( " + _arg1) + ", ") + _arg2) + " ) not implemented"));
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_call("_getClientInfo"));
}
private function _call(_arg1:String, ... _args){
_args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + _arg1));
return (_proxy.call.apply(_proxy, _args));
}
public function hasGAJS():Boolean{
return (_checkGAJS());
}
private function _checkTrackingObject(_arg1:String):Boolean{
var _local2:Boolean = _proxy.hasProperty(_arg1);
var _local3:Boolean = _proxy.hasProperty((_arg1 + "._getAccount"));
return (((_local2) && (_local3)));
}
public function resetSession():void{
_debug.warning("resetSession() not implemented");
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_call("_getDetectTitle"));
}
public function setCampNameKey(_arg1:String):void{
_debug.info((("setCampNameKey( " + _arg1) + " )"));
_call("_setCampNameKey", _arg1);
}
public function setDetectFlash(_arg1:Boolean):void{
_debug.info((("setDetectFlash( " + _arg1) + " )"));
_call("_setDetectFlash", _arg1);
}
public function createEventTracker(_arg1:String):EventTracker{
_debug.info((("createEventTracker( " + _arg1) + " )"));
return (new EventTracker(_arg1, this));
}
public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{
_debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )"));
_call("_addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_call("_clearIgnoreOrganic");
}
public function setVar(_arg1:String):void{
_debug.info((("setVar( " + _arg1) + " )"));
_call("_setVar", _arg1);
}
public function setDomainName(_arg1:String):void{
_debug.info((("setDomainName( " + _arg1) + " )"));
_call("_setDomainName", _arg1);
}
public function hasTrackingAccount(_arg1:String):Boolean{
if (Utils.validateAccount(_arg1)){
return (_checkValidTrackingObject(_arg1));
};
return (_checkTrackingObject(_arg1));
}
public function setCampSourceKey(_arg1:String):void{
_debug.info((("setCampSourceKey( " + _arg1) + " )"));
_call("_setCampSourceKey", _arg1);
}
public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{
_debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )"));
_call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setCampContentKey(_arg1:String):void{
_debug.info((("setCampContentKey( " + _arg1) + " )"));
_call("_setCampContentKey", _arg1);
}
public function setLocalServerMode():void{
_debug.info("setLocalServerMode()");
_call("_setLocalServerMode");
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_call("_getLocalGifPath"));
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_call("_clearIgnoreRef");
}
public function setAllowAnchor(_arg1:Boolean):void{
_debug.info((("setAllowAnchor( " + _arg1) + " )"));
_call("_setAllowAnchor", _arg1);
}
public function setLocalGifPath(_arg1:String):void{
_debug.info((("setLocalGifPath( " + _arg1) + " )"));
_call("_setLocalGifPath", _arg1);
}
public function getVersion():String{
_debug.info("getVersion()");
return (_call("_getVersion"));
}
private function _injectTrackingObject():void{
_proxy.executeBlock(_injectTrackingObject_js);
_hasGATracker = true;
}
public function setCookiePath(_arg1:String):void{
_debug.info((("setCookiePath( " + _arg1) + " )"));
_call("_setCookiePath", _arg1);
}
public function setSampleRate(_arg1:Number):void{
_debug.info((("setSampleRate( " + _arg1) + " )"));
_call("_setSampleRate", _arg1);
}
public function setAllowHash(_arg1:Boolean):void{
_debug.info((("setAllowHash( " + _arg1) + " )"));
_call("_setAllowHash", _arg1);
}
public function addIgnoredOrganic(_arg1:String):void{
_debug.info((("addIgnoredOrganic( " + _arg1) + " )"));
_call("_addIgnoredOrganic", _arg1);
}
public function setCampNOKey(_arg1:String):void{
_debug.info((("setCampNOKey( " + _arg1) + " )"));
_call("_setCampNOKey", _arg1);
}
public function cookiePathCopy(_arg1:String):void{
_debug.info((("cookiePathCopy( " + _arg1) + " )"));
_call("_cookiePathCopy", _arg1);
}
public function setLocalRemoteServerMode():void{
_debug.info("setLocalRemoteServerMode()");
_call("_setLocalRemoteServerMode");
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_call("_getServiceMode"));
}
public function setDetectTitle(_arg1:Boolean):void{
_debug.info((("setDetectTitle( " + _arg1) + " )"));
_call("_setDetectTitle", _arg1);
}
private function _createTrackingObject(_arg1:String):void{
_proxy.call(_createTrackingObject_js, _arg1);
}
public function setCampaignTrack(_arg1:Boolean):void{
_debug.info((("setCampaignTrack( " + _arg1) + " )"));
_call("_setCampaignTrack", _arg1);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_call("_clearOrganic");
}
public function setCampTermKey(_arg1:String):void{
_debug.info((("setCampTermKey( " + _arg1) + " )"));
_call("_setCampTermKey", _arg1);
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_call("_getDetectFlash"));
}
public function setCampMediumKey(_arg1:String):void{
_debug.info((("setCampMediumKey( " + _arg1) + " )"));
_call("_setCampMediumKey", _arg1);
}
public function addIgnoredRef(_arg1:String):void{
_debug.info((("addIgnoredRef( " + _arg1) + " )"));
_call("_addIgnoredRef", _arg1);
}
public function setSessionTimeout(_arg1:int):void{
_debug.info((("setSessionTimeout( " + _arg1) + " )"));
_call("_setSessionTimeout", _arg1);
}
public function setRemoteServerMode():void{
_debug.info("setRemoteServerMode()");
_call("_setRemoteServerMode");
}
public function getAccount():String{
_debug.info("getAccount()");
return (_call("_getAccount"));
}
}
}//package com.google.analytics.v4
Section 186
//Configuration (com.google.analytics.v4.Configuration)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.campaign.*;
public class Configuration {
public var serverMode:ServerOperationMode;
public var detectFlash:Boolean;// = true
public var hasSiteOverlay:Boolean;// = false
public var allowLocalTracking:Boolean;// = true
public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif"
private var _version:String;// = "4.3as"
public var allowDomainHash:Boolean;// = true
public var detectClientInfo:Boolean;// = true
public var idleLoop:Number;// = 30
public var isTrackOutboundSubdomains:Boolean;// = false
public var cookiePath:String;// = "/"
public var transactionFieldDelim:String;// = "|"
private var _organic:Organic;
private var _cookieName:String;// = "analytics"
public var campaignKey:CampaignKey;
public var google:String;// = "google"
public var googleCsePath:String;// = "cse"
public var bucketCapacity:Number;// = 10
private var _sampleRate:Number;// = 1
public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif"
public var googleSearchParam:String;// = "q"
public var allowLinker:Boolean;// = false
public var maxOutboundLinkExamined:Number;// = 1000
private var _debug:DebugConfiguration;
public var allowAnchor:Boolean;// = false
private var _domain:Domain;
private var _trackingLimitPerSession:int;// = 500
public var tokenCliff:int;// = 10
public var sessionTimeout:Number;
public var idleTimeout:Number;// = 60
public var campaignTracking:Boolean;// = true
public var domainName:String;// = ""
public var detectTitle:Boolean;// = true
public var tokenRate:Number;// = 0.2
public var conversionTimeout:Number;
public var localGIFpath:String;// = "/__utm.gif"
public function Configuration(_arg1:DebugConfiguration=null){
_organic = new Organic();
conversionTimeout = Timespan.sixmonths;
sessionTimeout = Timespan.thirtyminutes;
campaignKey = new CampaignKey();
serverMode = ServerOperationMode.remote;
super();
_debug = _arg1;
_domain = new Domain(DomainNameMode.auto, "", _debug);
serverMode = ServerOperationMode.remote;
_initOrganicSources();
}
public function get organic():Organic{
return (_organic);
}
public function get cookieName():String{
return (_cookieName);
}
public function get trackingLimitPerSession():int{
return (_trackingLimitPerSession);
}
private function _initOrganicSources():void{
addOrganicSource(google, googleSearchParam);
addOrganicSource("yahoo", "p");
addOrganicSource("msn", "q");
addOrganicSource("aol", "query");
addOrganicSource("aol", "encquery");
addOrganicSource("lycos", "query");
addOrganicSource("ask", "q");
addOrganicSource("altavista", "q");
addOrganicSource("netscape", "query");
addOrganicSource("cnn", "query");
addOrganicSource("looksmart", "qt");
addOrganicSource("about", "terms");
addOrganicSource("mamma", "query");
addOrganicSource("alltheweb", "q");
addOrganicSource("gigablast", "q");
addOrganicSource("voila", "rdata");
addOrganicSource("virgilio", "qs");
addOrganicSource("live", "q");
addOrganicSource("baidu", "wd");
addOrganicSource("alice", "qs");
addOrganicSource("yandex", "text");
addOrganicSource("najdi", "q");
addOrganicSource("aol", "q");
addOrganicSource("club-internet", "q");
addOrganicSource("mama", "query");
addOrganicSource("seznam", "q");
addOrganicSource("search", "q");
addOrganicSource("wp", "szukaj");
addOrganicSource("onet", "qt");
addOrganicSource("netsprint", "q");
addOrganicSource("google.interia", "q");
addOrganicSource("szukacz", "q");
addOrganicSource("yam", "k");
addOrganicSource("pchome", "q");
addOrganicSource("kvasir", "searchExpr");
addOrganicSource("sesam", "q");
addOrganicSource("ozu", "q");
addOrganicSource("terra", "query");
addOrganicSource("nostrum", "query");
addOrganicSource("mynet", "q");
addOrganicSource("ekolay", "q");
addOrganicSource("search.ilse", "search_for");
}
public function get sampleRate():Number{
return (_sampleRate);
}
public function addOrganicSource(_arg1:String, _arg2:String):void{
var engine = _arg1;
var keyword = _arg2;
try {
_organic.addSource(engine, keyword);
} catch(e:Error) {
if (((_debug) && (_debug.active))){
_debug.warning(e.message);
};
};
}
public function get domain():Domain{
return (_domain);
}
public function set sampleRate(_arg1:Number):void{
if (_arg1 <= 0){
_arg1 = 0.1;
};
if (_arg1 > 1){
_arg1 = 1;
};
_arg1 = Number(_arg1.toFixed(2));
_sampleRate = _arg1;
}
public function get version():String{
return (_version);
}
}
}//package com.google.analytics.v4
Section 187
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
public interface GoogleAnalyticsAPI {
function setCampSourceKey(_arg1:String):void;
function setDetectTitle(_arg1:Boolean):void;
function setLocalRemoteServerMode():void;
function resetSession():void;
function setLocalServerMode():void;
function setCampContentKey(_arg1:String):void;
function addOrganic(_arg1:String, _arg2:String):void;
function setDetectFlash(_arg1:Boolean):void;
function setAllowLinker(_arg1:Boolean):void;
function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean;
function setCampTermKey(_arg1:String):void;
function setCampNameKey(_arg1:String):void;
function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String;
function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void;
function clearIgnoredRef():void;
function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void;
function getDetectFlash():Boolean;
function setCampaignTrack(_arg1:Boolean):void;
function createEventTracker(_arg1:String):EventTracker;
function setCookieTimeout(_arg1:int):void;
function setAllowAnchor(_arg1:Boolean):void;
function trackTrans():void;
function clearOrganic():void;
function trackPageview(_arg1:String=""):void;
function setLocalGifPath(_arg1:String):void;
function getVersion():String;
function getLocalGifPath():String;
function getServiceMode():ServerOperationMode;
function setVar(_arg1:String):void;
function clearIgnoredOrganic():void;
function setCampMediumKey(_arg1:String):void;
function addIgnoredRef(_arg1:String):void;
function setClientInfo(_arg1:Boolean):void;
function setCookiePath(_arg1:String):void;
function setSampleRate(_arg1:Number):void;
function setSessionTimeout(_arg1:int):void;
function setRemoteServerMode():void;
function setDomainName(_arg1:String):void;
function addIgnoredOrganic(_arg1:String):void;
function setAllowHash(_arg1:Boolean):void;
function getAccount():String;
function linkByPost(_arg1:Object, _arg2:Boolean=false):void;
function link(_arg1:String, _arg2:Boolean=false):void;
function setCampNOKey(_arg1:String):void;
function getClientInfo():Boolean;
function cookiePathCopy(_arg1:String):void;
function getDetectTitle():Boolean;
}
}//package com.google.analytics.v4
Section 188
//Tracker (com.google.analytics.v4.Tracker)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import flash.net.*;
import com.google.analytics.data.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.ecommerce.*;
import com.google.analytics.campaign.*;
public class Tracker implements GoogleAnalyticsAPI {
private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3;
private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1;
private const EVENT_TRACKER_PROJECT_ID:int = 5;
private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1;
private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2;
private var _adSense:AdSenseGlobals;
private var _eventTracker:X10;
private var _noSessionInformation:Boolean;// = false
private var _browserInfo:BrowserInfo;
private var _debug:DebugConfiguration;
private var _isNewVisitor:Boolean;// = false
private var _buffer:Buffer;
private var _config:Configuration;
private var _x10Module:X10;
private var _campaign:CampaignManager;
private var _formatedReferrer:String;
private var _timeStamp:Number;
private var _info:Environment;
private var _domainHash:Number;
private var _campaignInfo:CampaignInfo;
private var _gifRequest:GIFRequest;
private var _hasInitData:Boolean;// = false
private var _ecom:Ecommerce;
private var _account:String;
public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals, _arg8:Ecommerce){
var _local9:String;
super();
_account = _arg1;
_config = _arg2;
_debug = _arg3;
_info = _arg4;
_buffer = _arg5;
_gifRequest = _arg6;
_adSense = _arg7;
_ecom = _arg8;
if (!Utils.validateAccount(_arg1)){
_local9 = (("Account \"" + _arg1) + "\" is not valid.");
_debug.warning(_local9);
throw (new Error(_local9));
};
}
private function _doTracking():Boolean{
if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){
return (true);
};
if (_config.allowLocalTracking){
return (true);
};
return (false);
}
public function addOrganic(_arg1:String, _arg2:String):void{
_debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )"));
_config.organic.addSource(_arg1, _arg2);
}
public function setAllowLinker(_arg1:Boolean):void{
_config.allowLinker = _arg1;
_debug.info((("setAllowLinker( " + _config.allowLinker) + " )"));
}
public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{
_initData();
_debug.info((((("getLinkerUrl( " + _arg1) + ", ") + _arg2.toString()) + " )"));
return (_buffer.getLinkerUrl(_arg1, _arg2));
}
public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{
_initData();
var _local5:Boolean;
var _local6 = 2;
if (((!((_arg1 == ""))) && (!((_arg2 == ""))))){
_eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID);
_eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID);
_local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, _arg1);
_local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, _arg2);
if (((_arg3) && (!((_arg3 == ""))))){
_local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, _arg3);
_local6 = 3;
if (!isNaN(_arg4)){
_local5 = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, _arg4);
_local6 = 4;
};
};
if (_local5){
_debug.info(((("valid event tracking call\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek);
_sendXEvent(_eventTracker);
};
} else {
_debug.warning(((("event tracking call is not valid, failed!\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek);
_local5 = false;
};
switch (_local6){
case 4:
_debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )"));
break;
case 3:
_debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )"));
break;
case 2:
default:
_debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )"));
};
return (_local5);
}
public function trackPageview(_arg1:String=""):void{
_debug.info((("trackPageview( " + _arg1) + " )"));
if (_doTracking()){
_initData();
_trackMetrics(_arg1);
_noSessionInformation = false;
} else {
_debug.warning((("trackPageview( " + _arg1) + " ) failed"));
};
}
public function setCookieTimeout(_arg1:int):void{
_config.conversionTimeout = _arg1;
_debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )"));
}
public function trackTrans():void{
var _local1:Number;
var _local2:Number;
var _local4:Transaction;
_initData();
var _local3:Array = new Array();
if (_takeSample()){
_local1 = 0;
while (_local1 < _ecom.getTransLength()) {
_local4 = _ecom.getTransFromArray(_local1);
_local3.push(_local4.toGifParams());
_local2 = 0;
while (_local2 < _local4.getItemsLength()) {
_local3.push(_local4.getItemFromArray(_local2).toGifParams());
_local2++;
};
_local1++;
};
_local1 = 0;
while (_local1 < _local3.length) {
_gifRequest.send(_account, _local3[_local1]);
_local1++;
};
};
}
public function setClientInfo(_arg1:Boolean):void{
_config.detectClientInfo = _arg1;
_debug.info((("setClientInfo( " + _config.detectClientInfo) + " )"));
}
public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{
_debug.warning("linkByPost not implemented in AS3 mode");
}
private function _initData():void{
var _local1:String;
var _local2:String;
if (!_hasInitData){
_updateDomainName();
_domainHash = _getDomainHash();
_timeStamp = Math.round((new Date().getTime() / 1000));
if (_debug.verbose){
_local1 = "";
_local1 = (_local1 + "_initData 0");
_local1 = (_local1 + ("\ndomain name: " + _config.domainName));
_local1 = (_local1 + ("\ndomain hash: " + _domainHash));
_local1 = (_local1 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")"));
_debug.info(_local1, VisualDebugMode.geek);
};
};
if (_doTracking()){
_handleCookie();
};
if (!_hasInitData){
if (_doTracking()){
_formatedReferrer = _formatReferrer();
_browserInfo = new BrowserInfo(_config, _info);
_debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced);
if (_config.campaignTracking){
_campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp);
_campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation);
_debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced);
_debug.info(("Search: " + _info.locationSearch));
_debug.info(("CampaignTrackig: " + _buffer.utmz.campaignTracking));
};
};
_x10Module = new X10();
_eventTracker = new X10();
_hasInitData = true;
};
if (_config.hasSiteOverlay){
_debug.warning("Site Overlay is not supported");
};
if (_debug.verbose){
_local2 = "";
_local2 = (_local2 + "_initData (misc)");
_local2 = (_local2 + ("\nflash version: " + _info.flashVersion.toString(4)));
_local2 = (_local2 + ("\nprotocol: " + _info.protocol));
_local2 = (_local2 + (("\ndefault domain name (auto): \"" + _info.domainName) + "\""));
_local2 = (_local2 + ("\nlanguage: " + _info.language));
_local2 = (_local2 + ("\ndomain hash: " + _getDomainHash()));
_local2 = (_local2 + ("\nuser-agent: " + _info.userAgent));
_debug.info(_local2, VisualDebugMode.geek);
};
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_config.detectTitle);
}
public function resetSession():void{
_debug.info("resetSession()");
_buffer.resetCurrentSession();
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_config.detectClientInfo);
}
private function _sendXEvent(_arg1:X10=null):void{
var _local2:Variables;
var _local3:EventInfo;
var _local4:Variables;
var _local5:Variables;
if (_takeSample()){
_local2 = new Variables();
_local2.URIencode = true;
_local3 = new EventInfo(true, _x10Module, _arg1);
_local4 = _local3.toVariables();
_local5 = _renderMetricsSearchVariables();
_local2.join(_local4, _local5);
_gifRequest.send(_account, _local2, false, true);
};
}
public function setDetectFlash(_arg1:Boolean):void{
_config.detectFlash = _arg1;
_debug.info((("setDetectFlash( " + _config.detectFlash) + " )"));
}
public function setCampNameKey(_arg1:String):void{
_config.campaignKey.UCCN = _arg1;
var _local2 = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCCN]"));
} else {
_debug.info(_local2);
};
}
private function _formatReferrer():String{
var _local2:String;
var _local3:URL;
var _local4:URL;
var _local1:String = _info.referrer;
if ((((_local1 == "")) || ((_local1 == "localhost")))){
_local1 = "-";
} else {
_local2 = _info.domainName;
_local3 = new URL(_local1);
_local4 = new URL(("http://" + _local2));
if (_local3.hostName == _local2){
return ("-");
};
if (_local4.domain == _local3.domain){
if (_local4.subDomain != _local3.subDomain){
_local1 = "0";
};
};
if ((((_local1.charAt(0) == "[")) && (_local1.charAt((_local1.length - 1))))){
_local1 = "-";
};
};
_debug.info(("formated referrer: " + _local1), VisualDebugMode.advanced);
return (_local1);
}
private function _visitCode():Number{
if (_debug.verbose){
_debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek);
};
return (_buffer.utma.sessionId);
}
public function createEventTracker(_arg1:String):EventTracker{
_debug.info((("createEventTracker( " + _arg1) + " )"));
return (new EventTracker(_arg1, this));
}
public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{
var _local7:Transaction;
_local7 = _ecom.getTransaction(_arg1);
if (_local7 == null){
_local7 = _ecom.addTransaction(_arg1, "", "", "", "", "", "", "");
};
_local7.addItem(_arg2, _arg3, _arg4, _arg5.toString(), _arg6.toString());
if (_debug.active){
_debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )"));
};
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_config.organic.clearIgnoredKeywords();
}
public function setVar(_arg1:String):void{
var _local2:Variables;
if (((!((_arg1 == ""))) && (_isNotGoogleSearch()))){
_initData();
_buffer.utmv.domainHash = _domainHash;
_buffer.utmv.value = encodeURI(_arg1);
if (_debug.verbose){
_debug.info(_buffer.utmv.toString(), VisualDebugMode.geek);
};
_debug.info((("setVar( " + _arg1) + " )"));
if (_takeSample()){
_local2 = new Variables();
_local2.utmt = "var";
_gifRequest.send(_account, _local2);
};
} else {
_debug.warning((("setVar \"" + _arg1) + "\" is ignored"));
};
}
public function setDomainName(_arg1:String):void{
if (_arg1 == "auto"){
_config.domain.mode = DomainNameMode.auto;
} else {
if (_arg1 == "none"){
_config.domain.mode = DomainNameMode.none;
} else {
_config.domain.mode = DomainNameMode.custom;
_config.domain.name = _arg1;
};
};
_updateDomainName();
_debug.info((("setDomainName( " + _config.domainName) + " )"));
}
private function _updateDomainName():void{
var _local1:String;
if (_config.domain.mode == DomainNameMode.auto){
_local1 = _info.domainName;
if (_local1.substring(0, 4) == "www."){
_local1 = _local1.substring(4);
};
_config.domain.name = _local1;
};
_config.domainName = _config.domain.name.toLowerCase();
_debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced);
}
public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{
_ecom.addTransaction(_arg1, _arg2, _arg3.toString(), _arg4.toString(), _arg5.toString(), _arg6, _arg7, _arg8);
if (_debug.active){
_debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " );"));
};
}
private function _renderMetricsSearchVariables(_arg1:String=""):Variables{
var _local4:Variables;
var _local2:Variables = new Variables();
_local2.URIencode = true;
var _local3:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, _arg1, _adSense);
_debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek);
if (_config.campaignTracking){
_local4 = _campaignInfo.toVariables();
};
var _local5:Variables = _browserInfo.toVariables();
_local2.join(_local3.toVariables(), _local5, _local4);
return (_local2);
}
public function setCampContentKey(_arg1:String):void{
_config.campaignKey.UCCT = _arg1;
var _local2 = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCCT]"));
} else {
_debug.info(_local2);
};
}
private function _handleCookie():void{
var _local1:String;
var _local2:String;
var _local3:Array;
var _local4:String;
if (_config.allowLinker){
};
_buffer.createSO();
if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){
if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){
_buffer.updateUTMA(_timeStamp);
_noSessionInformation = true;
};
if (_debug.verbose){
_debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek);
};
} else {
_debug.info("create a new utma", VisualDebugMode.advanced);
_buffer.utma.domainHash = _domainHash;
_buffer.utma.sessionId = _getUniqueSessionId();
_buffer.utma.firstTime = _timeStamp;
_buffer.utma.lastTime = _timeStamp;
_buffer.utma.currentTime = _timeStamp;
_buffer.utma.sessionCount = 1;
if (_debug.verbose){
_debug.info(_buffer.utma.toString(), VisualDebugMode.geek);
};
_noSessionInformation = true;
_isNewVisitor = true;
};
if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){
if (_adSense.sid){
_buffer.utma.currentTime = Number(_adSense.sid);
if (_debug.verbose){
_local1 = "";
_local1 = (_local1 + "AdSense sid found\n");
_local1 = (_local1 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(_local1, VisualDebugMode.geek);
};
};
if (_isNewVisitor){
if (_adSense.sid){
_buffer.utma.lastTime = Number(_adSense.sid);
if (_debug.verbose){
_local2 = "";
_local2 = (_local2 + "AdSense sid found (new visitor)\n");
_local2 = (_local2 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(_local2, VisualDebugMode.geek);
};
};
if (_adSense.vid){
_local3 = _adSense.vid.split(".");
_buffer.utma.sessionId = Number(_local3[0]);
_buffer.utma.firstTime = Number(_local3[1]);
if (_debug.verbose){
_local4 = "";
_local4 = (_local4 + "AdSense vid found (new visitor)\n");
_local4 = (_local4 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(_local3[0])) + ")\n"));
_local4 = (_local4 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(_local3[1])) + ")"));
_debug.info(_local4, VisualDebugMode.geek);
};
};
if (_debug.verbose){
_debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek);
};
};
};
_buffer.utmb.domainHash = _domainHash;
if (isNaN(_buffer.utmb.trackCount)){
_buffer.utmb.trackCount = 0;
};
if (isNaN(_buffer.utmb.token)){
_buffer.utmb.token = _config.tokenCliff;
};
if (isNaN(_buffer.utmb.lastTime)){
_buffer.utmb.lastTime = _buffer.utma.currentTime;
};
_buffer.utmc.domainHash = _domainHash;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced);
};
}
public function setLocalServerMode():void{
_config.serverMode = ServerOperationMode.local;
_debug.info("setLocalServerMode()");
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_config.organic.clearIgnoredReferrals();
}
public function setCampSourceKey(_arg1:String):void{
_config.campaignKey.UCSR = _arg1;
var _local2 = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCSR]"));
} else {
_debug.info(_local2);
};
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_config.localGIFpath);
}
public function setLocalGifPath(_arg1:String):void{
_config.localGIFpath = _arg1;
_debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )"));
}
public function getVersion():String{
_debug.info("getVersion()");
return (_config.version);
}
public function setAllowAnchor(_arg1:Boolean):void{
_config.allowAnchor = _arg1;
_debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )"));
}
private function _isNotGoogleSearch():Boolean{
var _local1:String = _config.domainName;
var _local2 = (_local1.indexOf("www.google.") < 0);
var _local3 = (_local1.indexOf(".google.") < 0);
var _local4 = (_local1.indexOf("google.") < 0);
var _local5 = (_local1.indexOf("google.org") > -1);
return (((((((((_local2) || (_local3))) || (_local4))) || (!((_config.cookiePath == "/"))))) || (_local5)));
}
public function setSampleRate(_arg1:Number):void{
if (_arg1 < 0){
_debug.warning("sample rate can not be negative, ignoring value.");
} else {
_config.sampleRate = _arg1;
};
_debug.info((("setSampleRate( " + _config.sampleRate) + " )"));
}
private function _takeSample():Boolean{
if (_debug.verbose){
_debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek);
};
return (((_visitCode() % 10000) < (_config.sampleRate * 10000)));
}
public function setCookiePath(_arg1:String):void{
_config.cookiePath = _arg1;
_debug.info((("setCookiePath( " + _config.cookiePath) + " )"));
}
public function setAllowHash(_arg1:Boolean):void{
_config.allowDomainHash = _arg1;
_debug.info((("setAllowHash( " + _config.allowDomainHash) + " )"));
}
private function _generateUserDataHash():Number{
var _local1 = "";
_local1 = (_local1 + _info.appName);
_local1 = (_local1 + _info.appVersion);
_local1 = (_local1 + _info.language);
_local1 = (_local1 + _info.platform);
_local1 = (_local1 + _info.userAgent.toString());
_local1 = (_local1 + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth));
_local1 = (_local1 + _info.referrer);
return (Utils.generateHash(_local1));
}
public function setCampNOKey(_arg1:String):void{
_config.campaignKey.UCNO = _arg1;
var _local2 = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCNO]"));
} else {
_debug.info(_local2);
};
}
public function addIgnoredOrganic(_arg1:String):void{
_debug.info((("addIgnoredOrganic( " + _arg1) + " )"));
_config.organic.addIgnoredKeyword(_arg1);
}
public function setLocalRemoteServerMode():void{
_config.serverMode = ServerOperationMode.both;
_debug.info("setLocalRemoteServerMode()");
}
public function cookiePathCopy(_arg1:String):void{
_debug.warning((("cookiePathCopy( " + _arg1) + " ) not implemented"));
}
public function setDetectTitle(_arg1:Boolean):void{
_config.detectTitle = _arg1;
_debug.info((("setDetectTitle( " + _config.detectTitle) + " )"));
}
public function setCampTermKey(_arg1:String):void{
_config.campaignKey.UCTR = _arg1;
var _local2 = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCTR]"));
} else {
_debug.info(_local2);
};
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_config.serverMode);
}
private function _trackMetrics(_arg1:String=""):void{
var _local2:Variables;
var _local3:Variables;
var _local4:Variables;
var _local5:EventInfo;
if (_takeSample()){
_local2 = new Variables();
_local2.URIencode = true;
if (((_x10Module) && (_x10Module.hasData()))){
_local5 = new EventInfo(false, _x10Module);
_local3 = _local5.toVariables();
};
_local4 = _renderMetricsSearchVariables(_arg1);
_local2.join(_local3, _local4);
_gifRequest.send(_account, _local2);
};
}
public function setCampaignTrack(_arg1:Boolean):void{
_config.campaignTracking = _arg1;
_debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )"));
}
public function addIgnoredRef(_arg1:String):void{
_debug.info((("addIgnoredRef( " + _arg1) + " )"));
_config.organic.addIgnoredReferral(_arg1);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_config.organic.clearEngines();
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_config.detectFlash);
}
public function setCampMediumKey(_arg1:String):void{
_config.campaignKey.UCMD = _arg1;
var _local2 = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCMD]"));
} else {
_debug.info(_local2);
};
}
private function _getUniqueSessionId():Number{
var _local1:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647);
_debug.info(("Session ID: " + _local1), VisualDebugMode.geek);
return (_local1);
}
private function _getDomainHash():Number{
if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){
_config.domainName = "";
return (1);
};
_updateDomainName();
if (_config.allowDomainHash){
return (Utils.generateHash(_config.domainName));
};
return (1);
}
public function setSessionTimeout(_arg1:int):void{
_config.sessionTimeout = _arg1;
_debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )"));
}
public function getAccount():String{
_debug.info("getAccount()");
return (_account);
}
public function link(_arg1:String, _arg2:Boolean=false):void{
var targetUrl = _arg1;
var useHash = _arg2;
_initData();
var out:String = _buffer.getLinkerUrl(targetUrl, useHash);
var request:URLRequest = new URLRequest(out);
_debug.info((("link( " + [targetUrl, useHash].join(",")) + " )"));
try {
navigateToURL(request, "_top");
} catch(e:Error) {
_debug.warning(("An error occured in link() msg: " + e.message));
};
}
public function setRemoteServerMode():void{
_config.serverMode = ServerOperationMode.remote;
_debug.info("setRemoteServerMode()");
}
}
}//package com.google.analytics.v4
Section 189
//AnalyticsTracker (com.google.analytics.AnalyticsTracker)
package com.google.analytics {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher {
function set account(_arg1:String):void;
function get config():Configuration;
function get mode():String;
function set config(_arg1:Configuration):void;
function set mode(_arg1:String):void;
function set debug(_arg1:DebugConfiguration):void;
function get visualDebug():Boolean;
function get account():String;
function set visualDebug(_arg1:Boolean):void;
function isReady():Boolean;
function get debug():DebugConfiguration;
}
}//package com.google.analytics
Section 190
//API (com.google.analytics.API)
package com.google.analytics {
import com.google.analytics.utils.*;
public class API {
public static var version:Version = new Version();
version.major = 1;
version.minor = 0;
version.build = 1;
version.revision = "$Rev: 319 $ ".split(" ")[1];
}
}//package com.google.analytics
Section 191
//GATracker (com.google.analytics.GATracker)
package com.google.analytics {
import flash.events.*;
import flash.display.*;
import com.google.analytics.core.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.events.*;
public class GATracker implements AnalyticsTracker {
private var _adSense:AdSenseGlobals;
private var _env:Environment;
private var _visualDebug:Boolean;
private var _idleTimer:IdleTimer;
private var _debug:DebugConfiguration;
private var _buffer:Buffer;
private var _config:Configuration;
private var _mode:String;
private var _display:DisplayObject;
private var _jsproxy:JavascriptProxy;
private var _dom:HTMLDOM;
private var _eventDispatcher:EventDispatcher;
private var _ready:Boolean;// = false
private var _gifRequest:GIFRequest;
private var _ecom:Ecommerce;
private var _account:String;
private var _tracker:GoogleAnalyticsAPI;
public static var version:Version = API.version;
public static var autobuild:Boolean = true;
public function GATracker(_arg1:DisplayObject, _arg2:String, _arg3:String="AS3", _arg4:Boolean=false, _arg5:Configuration=null, _arg6:DebugConfiguration=null){
_display = _arg1;
_eventDispatcher = new EventDispatcher(this);
_tracker = new TrackerCache();
this.account = _arg2;
this.mode = _arg3;
this.visualDebug = _arg4;
if (!_arg6){
this.debug = new DebugConfiguration();
};
if (!_arg5){
this.config = new Configuration(_arg6);
};
if (autobuild){
_factory();
};
}
public function link(_arg1:String, _arg2:Boolean=false):void{
_tracker.link(_arg1, _arg2);
}
public function addOrganic(_arg1:String, _arg2:String):void{
_tracker.addOrganic(_arg1, _arg2);
}
public function setAllowLinker(_arg1:Boolean):void{
_tracker.setAllowLinker(_arg1);
}
public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{
return (_tracker.trackEvent(_arg1, _arg2, _arg3, _arg4));
}
public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{
return (_tracker.getLinkerUrl(_arg1, _arg2));
}
public function setCookieTimeout(_arg1:int):void{
_tracker.setCookieTimeout(_arg1);
}
public function trackTrans():void{
_tracker.trackTrans();
}
public function getClientInfo():Boolean{
return (_tracker.getClientInfo());
}
public function trackPageview(_arg1:String=""):void{
_tracker.trackPageview(_arg1);
}
public function setClientInfo(_arg1:Boolean):void{
_tracker.setClientInfo(_arg1);
}
public function get account():String{
return (_account);
}
public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{
_tracker.linkByPost(_arg1, _arg2);
}
public function getDetectTitle():Boolean{
return (_tracker.getDetectTitle());
}
public function dispatchEvent(_arg1:Event):Boolean{
return (_eventDispatcher.dispatchEvent(_arg1));
}
public function get config():Configuration{
return (_config);
}
public function set mode(_arg1:String):void{
_mode = _arg1;
}
public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
_eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
}
public function setDetectFlash(_arg1:Boolean):void{
_tracker.setDetectFlash(_arg1);
}
public function resetSession():void{
_tracker.resetSession();
}
public function setCampNameKey(_arg1:String):void{
_tracker.setCampNameKey(_arg1);
}
public function get debug():DebugConfiguration{
return (_debug);
}
public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{
_tracker.addItem(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6);
}
private function _bridgeFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account));
return (new Bridge(account, _debug, _jsproxy));
}
public function clearIgnoredOrganic():void{
_tracker.clearIgnoredOrganic();
}
public function set account(_arg1:String):void{
_account = _arg1;
}
public function setVar(_arg1:String):void{
_tracker.setVar(_arg1);
}
public function build():void{
if (!isReady()){
_factory();
};
}
public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
_eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function setDomainName(_arg1:String):void{
_tracker.setDomainName(_arg1);
}
public function createEventTracker(_arg1:String):EventTracker{
return (_tracker.createEventTracker(_arg1));
}
public function setCampSourceKey(_arg1:String):void{
_tracker.setCampSourceKey(_arg1);
}
public function set config(_arg1:Configuration):void{
_config = _arg1;
}
public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{
_tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
}
public function setCampContentKey(_arg1:String):void{
_tracker.setCampContentKey(_arg1);
}
public function willTrigger(_arg1:String):Boolean{
return (_eventDispatcher.willTrigger(_arg1));
}
public function setLocalServerMode():void{
_tracker.setLocalServerMode();
}
public function isReady():Boolean{
return (_ready);
}
public function getLocalGifPath():String{
return (_tracker.getLocalGifPath());
}
public function setAllowAnchor(_arg1:Boolean):void{
_tracker.setAllowAnchor(_arg1);
}
public function clearIgnoredRef():void{
_tracker.clearIgnoredRef();
}
public function get mode():String{
return (_mode);
}
public function set debug(_arg1:DebugConfiguration):void{
_debug = _arg1;
}
public function setLocalGifPath(_arg1:String):void{
_tracker.setLocalGifPath(_arg1);
}
public function getVersion():String{
return (_tracker.getVersion());
}
public function setSampleRate(_arg1:Number):void{
_tracker.setSampleRate(_arg1);
}
public function setCookiePath(_arg1:String):void{
_tracker.setCookiePath(_arg1);
}
public function setAllowHash(_arg1:Boolean):void{
_tracker.setAllowHash(_arg1);
}
public function addIgnoredOrganic(_arg1:String):void{
_tracker.addIgnoredOrganic(_arg1);
}
public function setLocalRemoteServerMode():void{
_tracker.setLocalRemoteServerMode();
}
public function cookiePathCopy(_arg1:String):void{
_tracker.cookiePathCopy(_arg1);
}
private function _factory():void{
var _local1:GoogleAnalyticsAPI;
_jsproxy = new JavascriptProxy(debug);
if (visualDebug){
debug.layout = new Layout(debug, _display);
debug.active = visualDebug;
};
var _local2:TrackerCache = (_tracker as TrackerCache);
switch (mode){
case TrackerMode.BRIDGE:
_local1 = _bridgeFactory();
break;
case TrackerMode.AS3:
default:
_local1 = _trackerFactory();
};
if (!_local2.isEmpty()){
_local2.tracker = _local1;
_local2.flush();
};
_tracker = _local1;
_ready = true;
dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this));
}
public function setCampTermKey(_arg1:String):void{
_tracker.setCampTermKey(_arg1);
}
private function _trackerFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account));
_adSense = new AdSenseGlobals(debug);
_dom = new HTMLDOM(debug);
_dom.cacheProperties();
_env = new Environment("", "", "", debug, _dom);
_buffer = new Buffer(config, debug, false);
_gifRequest = new GIFRequest(config, debug, _buffer, _env);
_idleTimer = new IdleTimer(config, debug, _display, _buffer);
_ecom = new Ecommerce(_debug);
_env.url = _display.stage.loaderInfo.url;
return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense, _ecom));
}
public function setCampNOKey(_arg1:String):void{
_tracker.setCampNOKey(_arg1);
}
public function setDetectTitle(_arg1:Boolean):void{
_tracker.setDetectTitle(_arg1);
}
public function clearOrganic():void{
_tracker.clearOrganic();
}
public function setCampaignTrack(_arg1:Boolean):void{
_tracker.setCampaignTrack(_arg1);
}
public function addIgnoredRef(_arg1:String):void{
_tracker.addIgnoredRef(_arg1);
}
public function getServiceMode():ServerOperationMode{
return (_tracker.getServiceMode());
}
public function set visualDebug(_arg1:Boolean):void{
_visualDebug = _arg1;
}
public function setCampMediumKey(_arg1:String):void{
_tracker.setCampMediumKey(_arg1);
}
public function getDetectFlash():Boolean{
return (_tracker.getDetectFlash());
}
public function get visualDebug():Boolean{
return (_visualDebug);
}
public function hasEventListener(_arg1:String):Boolean{
return (_eventDispatcher.hasEventListener(_arg1));
}
public function getAccount():String{
return (_tracker.getAccount());
}
public function setSessionTimeout(_arg1:int):void{
_tracker.setSessionTimeout(_arg1);
}
public function setRemoteServerMode():void{
_tracker.setRemoteServerMode();
}
}
var _local1:* = ServerOperationMode;
return (_local1);
}//package com.google.analytics
Section 192
//Key (com.keyboard.Key)
package com.keyboard {
import flash.events.*;
import flash.display.*;
public class Key {
private static var initialized:Boolean = false;
private static var keysDown:Object = new Object();
public static function initialize(_arg1:Stage):void{
if (!initialized){
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
_arg1.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
_arg1.addEventListener(Event.DEACTIVATE, clearKeys);
initialized = true;
};
}
private static function clearKeys(_arg1:Event):void{
keysDown = new Object();
}
public static function isDown(_arg1:uint):Boolean{
if (!initialized){
throw (new Error("Key class has yet been initialized."));
};
return (Boolean((_arg1 in keysDown)));
}
private static function keyPressed(_arg1:KeyboardEvent):void{
keysDown[_arg1.keyCode] = true;
}
private static function keyReleased(_arg1:KeyboardEvent):void{
if ((_arg1.keyCode in keysDown)){
delete keysDown[_arg1.keyCode];
};
}
}
}//package com.keyboard
Section 193
//LoaderEvent (com.malee.events.LoaderEvent)
package com.malee.events {
import flash.events.*;
public class LoaderEvent extends Event {
private var _item:IEventDispatcher;
public static const ITEM_SECURITY_ERROR:String = "itemSecurityError";
public static const ITEM_IO_ERROR:String = "itemIOError";
public static const ITEM_COMPLETE:String = "itemComplete";
public function LoaderEvent(_arg1:String, _arg2:IEventDispatcher, _arg3:Boolean=false, _arg4:Boolean=false):void{
super(_arg1, _arg3, _arg4);
_item = _arg2;
}
public function get item():IEventDispatcher{
return (_item);
}
override public function clone():Event{
return (new LoaderEvent(type, _item, bubbles, cancelable));
}
}
}//package com.malee.events
Section 194
//TimeoutErrorEvent (com.malee.events.TimeoutErrorEvent)
package com.malee.events {
import flash.events.*;
public class TimeoutErrorEvent extends ErrorEvent {
public static const TIMEOUT:String = "timeoutError";
public function TimeoutErrorEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:String=""){
super(_arg1, _arg2, _arg3, _arg4);
}
override public function clone():Event{
return (new TimeoutErrorEvent(type, bubbles, cancelable, text));
}
}
}//package com.malee.events
Section 195
//AssetLoader (com.malee.loaders.AssetLoader)
package com.malee.loaders {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.net.*;
import flash.errors.*;
public class AssetLoader extends Loader implements ILoader {
private var _url:String;
private var context:LoaderContext;
private var request:URLRequest;
public function AssetLoader(_arg1:String="", _arg2:ApplicationDomain=null){
_url = _arg1;
request = new URLRequest();
context = new LoaderContext();
this.applicationDomain = ((_arg2 == null)) ? CURRENT_DOMAIN : _arg2;
handleInternalEvents();
}
public function set applicationDomain(_arg1:ApplicationDomain):void{
context.applicationDomain = _arg1;
}
private function onError(_arg1:ErrorEvent):void{
dispatchEvent(_arg1);
}
private function onProgress(_arg1:ProgressEvent):void{
dispatchEvent(_arg1);
}
private function handleInternalEvents():void{
contentLoaderInfo.addEventListener(Event.INIT, onInit);
contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
}
public function get url():String{
return (_url);
}
public function get applicationDomain():ApplicationDomain{
return (contentLoaderInfo.applicationDomain);
}
public function get bytesLoaded():uint{
return (contentLoaderInfo.bytesLoaded);
}
override public function close():void{
try {
super.close();
} catch(error:IOError) {
};
}
public function get bytesTotal():uint{
return (contentLoaderInfo.bytesTotal);
}
private function onComplete(_arg1:Event):void{
dispatchEvent(_arg1);
}
private function onInit(_arg1:Event):void{
dispatchEvent(_arg1);
}
public function loadData(_arg1:String):void{
_url = _arg1;
request.url = _arg1;
load(request, context);
}
public static function get CURRENT_DOMAIN():ApplicationDomain{
return (ApplicationDomain.currentDomain);
}
public static function get NEW_DOMAIN():ApplicationDomain{
return (new ApplicationDomain());
}
public static function loadQuick(_arg1:String, _arg2:Function=null, _arg3:Function=null):AssetLoader{
var _local4:AssetLoader = new (AssetLoader);
if (_arg3 != null){
_local4.addEventListener(IOErrorEvent.IO_ERROR, _arg3);
_local4.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _arg3);
};
if (_arg2 != null){
_local4.addEventListener(Event.COMPLETE, _arg2);
};
_local4.loadData(_arg1);
return (_local4);
}
public static function get CHILD_DOMAIN():ApplicationDomain{
return (new ApplicationDomain(CURRENT_DOMAIN));
}
}
}//package com.malee.loaders
Section 196
//ILoader (com.malee.loaders.ILoader)
package com.malee.loaders {
import flash.events.*;
public interface ILoader extends IEventDispatcher {
function loadData(_arg1:String):void;
function get url():String;
}
}//package com.malee.loaders
Section 197
//XMLLoader (com.malee.loaders.XMLLoader)
package com.malee.loaders {
import flash.events.*;
import flash.net.*;
import flash.utils.*;
public class XMLLoader extends URLLoader implements ILoader {
private var timeout:Timer;
private var request:URLRequest;
private var _url:String;
private var _xml:XML;
public function XMLLoader(_arg1:String=""):void{
_url = _arg1;
request = new URLRequest();
initInternalEvents();
}
private function onComplete(_arg1:Event):void{
stopTimeout();
_xml = new XML(data);
}
private function initInternalEvents():void{
addEventListener(Event.COMPLETE, onComplete);
}
public function loadData(_arg1:String):void{
_url = _arg1;
request.url = _arg1;
load(request);
}
private function onTimeout(_arg1:TimerEvent):void{
close();
dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, "Response Timeout"));
}
private function stopTimeout():void{
if (timeout != null){
timeout.stop();
timeout.removeEventListener(TimerEvent.TIMER, onTimeout);
};
}
public function get url():String{
return (_url);
}
public function loadDataTimeout(_arg1:String, _arg2:int):void{
if (_arg2 > 0){
timeout = new Timer((_arg2 * 1000));
timeout.addEventListener(TimerEvent.TIMER, onTimeout, false, 0, true);
timeout.start();
};
loadData(_arg1);
}
public function get xml():XML{
return (_xml);
}
override public function close():void{
try {
super.close();
} catch(error:Error) {
};
stopTimeout();
}
}
}//package com.malee.loaders
Section 198
//ClearSpringInterface (com.malee.net.clearspring.ClearSpringInterface)
package com.malee.net.clearspring {
import flash.display.*;
import flash.system.*;
public class ClearSpringInterface {
private var _ref:DisplayObject;
private var _api:Object;
public function ClearSpringInterface(_arg1:DisplayObject){
_ref = _arg1;
start();
}
public function start():void{
Security.allowDomain("bin.clearspring.com");
Security.allowDomain("widgets.clearspring.com");
try {
_api = _ref.loaderInfo.loader.root;
trace((("User has viewed me " + _api.context.user.WIDGET_VIEWS) + " times"));
} catch(e:Error) {
trace("WARNING: Not able to add loader event listener. Normal if not running in the Clearspring container.");
};
}
public function get api():Object{
if (_api != null){
return (_api);
};
return (null);
}
}
}//package com.malee.net.clearspring
Section 199
//getURL (com.malee.net.getURL)
package com.malee.net {
import flash.net.*;
public function getURL(_arg1:String, _arg2:String=null):void{
navigateToURL(new URLRequest(_arg1), _arg2);
}
}//package com.malee.net
Section 200
//URLDataLoader (com.malee.net.URLDataLoader)
package com.malee.net {
import flash.events.*;
import flash.utils.*;
import flash.net.*;
import com.malee.events.*;
import flash.errors.*;
public class URLDataLoader extends URLLoader {
private var timeout:Timer;
private var _data:URLVariables;
private var _request:URLRequest;
public function URLDataLoader(_arg1:String="text"){
_data = new URLVariables();
_request = new URLRequest();
this.dataFormat = _arg1;
}
private function onComplete(_arg1:Event):void{
stopTimeout();
}
public function clearVariables():void{
_data = new URLVariables();
}
private function onError(_arg1:Event):void{
stopTimeout();
}
private function onTimeout(_arg1:TimerEvent):void{
close();
dispatchEvent(new TimeoutErrorEvent(TimeoutErrorEvent.TIMEOUT, false, false, "Response Timeout"));
}
public function get variables():URLVariables{
return (_data);
}
override public function close():void{
try {
super.close();
} catch(error:IOError) {
};
stopTimeout();
}
public function sendData(_arg1:String, _arg2:int=0, _arg3:String="POST"):void{
if (_arg2 > 0){
if (timeout == null){
timeout = new Timer(0);
};
timeout.delay = (_arg2 * 1000);
timeout.addEventListener(TimerEvent.TIMER, onTimeout, false, 0, true);
timeout.start();
};
removeInternalEvents();
addInternalEvents();
_request.url = _arg1;
_request.method = _arg3;
_request.data = _data;
load(_request);
}
private function removeInternalEvents():void{
removeEventListener(Event.COMPLETE, onComplete);
removeEventListener(IOErrorEvent.IO_ERROR, onError);
removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
}
public function addVariable(_arg1:String, _arg2):void{
_data[_arg1] = _arg2;
}
private function addInternalEvents():void{
addEventListener(Event.COMPLETE, onComplete);
addEventListener(IOErrorEvent.IO_ERROR, onError);
addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError);
}
private function stopTimeout():void{
if (timeout != null){
timeout.stop();
timeout.removeEventListener(TimerEvent.TIMER, onTimeout);
};
}
}
}//package com.malee.net
Section 201
//SoapMenu (com.malee.soap.SoapMenu)
package com.malee.soap {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.ui.*;
public class SoapMenu {
private var _context:ContextMenu;
private var _object:InteractiveObject;
public function SoapMenu(_arg1:DisplayObject):void{
_object = (_arg1 as InteractiveObject);
_context = new ContextMenu();
_context.hideBuiltInItems();
_object.contextMenu = _context;
init();
}
public function addItem(_arg1:String):void{
var _local2:ContextMenuItem = new ContextMenuItem(_arg1);
_local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, selectItem);
_context.customItems.push(_local2);
}
private function selectItem(_arg1:ContextMenuEvent):void{
switch (_arg1.target.caption){
case "Game by Soap Creative":
linkToSoap();
break;
case "High Quality":
toggleQuality("HIGH");
break;
case "Low Quality":
toggleQuality("LOW");
break;
};
}
private function linkToSoap():void{
SoapTracking.trackSite("click", "visit_SOAP");
navigateToURL(new URLRequest("http://www.soap.com.au"), "_blank");
}
private function toggleQuality(_arg1:String):void{
_object.stage.quality = _arg1;
}
private function init():void{
addItem("Game by Soap Creative");
addItem("High Quality");
addItem("Low Quality");
}
}
}//package com.malee.soap
Section 202
//SoapTracking (com.malee.soap.SoapTracking)
package com.malee.soap {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
public class SoapTracking {
private static var _shared:SharedObject;
public static var clientId:int;
private static var siteEVTTime:Number;
private static var _request:URLRequest;
public static var projectId:int;
private static var _tracking:URLLoader;
private static var siteStartTime:Number;
private static var returnVisitor:int;
private static function onError(_arg1:IOErrorEvent):void{
trace("Tracking Error");
}
private static function sendSiteStats(_arg1:DisplayObject):void{
var _local2:URLRequest = new URLRequest();
var _local3:URLLoader = new URLLoader();
var _local4:URLVariables = new URLVariables();
_local2.url = "http://stats.soap.com.au/usrinfo.php";
_local2.method = URLRequestMethod.POST;
var _local5:String = _arg1.loaderInfo.url;
if (_local5.substring(0, 4) == "http"){
_local4.url = _local5;
} else {
_local4.url = "local";
};
_local4.clientId = clientId;
_local4.projectId = projectId;
_local2.data = _local4;
_local3.load(_local2);
}
private static function initTracking():void{
siteStartTime = getTimer();
siteEVTTime = getTimer();
checkReturn();
}
private static function onComplete(_arg1:Event):void{
}
public static function trackSite(_arg1:String, ... _args):void{
if (_tracking == null){
trace("ERROR - SoapTracking has not been Initalised");
return;
};
var _local3:String = _args.join(",");
var _local4:int;
switch (_arg1){
case "impression":
break;
case "click":
break;
case "over":
break;
case "durationFromInit":
_local4 = ((getTimer() - siteStartTime) / 1000);
break;
case "durationEvent":
_local4 = ((getTimer() - siteEVTTime) / 1000);
break;
default:
_arg1 = "";
};
var _local5:URLVariables = new URLVariables();
_local5["return"] = returnVisitor;
_local5.clientId = clientId;
_local5.projectId = projectId;
_local5.actionType = _arg1;
_local5.pageId = _local3;
_local5.time = _local4;
_local5.user = _shared.data.userID;
_request.data = _local5;
_tracking.load(_request);
}
private static function checkReturn():void{
returnVisitor = ((_shared.data.userID == undefined)) ? 0 : 1;
_shared.data.userID = (Math.random() * 9999999999);
}
public static function INIT(_arg1:int, _arg2:int, _arg3:DisplayObject):void{
clientId = _arg1;
projectId = _arg2;
_tracking = new URLLoader();
_request = new URLRequest();
_shared = SharedObject.getLocal(((("siteTrackingStats_" + _arg1) + "_") + _arg2), "/");
_request.url = "http://stats.soap.com.au/pgtrack.php";
_request.method = URLRequestMethod.POST;
_tracking.dataFormat = URLLoaderDataFormat.TEXT;
_tracking.addEventListener(Event.COMPLETE, onComplete);
_tracking.addEventListener(IOErrorEvent.IO_ERROR, onError);
initTracking();
sendSiteStats(_arg3);
}
}
}//package com.malee.soap
Section 203
//FormUtil (com.malee.utils.FormUtil)
package com.malee.utils {
public class FormUtil {
public static const BAD_ALL:Array = BAD_INITIALS.concat(BAD_NAMES);
public static const BAD_INITIALS:Array = ["fuk", "fuc", "cnt", "knt", "ass", "dic", "fag", "d1k", "4q", "cun", "pis", "nig", "fu", "as5", "a55", "p1s", "fu2", "BJ", "BJU", "bum", "cok", "cum", "tit", "t1t", "coc", "koc", "f4g", "c0k", "c0c", "twt", "pus", "dyk", "tlt", "sac", "sak", "s4c", "s4k"];
public static const BAD_NAMES:Array = ["fuck", "cunt", "dick", "shit", "pussy", "kunt"];
public static function isBadLanguage(_arg1:String, _arg2:Array):Boolean{
var _local3:String;
var _local4:String;
var _local5:int;
_local3 = _arg1.toLowerCase();
if (_local3.length == 0){
return (true);
};
_local5 = _arg2.length;
while (--_local5 >= 0) {
_local4 = _arg2[_local5].toLowerCase();
if (_local3.indexOf(_local4, 0) >= 0){
return (true);
};
};
return (false);
}
public static function isValidEmail(_arg1:String):Boolean{
if (_arg1.length > 7){
if (_arg1.indexOf("@") > 0){
if ((((((((_arg1.indexOf(" ") < 0)) && ((_arg1.indexOf(",") < 0)))) && ((_arg1.indexOf("'") < 0)))) && ((_arg1.indexOf("\"") < 0)))){
if ((_arg1.indexOf("@") + 1) < _arg1.lastIndexOf(".")){
if (_arg1.indexOf("@") == _arg1.lastIndexOf("@")){
if (_arg1.lastIndexOf(".") < (_arg1.length - 1)){
return (true);
};
};
};
};
};
};
return (false);
}
}
}//package com.malee.utils
Section 204
//TextUtil (com.malee.utils.TextUtil)
package com.malee.utils {
public class TextUtil {
public static function formatScoreComma(_arg1:Number, _arg2:String=","):String{
return (formatScoreCommaString(_arg1.toString(), _arg2));
}
private static function formatScoreCommaString(_arg1:String, _arg2:String):String{
var _local5:int;
var _local6:int;
var _local3:int = _arg1.length;
var _local4 = "";
if (_local3 > 3){
_local5 = (_local3 % 3);
_local6 = 0;
while (_local6 < _local3) {
if (((((((_local6 % 3) == _local5)) && (!((_local6 == (_local3 - 1)))))) && (!((_local6 == 0))))){
_local4 = (_local4 + _arg2);
};
_local4 = (_local4 + _arg1.charAt(_local6));
_local6++;
};
} else {
_local4 = (_local4 + _arg1);
};
return (_local4);
}
public static function formatTime(_arg1:Number, _arg2:String="0", _arg3:String="0"):String{
var _local4:int = (int((_arg1 / 60)) % 60);
var _local5:int = (int(_arg1) % 60);
var _local6:String = ((_local4 < 10)) ? (_arg2 + _local4.toString()) : _local4.toString();
var _local7:String = ((_local5 < 10)) ? (_arg3 + _local5.toString()) : _local5.toString();
return (((_local6 + ":") + _local7));
}
public static function formatMiliseconds(_arg1:Number, _arg2:String="0", _arg3:String="0", _arg4:String="0"):String{
var _local5:int = (int(_arg1) % 60);
var _local6:int = (Math.round(((_arg1 - _local5) * 10)) % 10);
var _local7:String = (_arg4 + _local6.toString());
return (((formatTime(_arg1, _arg2, _arg3) + ":") + _local7));
}
public static function formatInvertedScoreComma(_arg1:Number, _arg2:String="000000000", _arg3:String=","):String{
var _local4:String = _arg1.toString();
var _local5:String = _arg2.substring(0, (_arg2.length - _local4.length)).concat(_local4);
return (formatScoreCommaString(_local5, _arg3));
}
}
}//package com.malee.utils
Section 205
//Earthquake (com.markfennell.display.Earthquake)
package com.markfennell.display {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Earthquake {
private static const FRAME_RATE:int = 25;
private static var timer:Timer;
private static var originalX:int;
private static var originalY:int;
private static var horizontal:Boolean;
private static var intensityOffset:int;
private static var intensity:int;
private static var image:DisplayObject;
private static var vertical:Boolean;
private static function resetImage(_arg1:TimerEvent=null):void{
image.x = originalX;
image.y = originalY;
cleanup();
}
public static function temp():void{
}
public static function go(_arg1:DisplayObject, _arg2:Number=10, _arg3:Number=1, _arg4:Boolean=true, _arg5:Boolean=true):void{
if (timer){
timer.stop();
};
image = _arg1;
originalX = image.x;
originalY = image.y;
horizontal = _arg5;
vertical = _arg4;
intensity = _arg2;
intensityOffset = (intensity / 2);
var _local6:int = int((1000 / FRAME_RATE));
var _local7:int = int(((_arg3 * 1000) / _local6));
timer = new Timer(_local6, _local7);
timer.addEventListener(TimerEvent.TIMER, quake);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, resetImage);
timer.start();
}
private static function cleanup():void{
timer = null;
image = null;
}
private static function quake(_arg1:TimerEvent):void{
var _local2:int = ((originalX + (Math.random() * intensity)) - intensityOffset);
var _local3:int = ((originalY + (Math.random() * intensity)) - intensityOffset);
if (horizontal){
image.x = _local2;
};
if (vertical){
image.y = _local3;
};
}
}
}//package com.markfennell.display
Section 206
//Fx (com.markfennell.display.Fx)
package com.markfennell.display {
import flash.display.*;
import flash.utils.*;
import flash.filters.*;
import caurina.transitions.*;
public class Fx extends Sprite {
private var m_callBack:Function;
private var m_mc:DisplayObject;
public function zoomIn(_arg1:DisplayObject, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:String, _arg10:Function=null):void{
var _interval:Number;
var blurFilter:BlurFilter;
var _animate:Function;
var _mc = _arg1;
var delay = _arg2;
var duration = _arg3;
var startX = _arg4;
var startY = _arg5;
var finishX = _arg6;
var finishY = _arg7;
var blur = _arg8;
var transition = _arg9;
var a_callBack = _arg10;
_animate = function ():void{
m_mc.filters = [blurFilter];
Tweener.addTween(m_mc, {x:finishX, y:finishY, time:duration, transition:transition, onComplete:onMotionStopped});
};
var _initTime:Number = getTimer();
var angle:Number = Math.atan2((finishY - startY), (finishX - startX));
var blurX:int = Math.abs(Math.floor((Math.cos(angle) * blur)));
var blurY:int = Math.abs(Math.floor((Math.sin(angle) * blur)));
m_mc = _mc;
var wait:int = (1000 * delay);
m_callBack = a_callBack;
m_mc.x = startX;
m_mc.y = startY;
blurFilter = new BlurFilter(blurX, blurY, 1);
_interval = setTimeout(_animate, wait);
}
public function onMotionStopped():void{
m_mc.filters = [];
if (m_callBack != null){
m_callBack();
};
}
}
}//package com.markfennell.display
Section 207
//SpriteSheet (com.markfennell.display.SpriteSheet)
package com.markfennell.display {
import flash.display.*;
import flash.geom.*;
public class SpriteSheet extends Sprite {
private var BitmapDataArray:Array;
private var _frames:Number;
private var stepX:Number;
private var transformMatrix:Matrix;
private var yScale:Number;
private var stepY:Number;
private var copyPoint:Point;
private var BitmapDataTile:BitmapData;
private var _h:Number;
private var stepRot:Number;
private var xScale:Number;
private var rotScale:Number;
private var _w:Number;
private var copyRectangle:Rectangle;
public function SpriteSheet(_arg1:MovieClip, _arg2:Number, _arg3:Number){
_frames = _arg1.totalFrames;
_w = _arg2;
_h = _arg3;
BitmapDataArray = [];
copyRectangle = new Rectangle(0, 0, _w, _h);
var _local4:int;
while (_local4 < _frames) {
BitmapDataTile = new BitmapData(_arg2, _arg3, true, 0xFFFFFF);
transformMatrix = new Matrix();
transformMatrix.tx = (_arg2 / 2);
transformMatrix.ty = _arg3;
_arg1.gotoAndStop((_local4 + 1));
BitmapDataTile.draw(_arg1, transformMatrix);
BitmapDataArray.push(BitmapDataTile);
_local4++;
};
}
public function destroy():void{
var _local1:int;
while (_local1 < BitmapDataArray.length) {
BitmapDataArray[_local1].dispose();
_local1++;
};
}
public function draw(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:Boolean=false):void{
if (_arg4 < 0){
_arg4 = 0;
};
if (_arg4 >= BitmapDataArray.length){
_arg4 = (BitmapDataArray.length - 1);
};
copyPoint = new Point((_arg2 - int((_w / 2))), (_arg3 - int((_h / 2))));
_arg1.copyPixels(getBitmap(_arg4, _arg5), copyRectangle, copyPoint, null, null, true);
}
public function getWidth():Number{
return (_w);
}
public function getFrames():int{
return (_frames);
}
public function getHeight():Number{
return (_h);
}
public function getBitmap(_arg1:Number, _arg2:Boolean):BitmapData{
var _local3:BitmapData;
var _local4:Matrix;
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 >= BitmapDataArray.length){
_arg1 = (BitmapDataArray.length - 1);
};
if (_arg2){
_local3 = new BitmapData(_w, _h, true, 0xFFFFFF);
_local4 = new Matrix();
_local4.scale(-1, 1);
_local4.tx = _w;
_local3.draw(BitmapDataArray[_arg1], _local4);
return (_local3);
};
return (BitmapDataArray[_arg1]);
}
}
}//package com.markfennell.display
Section 208
//Static (com.markfennell.display.Static)
package com.markfennell.display {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import org.casalib.display.*;
import flash.geom.*;
public class Static extends CasaSprite {
private var m_distort:Number;
private var m_angle:Number;// = 0
private var m_bitmapData0:BitmapData;
private var m_bitmapData1:BitmapData;
private var m_bitmapData2:BitmapData;
private var m_bitmapData3:BitmapData;
private var m_displayObject:DisplayObject;
private var m_frequency:Number;
private var m_timeout:int;
private var m_bitmap:Bitmap;
private var m_vshift:Number;// = 0
private var m_fuzz:Number;
private var m_time:int;
private var m_amount:Number;
private var m_width:int;
private var m_height:int;
private var m_angleinc:Number;// = 0.01
private var m_vshiftrate:Number;// = 60
public function Static(_arg1:DisplayObject, _arg2:int, _arg3:int){
m_displayObject = _arg1;
m_width = _arg2;
m_height = _arg3;
m_bitmapData0 = new BitmapData(m_width, m_height, false, 0);
m_bitmapData1 = m_bitmapData0.clone();
m_bitmapData2 = m_bitmapData0.clone();
m_bitmapData3 = m_bitmapData0.clone();
m_bitmap = new Bitmap(m_bitmapData2);
addChild(m_bitmap);
}
public function distort(_arg1:Event=null):void{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:BitmapData;
m_bitmapData0.draw(m_displayObject, new Matrix());
m_angle = (m_angle + m_angleinc);
m_frequency = ((Math.sin(m_angle) * 3) * Math.PI);
var _local2:int;
while (_local2 <= m_height) {
_local3 = (((m_frequency * _local2) / height) + m_angle);
_local4 = (m_amount * Math.sin(_local3));
_local4 = (_local4 + (Math.random() * 4));
m_bitmapData1.copyPixels(m_bitmapData0, new Rectangle(_local4, _local2, (m_width - _local4), 1), new Point(0, _local2));
_local2++;
};
if (Math.random() < 0.1){
m_angle = (Math.random() * Math.PI);
} else {
m_angle = (m_angle * 0.8);
};
if (Math.random() < m_fuzz){
m_bitmapData3.noise(int((Math.random() * 0xFF)), 0, 0xFF, ((1 | 2) | 4), true);
_local5 = Math.floor((Math.random() * 128));
m_bitmapData1.merge(m_bitmapData3, m_bitmapData1.rect, new Point(0, 0), _local5, _local5, _local5, _local5);
};
if (Math.random() < 0.02){
m_vshift = m_vshiftrate;
} else {
m_vshift = 0;
};
if (m_vshift > 0){
m_vshift = (m_vshift + m_vshiftrate);
m_vshift = (m_vshift % m_height);
_local6 = m_bitmapData1.clone();
m_bitmapData1.copyPixels(_local6, new Rectangle(0, 0, m_width, m_vshift), new Point(0, (m_height - m_vshift)));
m_bitmapData1.copyPixels(_local6, new Rectangle(0, m_vshift, m_width, (m_height - m_vshift)), new Point(0, 0));
};
m_bitmapData2.copyChannel(m_bitmapData1, m_bitmapData2.rect, new Point((Math.random() * m_distort), 0), 1, 1);
m_bitmapData2.copyChannel(m_bitmapData1, m_bitmapData2.rect, new Point((Math.random() * m_distort), 0), 2, 2);
m_bitmapData2.copyChannel(m_bitmapData1, m_bitmapData2.rect, new Point((Math.random() * m_distort), 0), 4, 4);
}
override public function destroy():void{
clearTimeout(m_timeout);
removeChild(m_bitmap);
m_bitmap = null;
m_bitmapData0.dispose();
m_bitmapData1.dispose();
m_bitmapData2.dispose();
m_bitmapData3.dispose();
m_displayObject = null;
super.destroy();
}
public function reset():void{
removeEventListener(Event.ENTER_FRAME, distort);
m_bitmapData2.draw(m_bitmapData0, new Matrix());
}
public function glitch(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{
m_amount = _arg2;
m_fuzz = _arg3;
m_distort = _arg4;
m_time = _arg1;
addEventListener(Event.ENTER_FRAME, distort);
if (m_time > 0){
m_timeout = setTimeout(reset, m_time);
};
}
}
}//package com.markfennell.display
Section 209
//TimeKeeper (com.markfennell.display.TimeKeeper)
package com.markfennell.display {
import flash.utils.*;
public class TimeKeeper {
private var isCountdown:Boolean;// = false
private var totalTime:Number;// = 0
private var oldTime:Number;// = 0
private var pause:Boolean;// = false
private var countdownTime:Number;// = 0
public function TimeKeeper(_arg1:Number=0){
if (_arg1 != 0){
isCountdown = true;
countdownTime = _arg1;
};
this.reset();
}
public function addMili(_arg1:int):void{
this.totalTime = Math.max(0, (this.totalTime + _arg1));
}
public function reset():void{
this.oldTime = 0;
this.pause = true;
this.totalTime = 0;
}
public function displayHour():int{
var _local1:int = this.getMili();
var _local2:int = Math.floor((_local1 / 1000));
var _local3:int = Math.floor((_local2 / 60));
var _local4:int = Math.floor((_local3 / 60));
return (_local4);
}
public function stop():void{
if (!this.pause){
this.pause = true;
this.totalTime = (this.totalTime + (getTimer() - this.oldTime));
};
}
public function getTime(_arg1:int):int{
if (isCountdown){
return ((countdownTime - _arg1));
};
return (_arg1);
}
public function displaySec():int{
var _local1:int = this.getMili();
var _local2:int = Math.floor((_local1 / 1000));
_local2 = (_local2 % 60);
return (_local2);
}
public function displayMin():int{
var _local1:int = this.getMili();
var _local2:int = Math.floor((_local1 / 1000));
var _local3:int = Math.floor((_local2 / 60));
_local3 = (_local3 % 60);
return (_local3);
}
public function getMili():int{
var _local1:int = this.totalTime;
if (!this.pause){
_local1 = (_local1 + (getTimer() - this.oldTime));
};
return (getTime(_local1));
}
public function displayTime():String{
var _local1:String = three(displayMili());
_local1 = _local1.substring(0, 3);
var _local2:String = ((((displayMin() + "'") + two(displaySec())) + "\"") + _local1);
return (_local2);
}
public function getMins():int{
var _local1:int = (this.totalTime / 1000);
if (!this.pause){
_local1 = (_local1 + (((getTimer() - this.oldTime) / 1000) / 60));
};
return (Math.round(getTime(_local1)));
}
public function getSecs():int{
var _local1:int = (this.totalTime / 1000);
if (!this.pause){
_local1 = (_local1 + ((getTimer() - this.oldTime) / 1000));
};
return (Math.round(getTime(_local1)));
}
public function subMili(_arg1:int):void{
this.totalTime = (this.totalTime - _arg1);
}
public function start():void{
if (this.pause){
this.pause = false;
this.oldTime = getTimer();
};
}
public function displayMili():int{
var _local1:int = this.getMili();
_local1 = (_local1 % 1000);
return (_local1);
}
public static function display(_arg1:Number, _arg2:String="'", _arg3:String="""):String{
var _local4:int = Math.floor((_arg1 / 1000));
var _local5:int = Math.floor((_local4 / 60));
return ((((((_local5 % 60) + _arg2) + two((_local4 % 60))) + _arg3) + three((_arg1 % 1000))));
}
private static function two(_arg1:int):String{
return ((((_arg1)>9) ? "" : "0" + _arg1));
}
private static function three(_arg1:int):String{
return (((((_arg1)>99) ? "" : "0" + ((_arg1)>9) ? "" : "0") + _arg1));
}
}
}//package com.markfennell.display
Section 210
//TriggerEvent (com.markfennell.events.TriggerEvent)
package com.markfennell.events {
import flash.events.*;
public class TriggerEvent extends Event {
public var data;
public function TriggerEvent(_arg1:String, _arg2){
super(_arg1, true, true);
data = _arg2;
}
override public function clone():Event{
return (new TriggerEvent(type, data));
}
}
}//package com.markfennell.events
Section 211
//Line (com.markfennell.geom.Line)
package com.markfennell.geom {
import flash.display.*;
import flash.geom.*;
import com.foxaweb.utils.*;
public class Line {
public var p0:Point;
public var p1:Point;
public function Line(_arg1:Point, _arg2:Point):void{
p0 = _arg1;
p1 = _arg2;
}
public function get angle():Number{
return (Math.atan2((p1.y - p0.y), (p1.x - p0.x)));
}
public function toString():void{
trace((((((((("Line (" + int(p0.x)) + ",") + int(p0.y)) + ") -> (") + int(p1.x)) + ",") + int(p1.y)) + ")"));
}
public static function createLine(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Line{
var _local5:Number = (_arg3 / 2);
var _local6:Number = Math.sin(_arg4);
var _local7:Number = Math.cos(_arg4);
var _local8:Point = new Point((_arg1 + (_local5 * _local7)), (_arg2 + (_local5 * _local6)));
var _local9:Point = new Point((_arg1 - (_local5 * _local7)), (_arg2 - (_local5 * _local6)));
return (new Line(_local8, _local9));
}
public static function draw(_arg1:Line, _arg2, _arg3:int=0xFF0000):void{
if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){
_arg2.graphics.lineStyle(2, _arg3);
_arg2.graphics.moveTo(_arg1.p0.x, _arg1.p0.y);
_arg2.graphics.lineTo(_arg1.p1.x, _arg1.p1.y);
} else {
if ((_arg2 is BitmapData)){
Raster.line(_arg2, _arg1.p0.x, _arg1.p0.y, _arg1.p1.x, _arg1.p1.y, _arg3);
};
};
}
public static function localToLocal(_arg1:DisplayObject, _arg2:DisplayObject, _arg3:Point=null):Point{
var _local4:Point = (_arg3) ? _arg3 : new Point();
_local4 = _arg1.localToGlobal(_local4);
_local4 = _arg2.globalToLocal(_local4);
return (_local4);
}
public static function drawRect(_arg1:Rectangle, _arg2, _arg3:uint=0xFF0000):void{
if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){
_arg2.graphics.lineStyle(2, _arg3);
_arg2.graphics.moveTo(_arg1.x, _arg1.y);
_arg2.graphics.lineTo((_arg1.x + _arg1.width), _arg1.y);
_arg2.graphics.lineTo((_arg1.x + _arg1.width), (_arg1.y + _arg1.height));
_arg2.graphics.lineTo(_arg1.x, (_arg1.y + _arg1.height));
_arg2.graphics.lineTo(_arg1.x, _arg1.y);
} else {
if ((_arg2 is BitmapData)){
Raster.line(_arg2, _arg1.x, _arg1.y, (_arg1.x + _arg1.width), _arg1.y, _arg3);
Raster.line(_arg2, (_arg1.x + _arg1.width), _arg1.y, (_arg1.x + _arg1.width), (_arg1.y + _arg1.height), _arg3);
Raster.line(_arg2, (_arg1.x + _arg1.width), (_arg1.y + _arg1.height), _arg1.x, (_arg1.y + _arg1.height), _arg3);
Raster.line(_arg2, _arg1.x, (_arg1.y + _arg1.height), _arg1.x, _arg1.y, _arg3);
};
};
}
public static function getPoint(_arg1:Line, _arg2:Number):Point{
var _local3:Number = (_arg1.p0.x + (_arg2 * (_arg1.p1.x - _arg1.p0.x)));
var _local4:Number = (_arg1.p0.y + (_arg2 * (_arg1.p1.y - _arg1.p0.y)));
return (new Point(_local3, _local4));
}
public static function intersects(_arg1:Line, _arg2:Line):Boolean{
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local10:Number;
var _local11:Number;
_local3 = (_arg1.p1.x - _arg1.p0.x);
_local4 = (_arg1.p1.y - _arg1.p0.y);
_local5 = (_arg2.p1.x - _arg2.p0.x);
_local6 = (_arg2.p1.y - _arg2.p0.y);
_local7 = ((-(_local5) * _local4) + (_local3 * _local6));
_local10 = (_arg1.p0.x - _arg2.p0.x);
_local11 = (_arg1.p0.y - _arg2.p0.y);
_local8 = (((-(_local4) * _local10) + (_local3 * _local11)) / _local7);
_local9 = (((_local5 * _local11) - (_local6 * _local10)) / _local7);
if ((((((((_local8 >= 0)) && ((_local8 <= 1)))) && ((_local9 >= 0)))) && ((_local9 <= 1)))){
return (true);
};
return (false);
}
public static function drawPoint(_arg1:Point, _arg2, _arg3:uint=0xFF00):void{
if ((((_arg2 is MovieClip)) || ((_arg2 is Sprite)))){
_arg2.graphics.lineStyle(2, _arg3);
_arg2.graphics.drawCircle(_arg1.x, _arg1.y, 4);
} else {
if ((_arg2 is BitmapData)){
Raster.circle(_arg2, _arg1.x, _arg1.y, 4, _arg3);
};
};
}
}
}//package com.markfennell.geom
Section 212
//Polygon (com.markfennell.geom.Polygon)
package com.markfennell.geom {
import flash.geom.*;
public class Polygon {
public var edges:Array;
public function Polygon(... _args):void{
edges = [];
super();
var _local2:int;
while (_local2 < _args.length) {
if ((_args[_local2] is Line)){
edges.push(_args[_local2]);
};
_local2++;
};
}
public function draw(_arg1, _arg2:int=0xFF0000):void{
var _local3:int;
while (_local3 < length) {
Line.draw(getEdge(_local3), _arg1, _arg2);
_local3++;
};
}
public function getEdge(_arg1:int):Line{
return (edges[_arg1]);
}
public function get length():Number{
return (edges.length);
}
public static function pointInRect(_arg1:Point, _arg2:Rectangle):Boolean{
if ((((((((_arg1.x >= _arg2.x)) && ((_arg1.x <= (_arg2.x + _arg2.width))))) && ((_arg1.y >= _arg2.y)))) && ((_arg1.y <= (_arg2.y + _arg2.height))))){
return (true);
};
return (false);
}
public static function rectToPoly(_arg1:Rectangle):Polygon{
var _local2:Line = new Line(new Point(_arg1.x, _arg1.y), new Point(_arg1.x, (_arg1.y + _arg1.height)));
var _local3:Line = new Line(new Point((_arg1.x + _arg1.width), _arg1.y), new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)));
var _local4:Line = new Line(new Point(_arg1.x, _arg1.y), new Point((_arg1.x + _arg1.width), _arg1.y));
var _local5:Line = new Line(new Point(_arg1.x, (_arg1.y + _arg1.height)), new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)));
var _local6:Polygon = new Polygon(_local2, _local4, _local3, _local5);
return (_local6);
}
public static function isWithin(_arg1:Point, _arg2:Polygon):Boolean{
var _local3:Line = new Line(_arg1, new Point(_arg1.x, 10000000));
var _local4:int;
var _local5:int;
while (_local5 < _arg2.length) {
if (Line.intersects(_arg2.getEdge(_local5), _local3)){
_local4++;
};
_local5++;
};
return (!(((_local4 % 2) == 0)));
}
public static function rectInPoly(_arg1:Rectangle, _arg2:Polygon):Boolean{
var _local5:int;
if (isWithin(new Point(_arg1.x, _arg1.y), _arg2)){
return (true);
};
if (isWithin(new Point((_arg1.x + _arg1.width), _arg1.y), _arg2)){
return (true);
};
if (isWithin(new Point((_arg1.x + _arg1.width), (_arg1.y + _arg1.height)), _arg2)){
return (true);
};
if (isWithin(new Point(_arg1.x, (_arg1.y + _arg1.height)), _arg2)){
return (true);
};
var _local3:Polygon = rectToPoly(_arg1);
var _local4:int;
while (_local4 < _arg2.length) {
_local5 = 0;
while (_local5 < _local3.length) {
if (Line.intersects(_local3.getEdge(_local5), _arg2.getEdge(_local4))){
return (true);
};
_local5++;
};
_local4++;
};
return (false);
}
}
}//package com.markfennell.geom
Section 213
//SoundEvent (com.markfennell.sound.SoundEvent)
package com.markfennell.sound {
import flash.events.*;
public class SoundEvent extends Event {
public var force:Boolean;
public var volume:Number;
public var name:String;
public var loops:int;
public static var DIALOG:String = "Sound Dialog";
public static var EFFECT:String = "Sound Effect";
public function SoundEvent(_arg1:String, _arg2:String, _arg3:Number, _arg4:int=1, _arg5:Boolean=false){
super(_arg1, true, true);
name = _arg2;
volume = _arg3;
loops = _arg4;
force = _arg5;
}
override public function clone():Event{
return (new SoundEvent(type, name, volume, loops, force));
}
}
}//package com.markfennell.sound
Section 214
//SoundPlayer (com.markfennell.sound.SoundPlayer)
package com.markfennell.sound {
import flash.events.*;
import flash.utils.*;
import flash.media.*;
public class SoundPlayer extends EventDispatcher {
private var m_soundChannel:SoundChannel;
public var stoppable:Boolean;// = true
private var m_loops:int;
public var m_soundState:String;
private var m_volume:Number;
private var m_position:Number;// = 0
private var m_sound:Sound;
private static var soundsDictionary:Dictionary = new Dictionary();
public static var STOPPED:String = "stopped";
public static var PAUSED:String = "paused";
public static var FINISHED:String = "finished";
public static var INITIALIZED:String = "init";
public static var PLAYING:String = "playing";
public static var COMPLETE:String = "complete";
public function SoundPlayer(_arg1:Sound):void{
m_soundChannel = new SoundChannel();
super();
m_sound = _arg1;
m_soundState = INITIALIZED;
soundsDictionary[this] = this;
}
public function get soundState():String{
return (m_soundState);
}
public function play(_arg1:Number=1, _arg2:int=1):void{
if (m_soundState == PLAYING){
return;
};
m_volume = _arg1;
m_loops = _arg2;
m_soundChannel.stop();
m_soundChannel = m_sound.play(m_position);
m_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete);
m_soundState = PLAYING;
volume = m_volume;
}
public function set soundState(_arg1:String):void{
m_soundState = _arg1;
}
public function pause():void{
if (m_soundState == INITIALIZED){
return;
};
m_position = m_soundChannel.position;
m_soundChannel.stop();
m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete);
m_soundState = PAUSED;
}
public function stop():void{
m_position = 0;
m_soundState = STOPPED;
if (m_soundChannel){
m_soundChannel.stop();
m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete);
};
}
public function get leftPeak():Number{
return (m_soundChannel.leftPeak);
}
public function set position(_arg1:Number):void{
var _local2 = (m_soundState == PLAYING);
pause();
m_position = _arg1;
if (_local2){
play();
};
}
public function get duration():Number{
return (m_sound.length);
}
public function get volume():Number{
return (m_soundChannel.soundTransform.volume);
}
public function get rightPeak():Number{
return (m_soundChannel.rightPeak);
}
public function destroy():void{
stop();
m_sound = null;
m_soundChannel = null;
soundsDictionary[this] = null;
}
public function get position():Number{
return (m_soundChannel.position);
}
public function resume():void{
play(m_volume, m_loops);
}
public function get playing():Boolean{
return ((m_soundState == PLAYING));
}
private function soundComplete(_arg1:Event):void{
m_loops--;
m_soundState = FINISHED;
if (m_loops == 0){
dispatchEvent(new Event(COMPLETE));
destroy();
} else {
play(volume, m_loops);
};
}
public function set volume(_arg1:Number):void{
if (m_soundChannel == null){
return;
};
var _local2:SoundTransform = m_soundChannel.soundTransform;
_local2.volume = _arg1;
m_soundChannel.soundTransform = _local2;
}
public static function stopSounds():void{
var item:SoundPlayer;
for each (item in soundsDictionary) {
try {
if (item.stoppable){
item.destroy();
soundsDictionary[item] = null;
};
} catch(e:Error) {
};
};
}
}
}//package com.markfennell.sound
Section 215
//TextWriter (com.markfennell.text.TextWriter)
package com.markfennell.text {
import flash.events.*;
import flash.utils.*;
import flash.text.*;
import org.casalib.util.*;
public class TextWriter extends EventDispatcher {
private var m_position:int;// = 0
private var m_string:String;
private var m_function:Function;
private var m_timeout:int;
private var m_editedString:String;// = ""
private var m_textfield:TextField;
private var m_textFormat:TextFormat;
private var m_time:int;
public static var COMPLETE:String = "Writer Complete";
public function TextWriter(_arg1:TextField, _arg2:String, _arg3:int=0, _arg4:int=15, _arg5:Boolean=false, _arg6:Function=null){
m_textfield = _arg1;
m_textfield.htmlText = "";
m_textfield.wordWrap = false;
m_textfield.multiline = true;
m_string = _arg2;
m_time = _arg4;
m_function = _arg6;
m_textFormat = new TextFormat();
if (_arg5){
m_textFormat.bold = true;
};
editString();
setTimeout(startWriting, _arg3);
}
private function startWriting():void{
m_timeout = setInterval(writeLetter, m_time);
}
private function writeLetter():void{
if (m_position > m_string.length){
clearInterval(m_timeout);
dispatchEvent(new Event(COMPLETE));
return;
};
m_textfield.htmlText = m_string.substring(0, m_position);
m_textfield.setTextFormat(m_textFormat);
m_position++;
if (m_function != null){
m_function();
};
}
private function editString():void{
m_textfield.htmlText = "";
var _local1:Array = m_string.split(" ");
m_string = "";
var _local2:int;
while (_local2 < _local1.length) {
m_textfield.htmlText = ((m_editedString + _local1[_local2]) + " ");
if (m_textfield.textWidth > m_textfield.width){
m_editedString = (m_editedString + "<BR>");
m_string = (m_string + StringUtil.trim(m_editedString));
m_editedString = (_local1[_local2] + " ");
} else {
m_editedString = ((m_editedString + _local1[_local2]) + " ");
};
if (_local2 == (_local1.length - 1)){
m_string = (m_string + StringUtil.trim(m_editedString));
};
_local2++;
};
m_textfield.htmlText = "";
m_textfield.visible = true;
}
public function destroy():void{
clearInterval(m_timeout);
}
}
}//package com.markfennell.text
Section 216
//DelayedCall (com.markfennell.utils.DelayedCall)
package com.markfennell.utils {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class DelayedCall {
private var delay:Number;
private var func:Function;
private var timer:Timer;
private var parameters:Array;
private var loop:Boolean;// = false
private var count:Number;
private var milliseconds:Boolean;// = false
private var _pending:Boolean;// = false
private static var FRAME_DISPATCHER:Shape;
public function DelayedCall(_arg1:Function, _arg2:Array, _arg3:Number, _arg4:Boolean=true){
count = 0;
this.func = _arg1;
this.delay = _arg3;
this.parameters = _arg2;
this.milliseconds = _arg4;
begin();
}
public function begin():void{
if (_pending){
clear();
};
_pending = true;
if (milliseconds){
timer = new Timer(delay, 1);
timer.addEventListener(TimerEvent.TIMER, tick);
timer.start();
} else {
if (!FRAME_DISPATCHER){
FRAME_DISPATCHER = new Shape();
};
FRAME_DISPATCHER.addEventListener(Event.ENTER_FRAME, frameTick);
};
}
public function get remainingDelay():Number{
var _local1:Number = 0;
if (this._pending){
if (this.milliseconds){
_local1 = this.timer.currentCount;
} else {
_local1 = (_local1 + this.count);
};
};
return (_local1);
}
public function get pending():Boolean{
return (_pending);
}
private function frameTick(_arg1:Event=null):void{
count++;
if (count >= delay){
tick();
};
}
public function clear():void{
_pending = false;
if (timer){
timer.removeEventListener(TimerEvent.TIMER, tick);
timer = null;
};
if (!milliseconds){
FRAME_DISPATCHER.removeEventListener(Event.ENTER_FRAME, frameTick);
};
}
private function tick(_arg1:Event=null):void{
_pending = false;
if (!loop){
clear();
delete ??getglobalscope
[this];
} else {
begin();
};
func.apply(null, parameters);
}
}
}//package com.markfennell.utils
Section 217
//TEA (com.meychi.ascrypt3.TEA)
package com.meychi.ascrypt3 {
public class TEA {
public function decrypt(_arg1:String, _arg2:String):String{
var _local9:Number;
var _local10:Number;
var _local13:Number;
var _local3:Array = charsToLongs(hexToChars(_arg1));
var _local4:Array = charsToLongs(strToChars(_arg2));
var _local5:Number = _local3.length;
if (_local5 == 0){
return ("");
};
var _local6:Number = _local3[(_local5 - 1)];
var _local7:Number = _local3[0];
var _local8:Number = 2654435769;
var _local11:Number = Math.floor((6 + (52 / _local5)));
var _local12:Number = (_local11 * _local8);
while (_local12 != 0) {
_local10 = ((_local12 >>> 2) & 3);
_local13 = (_local5 - 1);
while (_local13 > 0) {
_local6 = _local3[(_local13 - 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local7 = (_local3[_local13] = (_local3[_local13] - _local9));
_local13--;
};
_local6 = _local3[(_local5 - 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local7 = (_local3[0] = (_local3[0] - _local9));
_local12 = (_local12 - _local8);
};
return (charsToStr(longsToChars(_local3)));
}
public function encrypt(_arg1:String, _arg2:String):String{
var _local9:Number;
var _local10:Number;
var _local13:Number;
var _local3:Array = charsToLongs(strToChars(_arg1));
var _local4:Array = charsToLongs(strToChars(_arg2));
var _local5:Number = _local3.length;
if (_local5 == 0){
return ("");
};
if (_local5 == 1){
var _temp1 = _local5;
_local5 = (_local5 + 1);
var _local14 = _temp1;
_local3[_local14] = 0;
};
var _local6:Number = _local3[(_local5 - 1)];
var _local7:Number = _local3[0];
var _local8:Number = 2654435769;
var _local11:Number = Math.floor((6 + (52 / _local5)));
var _local12:Number = 0;
while (_local11-- > 0) {
_local12 = (_local12 + _local8);
_local10 = ((_local12 >>> 2) & 3);
_local13 = 0;
while (_local13 < (_local5 - 1)) {
_local7 = _local3[(_local13 + 1)];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local6 = (_local3[_local13] = (_local3[_local13] + _local9));
_local13++;
};
_local7 = _local3[0];
_local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6)));
_local6 = (_local3[(_local5 - 1)] = (_local3[(_local5 - 1)] + _local9));
};
return (charsToHex(longsToChars(_local3)));
}
private static function strToChars(_arg1:String):Array{
var _local2:Array = new Array();
var _local3:Number = 0;
while (_local3 < _arg1.length) {
_local2.push(_arg1.charCodeAt(_local3));
_local3++;
};
return (_local2);
}
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:Number = 0;
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:Number = ((_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:Number = 0;
while (_local3 < _arg1.length) {
_local2 = (_local2 + String.fromCharCode(_arg1[_local3]));
_local3++;
};
return (_local2);
}
private static function longsToChars(_arg1:Array):Array{
var _local2:Array = new Array();
var _local3:Number = 0;
while (_local3 < _arg1.length) {
_local2.push((_arg1[_local3] & 0xFF), ((_arg1[_local3] >>> 8) & 0xFF), ((_arg1[_local3] >>> 16) & 0xFF), ((_arg1[_local3] >>> 24) & 0xFF));
_local3++;
};
return (_local2);
}
private static function charsToLongs(_arg1:Array):Array{
var _local2:Array = new Array(Math.ceil((_arg1.length / 4)));
var _local3:Number = 0;
while (_local3 < _local2.length) {
_local2[_local3] = (((_arg1[(_local3 * 4)] + (_arg1[((_local3 * 4) + 1)] << 8)) + (_arg1[((_local3 * 4) + 2)] << 16)) + (_arg1[((_local3 * 4) + 3)] << 24));
_local3++;
};
return (_local2);
}
}
}//package com.meychi.ascrypt3
Section 218
//Console (console.Console)
package console {
import flash.events.*;
import flash.utils.*;
import pages.*;
import com.markfennell.sound.*;
import events.*;
import net.*;
import game.*;
import game.hud.*;
import flash.net.*;
import org.casalib.display.*;
import com.google.analytics.*;
import game.interfaces.*;
import org.casalib.util.*;
public class Console extends CasaSprite {
private var m_hud:HudController;
private var m_currentState:String;
private var m_currentClass:IConsoleSection;// = null
private var m_nextClass:IConsoleSection;// = null
private var m_callBack:Function;
private var m_soundController:SoundController;
private var m_user:User;
public static var firstPlay:Boolean = true;
public static var GoogleAnalytics:AnalyticsTracker;
public static var paused:Boolean = false;
public function Console(){
m_soundController = new SoundController();
super();
m_hud = new HudController();
addChild(m_hud);
GoogleAnalytics = new GATracker(StageReference.getStage(), Constants.GOOGLE, "AS3", false);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_CREDITS, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_HELP, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_INTRO, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_MORE, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_PLAYGAME, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_MUTANTS, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_SHARE, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.DISPLAY_MEDALS, handleConsoleEvent);
addEventListener(ConsoleEvents.TRANSITION_COMPLETE, handleTransitionComplete);
GameBroadcaster.addEventListener(ConsoleEvents.PAUSE, handleConsoleEvent);
GameBroadcaster.addEventListener(ConsoleEvents.EXIT, handleConsoleEvent);
handleConsoleEvent(new ConsoleEvent(ConsoleEvents.DISPLAY_INTRO));
GameBroadcaster.addEventListener(SoundEvent.EFFECT, handleSoundEffect);
GameBroadcaster.addEventListener(ConsoleEvents.GAME_COMPLETE, handleGameComplete);
Console.GoogleAnalytics.trackPageview("MRD_Escape/game/index");
}
private function onLoginEnd(_arg1:LoginEvent):void{
if ((m_currentClass is Title)){
Title(m_currentClass).playIntro();
};
m_hud.enableHud();
}
private function checkLogin(_arg1:Title):void{
_arg1.playIntro();
m_hud.enableHud();
}
private function handleConsoleEvent(_arg1:ConsoleEvent):void{
var e = _arg1;
if (e.type == m_currentState){
return;
};
trace(e.type, m_currentState);
m_hud.setScore();
m_hud.updatePanel();
if (((!((m_callBack == null))) && (!((e.type == ConsoleEvents.DISPLAY_MORE))))){
m_callBack();
m_callBack = null;
};
switch (e.type){
case ConsoleEvents.PAUSE:
if (!paused){
m_nextClass.doPause();
SoundController.getInstance().pause_music(true);
paused = true;
} else {
m_nextClass.doResume();
SoundController.getInstance().pause_music(false);
paused = false;
};
break;
case ConsoleEvents.EXIT:
paused = false;
m_hud.hideInGameButtons();
SoundController.getInstance().start_music(0, true);
m_currentState = ConsoleEvents.DISPLAY_INTRO;
m_nextClass = new Title();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
setHudToTop();
break;
case ConsoleEvents.DISPLAY_INTRO:
SoundController.getInstance().start_music(0);
m_hud.disableHud();
m_currentState = ConsoleEvents.DISPLAY_INTRO;
m_nextClass = new Title();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
setHudToTop();
break;
case ConsoleEvents.DISPLAY_HELP:
Console.GoogleAnalytics.trackPageview("MRD_Escape/menu/instructions");
m_currentState = ConsoleEvents.DISPLAY_HELP;
m_nextClass = new Help();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
setHudToTop();
break;
case ConsoleEvents.DISPLAY_MEDALS:
Console.GoogleAnalytics.trackPageview("MRD_Escape/menu/achievements");
m_currentState = ConsoleEvents.DISPLAY_MEDALS;
m_nextClass = new Medals();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
m_callBack = m_nextClass.hide;
setHudToTop();
break;
case ConsoleEvents.DISPLAY_MUTANTS:
Console.GoogleAnalytics.trackPageview("MRD_Escape/menu/mutants");
m_currentState = ConsoleEvents.DISPLAY_MUTANTS;
m_nextClass = new Mutants();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
m_callBack = m_nextClass.hide;
setHudToTop();
break;
case ConsoleEvents.DISPLAY_PLAYGAME:
Console.GoogleAnalytics.trackPageview("MRD_Escape/game/start");
if (m_currentState != ConsoleEvents.GAME_COMPLETE){
SoundController.getInstance().pause_music(true);
};
m_currentState = ConsoleEvents.DISPLAY_PLAYGAME;
m_nextClass = new GameController(int(e.data));
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
setHudToTop();
break;
case ConsoleEvents.DISPLAY_CREDITS:
if (m_currentState == ConsoleEvents.DISPLAY_CREDITS){
return;
};
Console.GoogleAnalytics.trackPageview("MRD_Escape/menu/credits");
SoundController.getInstance().start_music(0);
m_currentState = ConsoleEvents.DISPLAY_CREDITS;
m_nextClass = new Credits();
addChild((m_nextClass as CasaSprite));
m_nextClass.transitionIn();
if (!m_hud.showingTitleButtons){
m_hud.hideInGameButtons();
setTimeout(m_hud.showTitleButtons, 500);
};
setHudToTop();
break;
case ConsoleEvents.DISPLAY_MORE:
trace("More Games");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "linkout", "more games");
navigateToURL(Constants.URL_MOREGAMES, "_blank");
break;
case ConsoleEvents.DISPLAY_SHARE:
Console.GoogleAnalytics.trackPageview("MRD_Escape/menu/share");
trace("SHARE URL HERE");
try {
Main.ClearSpring.api.menu.show();
} catch(e:TypeError) {
trace("could not open clearspring");
navigateToURL(Constants.URL_MOREGAMES, "_blank");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "linkout", "more games share");
};
break;
};
}
private function setHudToTop():void{
setChildIndex(m_hud, (numChildren - 1));
}
override public function destroy():void{
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_CREDITS, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_HELP, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_INTRO, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_MORE, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_PLAYGAME, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_MUTANTS, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.DISPLAY_SHARE, handleConsoleEvent);
GameBroadcaster.removeEventListener(ConsoleEvents.TRANSITION_COMPLETE, handleTransitionComplete);
GameBroadcaster.removeEventListener(SoundEvent.EFFECT, handleSoundEffect);
GameBroadcaster.removeEventListener(ConsoleEvents.GAME_COMPLETE, handleGameComplete);
m_currentClass.destroy();
m_nextClass.destroy();
super.destroy();
}
private function handleGameComplete(_arg1:Event):void{
m_currentState = ConsoleEvents.GAME_COMPLETE;
}
private function handleTransitionComplete(_arg1:ConsoleEvent):void{
if (m_currentClass){
m_currentClass.destroy();
};
m_currentClass = m_nextClass;
if (m_currentState == ConsoleEvents.DISPLAY_INTRO){
m_hud.showTitleButtons();
checkLogin((m_currentClass as Title));
};
}
private function handleSoundEffect(_arg1:SoundEvent):void{
switch (_arg1.type){
case SoundEvent.EFFECT:
SoundController.getInstance().playSound(_arg1);
break;
};
}
}
}//package console
Section 219
//ConsoleEvent (console.ConsoleEvent)
package console {
import flash.events.*;
public class ConsoleEvent extends Event {
public var data;
public function ConsoleEvent(_arg1:String, _arg2=null){
super(_arg1, true, true);
data = _arg2;
}
override public function clone():Event{
return (new ConsoleEvent(type, data));
}
}
}//package console
Section 220
//ConsoleEvents (console.ConsoleEvents)
package console {
public class ConsoleEvents {
public static var PAUSE_DISABLED:String = "PauseDisabled";
public static var DISPLAY_MORE:String = "ConsoleDisplayMore";
public static var PAUSE:String = "GamePause";
public static var DISPLAY_MEDALS:String = "ConsoleDisplayMedals";
public static var DISPLAY_CREDITS:String = "ConsoleDisplayCredits";
public static var EXIT:String = "GameExit";
public static var STARTED:String = "GameStarted";
public static var DISPLAY_PLAYGAME:String = "ConsoleDisplayPlayGame";
public static var GAME_COMPLETE:String = "Game Completed";
public static var DISPLAY_SHARE:String = "ConsoleDisplaySendToFriend";
public static var TRANSITION_COMPLETE:String = "Transition COmplete";
public static var RESUME:String = "GameResume";
public static var DISPLAY_INTRO:String = "ConsoleDisplayIntro";
public static var PAUSE_ENABLED:String = "PauseEnabled";
public static var DISPLAY_MUTANTS:String = "ConsoleDisplayScores";
public static var DISPLAY_HELP:String = "ConsoleDisplayHelp";
}
}//package console
Section 221
//LoginEvent (events.LoginEvent)
package events {
import flash.events.*;
public class LoginEvent extends Event {
private var _data:Object;
public static const REGISTER:String = "loginRegister";
public static const LOGIN:String = "loginLogin";
public static const LOGIN_SUCCESS:String = "loginSuccess";
public static const INITIALIZE:String = "loginInitialize";
public static const OPEN_LOGIN:String = "loginOpenLogin";
public static const LOGIN_CANCEL:String = "loginCancel";
public static const LOGIN_ERROR:String = "loginError";
public static const TRY_AGAIN:String = "loginTryAgain";
public static const SKIP:String = "loginSkip";
public function LoginEvent(_arg1:String, _arg2:Object=null){
super(_arg1);
_data = _arg2;
}
public function get data():Object{
return (_data);
}
override public function clone():Event{
return (new LoginEvent(type, _data));
}
}
}//package events
Section 222
//UIEvent (events.UIEvent)
package events {
import flash.events.*;
public class UIEvent extends Event {
public static const SHOW_HIGHSCORES:String = "UIShowHighScores";
public static const SUBMIT_SCORE:String = "UISubmitScore";
public static const SUBMIT_SCORE_AGAIN:String = "UISubmitScoreAgain";
public static const SUBMIT_SCORE_SUCCESS:String = "UISubmitScoreSuccess";
public static const CLOSE:String = "UIClose";
public static const SEND_SCORE:String = "UISendScore";
public static const LOAD_HIGHSCORES:String = "UILoadHighScores";
public static const SUBMIT_SCORE_FORM:String = "UISubmitScoreForm";
public function UIEvent(_arg1:String){
super(_arg1);
}
override public function clone():Event{
return (new UIEvent(type));
}
}
}//package events
Section 223
//Quadratic (fl.motion.easing.Quadratic)
package fl.motion.easing {
public class Quadratic {
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((_arg3 * _arg1) * _arg1) + _arg2));
}
public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / (_arg4 / 2));
if (_arg1 < 1){
return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2));
};
--_arg1;
return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2));
}
}
}//package fl.motion.easing
Section 224
//HudButton (game.hud.HudButton)
package game.hud {
import flash.events.*;
import flash.display.*;
import console.*;
import com.markfennell.sound.*;
import gs.*;
import org.casalib.display.*;
public class HudButton extends CasaSprite {
private var m_label:String;
private var m_item:MovieClip;
private var m_toggle:Boolean;// = true
private var m_event:String;
private var m_enabled:Boolean;// = true
private var m_canToggle:Boolean;// = false
private var m_labelToggle:String;
public function HudButton(_arg1:MovieClip, _arg2:String, _arg3:String, _arg4:String=""){
var a_item = _arg1;
var a_label = _arg2;
var a_event = _arg3;
var a_toggle = _arg4;
super();
m_item = a_item;
m_item.hover.alpha = 0;
m_event = a_event;
m_label = a_label;
if (a_toggle != ""){
m_canToggle = true;
m_labelToggle = a_toggle;
};
try {
m_item.label.text = m_label;
m_item.label.mouseEnabled = false;
m_item.buttonMode = (m_item.useHandCursor = true);
} catch(e:Error) {
};
m_item.addEventListener(MouseEvent.CLICK, handleClick);
m_item.addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
m_item.addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
this.buttonMode = true;
this.useHandCursor = true;
}
private function handleClick(_arg1:MouseEvent):void{
if (m_enabled){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_02", 0.5, 1));
if (m_canToggle){
if (m_toggle){
m_item.label.text = m_labelToggle;
m_toggle = false;
} else {
m_item.label.text = m_label;
m_toggle = true;
};
};
GameBroadcaster.dispatchEvent(new ConsoleEvent(m_event));
};
}
public function enable():void{
m_enabled = true;
TweenMax.to(m_item, 0.3, {alpha:1});
}
public function reset():void{
m_item.label.text = m_label;
m_toggle = true;
disable();
}
private function handleRollOut(_arg1:MouseEvent):void{
TweenMax.to(m_item.hover, 0.3, {alpha:0});
}
public function disable():void{
m_enabled = false;
TweenMax.to(m_item, 0.3, {alpha:0.5});
}
private function handleRollOver(_arg1:MouseEvent):void{
TweenMax.to(m_item.hover, 0.3, {alpha:1});
}
}
}//package game.hud
Section 225
//HudController (game.hud.HudController)
package game.hud {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import console.*;
import com.markfennell.sound.*;
import net.*;
import game.*;
import gs.*;
import flash.net.*;
import org.casalib.display.*;
import org.casalib.util.*;
import assets.*;
import fl.motion.easing.*;
public class HudController extends CasaSprite {
private var m_btnMedals:HudButton;
private var m_btnPause:HudButton;
private var m_showingTitleButtons:Boolean;
private var m_ui:HudUI;
private var m_canShowPanel:Boolean;// = true
private var m_stage:Stage;
private var m_level:int;
private var m_buttons:HudUIButtons;
private var m_scoreLength:int;// = 9
private var m_btnScores:HudButton;
private var m_startPanel:StartPanel;
private var m_btnMain:HudButton;
private var m_btnHelp:HudButton;
private var m_btnShare:HudButton;
private var m_mask:Shape;
private var m_btnMore:HudButton;
public function HudController(){
m_ui = new HudUI();
addChild(m_ui);
setScore();
m_startPanel = new StartPanel();
m_startPanel.x = 230;
m_startPanel.y = 500;
m_buttons = new HudUIButtons();
m_buttons.x = 365;
m_buttons.y = 434;
addChild(m_buttons);
User.getInstance().loadMedals();
m_buttons.ButtonHelp.x = 0;
m_buttons.ButtonScores.x = 0;
m_buttons.ButtonMore.x = 0;
m_buttons.ButtonShare.x = 0;
m_buttons.BaseHelp.x = 0;
m_buttons.BaseScores.x = 0;
m_buttons.BaseMore.x = 0;
m_buttons.BaseShare.x = 0;
m_btnHelp = new HudButton(m_buttons.ButtonHelp, "HOW TO PLAY", ConsoleEvents.DISPLAY_HELP);
m_btnScores = new HudButton(m_buttons.ButtonScores, "MUTANTS", ConsoleEvents.DISPLAY_MUTANTS);
m_btnMore = new HudButton(m_buttons.ButtonMore, "MORE GAMES", ConsoleEvents.DISPLAY_MORE);
m_btnShare = new HudButton(m_buttons.ButtonShare, "MEDALS", ConsoleEvents.DISPLAY_MEDALS);
m_btnMain = new HudButton(m_buttons.InGame.ButtonMain, "QUIT", ConsoleEvents.EXIT);
m_btnPause = new HudButton(m_buttons.InGame.ButtonPause, "PAUSE GAME", ConsoleEvents.PAUSE, "RESUME GAME");
m_stage = StageReference.getStage();
m_stage.addChild(m_startPanel);
m_mask = new Shape();
m_mask.graphics.beginFill(0xFFFFFF, 1);
m_mask.graphics.drawRect(230, 0, 270, 457);
m_mask.graphics.endFill();
addChild(m_mask);
m_startPanel.mask = m_mask;
m_startPanel.addEventListener(StartPanel.SHOW, handleStartPanel);
m_startPanel.addEventListener(StartPanel.HIDE, handleStartPanel);
GameBroadcaster.addEventListener(StartPanel.CLICK, handleStartPanel);
GameBroadcaster.addEventListener(ConsoleEvents.STARTED, showInGameButtons);
GameBroadcaster.addEventListener(ConsoleEvents.PAUSE_DISABLED, handlePauseState);
GameBroadcaster.addEventListener(ConsoleEvents.PAUSE_ENABLED, handlePauseState);
m_ui.btnMarvel.addEventListener(MouseEvent.CLICK, handleMouseClick);
m_ui.btnXmen.addEventListener(MouseEvent.CLICK, handleMouseClick);
m_ui.btnCredits.addEventListener(MouseEvent.CLICK, handleMouseClick);
m_ui.soundControls.musicButton.addEventListener(MouseEvent.CLICK, handleMouseClick);
m_ui.soundControls.soundButton.addEventListener(MouseEvent.CLICK, handleMouseClick);
hideButtons();
mouseEnabled = false;
}
private function handlePauseState(_arg1:ConsoleEvent):void{
trace("Handle Pause State");
switch (_arg1.type){
case ConsoleEvents.PAUSE_ENABLED:
m_btnPause.enable();
break;
case ConsoleEvents.PAUSE_DISABLED:
m_btnPause.disable();
break;
};
}
private function handleStartPanel(_arg1:StartEvent):void{
if (_arg1.type == StartPanel.SHOW){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_throw_whoosh_01", 0.8, 1));
if (m_canShowPanel){
TweenMax.to(m_startPanel, 0.25, {y:(395 - m_startPanel.itemsHeight), ease:Quadratic.easeOut});
};
};
if (_arg1.type == StartPanel.HIDE){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_throw_whoosh_03", 0.3, 1));
if (m_canShowPanel){
TweenMax.to(m_startPanel, 0.2, {y:395, ease:Quadratic.easeIn});
};
};
if (_arg1.type == StartPanel.CLICK){
if (m_canShowPanel){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_04", 0.5, 1));
m_level = _arg1.id;
hideTitleButtons();
m_canShowPanel = false;
};
};
}
private function onPlayLevel(_arg1:ConsoleEvent):void{
m_buttons.InGame.reloadXML.level.text = EmbeddedData.getLevel(int(_arg1.data)).url;
}
public function startGame():void{
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.DISPLAY_PLAYGAME, m_level));
}
public function hideInGameButtons():void{
TweenMax.to(m_buttons.InGame, 0.5, {delay:0, y:250, ease:Quadratic.easeOut});
}
private function handleMouseClick(_arg1:MouseEvent):void{
switch (_arg1.target){
case m_ui.btnCredits:
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.DISPLAY_CREDITS));
break;
case m_ui.soundControls.soundButton:
if (SoundController.getInstance().soundsEnabled == false){
m_ui.soundControls.soundSlider.gotoAndPlay("on");
trace("sound On");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "toggleSFX", "on");
SoundController.getInstance().soundsEnabled = true;
SoundController.getInstance().resumeSounds();
} else {
m_ui.soundControls.soundSlider.gotoAndPlay("off");
trace("sound Off");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "toggleSFX", "off");
SoundController.getInstance().soundsEnabled = false;
SoundController.getInstance().stopSounds();
};
break;
case m_ui.soundControls.musicButton:
if (SoundController.getInstance().musicEnabled == false){
m_ui.soundControls.musicSlider.gotoAndPlay("on");
trace("Music On");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "toggleMusic", "on");
SoundController.getInstance().musicEnabled = true;
SoundController.getInstance().resume_music();
} else {
m_ui.soundControls.musicSlider.gotoAndPlay("off");
trace("Music Off");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "toggleMusic", "off");
SoundController.getInstance().musicEnabled = false;
SoundController.getInstance().stop_music();
};
break;
case m_ui.btnMarvel:
trace("GOTO URL MARVEL");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "linkout", "marvel kids logo");
navigateToURL(Constants.URL_MARVELKIDS, "_blank");
break;
case m_ui.btnXmen:
trace("GOTO URL XMEN");
Console.GoogleAnalytics.trackEvent("MRD_Escape", "linkout", "xmen");
navigateToURL(Constants.URL_XMEN, "_blank");
break;
};
}
public function showTitleButtons():void{
hideButtons();
m_showingTitleButtons = true;
m_canShowPanel = true;
TweenMax.killAll(true, false, false);
hideInGameButtons();
TweenMax.to(m_startPanel, 0.25, {delay:0.2, y:393, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.ButtonHelp, 0.25, {delay:0.4, x:-260, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.BaseHelp, 0.25, {delay:0.4, x:-251, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.ButtonShare, 0.25, {delay:0.4, x:262, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.BaseShare, 0.25, {delay:0.4, x:251, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.ButtonScores, 0.25, {delay:0.5, x:-143, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.BaseScores, 0.25, {delay:0.5, x:-143, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.ButtonMore, 0.25, {delay:0.5, x:172, ease:Quadratic.easeOut});
TweenMax.to(m_buttons.BaseMore, 0.25, {delay:0.5, x:156, ease:Quadratic.easeOut});
setTimeout(revealButtons, 400);
}
private function onLevelReloadComplete():void{
}
private function onReloadButtonPress(_arg1:MouseEvent):void{
var _local2:String = m_buttons.InGame.reloadXML.level.text;
if (_local2.length > 0){
EmbeddedData.reloadLevel(_local2, m_level, onLevelReloadComplete);
};
}
public function updatePanel():void{
m_startPanel.updatePanel();
}
public function hide(_arg1:DisplayObject):void{
_arg1.visible = false;
}
public function setScore():void{
m_ui.scoretext.text = NumberUtil.format(User.getInstance().loadScore(), m_scoreLength, ",", "");
}
private function showInGameButtons(_arg1:ConsoleEvent):void{
m_btnPause.reset();
TweenMax.to(m_buttons.InGame, 0.5, {delay:0, y:-2, ease:Quadratic.easeOut});
}
private function hideButtons():void{
m_buttons.ButtonHelp.visible = false;
m_buttons.BaseHelp.visible = false;
m_buttons.ButtonShare.visible = false;
m_buttons.BaseShare.visible = false;
m_buttons.ButtonScores.visible = false;
m_buttons.BaseScores.visible = false;
m_buttons.ButtonMore.visible = false;
m_buttons.BaseMore.visible = false;
}
public function get showingTitleButtons():Boolean{
return (m_showingTitleButtons);
}
public function disableHud():void{
mouseChildren = false;
TweenMax.to(m_buttons, 0.25, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}});
TweenMax.to(m_startPanel, 0.25, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}});
}
private function hideTitleButtons():void{
m_showingTitleButtons = false;
TweenMax.to(m_buttons.ButtonHelp, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonHelp]});
TweenMax.to(m_buttons.BaseHelp, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseHelp]});
TweenMax.to(m_buttons.ButtonShare, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonShare]});
TweenMax.to(m_buttons.BaseShare, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseShare]});
TweenMax.to(m_buttons.ButtonScores, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonScores]});
TweenMax.to(m_buttons.BaseScores, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseScores]});
TweenMax.to(m_buttons.ButtonMore, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonMore]});
TweenMax.to(m_buttons.BaseMore, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseMore]});
TweenMax.to(m_startPanel, 0.2, {delay:0.2, y:700, ease:Quadratic.easeIn, onComplete:startGame});
}
private function revealButtons():void{
m_buttons.ButtonHelp.visible = true;
m_buttons.BaseHelp.visible = true;
m_buttons.ButtonShare.visible = true;
m_buttons.BaseShare.visible = true;
m_buttons.ButtonScores.visible = true;
m_buttons.BaseScores.visible = true;
m_buttons.ButtonMore.visible = true;
m_buttons.BaseMore.visible = true;
}
override public function destroy():void{
removeChild(m_ui);
m_ui = null;
super.destroy();
}
public function enableHud():void{
TweenMax.to(m_buttons, 0.25, {colorMatrixFilter:{}});
TweenMax.to(m_startPanel, 0.25, {colorMatrixFilter:{}});
mouseChildren = true;
m_ui.mouseEnabled = false;
m_ui.top.mouseEnabled = (m_ui.top.mouseChildren = false);
}
}
}//package game.hud
Section 226
//StartEvent (game.hud.StartEvent)
package game.hud {
import flash.events.*;
public class StartEvent extends Event {
public var id:int;
public static var PLAY:String = "PlayGame";
public function StartEvent(_arg1:String, _arg2:int){
super(_arg1, true, true);
id = _arg2;
}
override public function clone():Event{
return (new StartEvent(type, id));
}
}
}//package game.hud
Section 227
//StartPanel (game.hud.StartPanel)
package game.hud {
import flash.events.*;
import flash.display.*;
import net.*;
import org.casalib.display.*;
import org.casalib.util.*;
import assets.*;
public class StartPanel extends CasaSprite {
private var m_base:int;// = 395
private var m_gap:int;// = 28
private var m_item:StartPanelItem;
public var itemsHeight:int;// = 0
private var m_itemsArray:Array;
private var m_panel:DisplayObject;
private var m_offsetX:int;// = 0
private var m_offsetY:int;// = 0
private var m_showing:Boolean;// = false
private var m_header:HudStartUI;
public static var CLICK:String = "StartPanelClicked";
public static var HIDE:String = "StartPanelHide";
public static var SHOW:String = "StartPanelShow";
public function StartPanel(){
var _local1:XML;
var _local2:String;
m_itemsArray = [];
super();
m_header = new HudStartUI();
addChild(m_header);
var _local3:int;
while (_local3 < EmbeddedData.levelNum) {
_local1 = EmbeddedData.getLevel(_local3).xml;
_local2 = ((("Level " + String((_local3 + 1))) + ": ") + String(_local1.name));
m_item = new StartPanelItem(_local2, _local3);
m_item.x = m_offsetX;
m_item.y = (m_offsetY + (m_gap * _local3));
m_header.buttonContainer.addChild(m_item);
m_itemsArray.push(m_item);
itemsHeight = (itemsHeight + m_gap);
_local3++;
};
m_header.btnStart.addEventListener(MouseEvent.ROLL_OVER, showPanel);
StageReference.getStage().addEventListener(MouseEvent.MOUSE_MOVE, hidePanel);
updatePanel();
}
public function showPanel(_arg1:MouseEvent=null):void{
if (!m_showing){
m_showing = true;
dispatchEvent(new StartEvent(SHOW, 0));
};
}
public function hidePanel(_arg1:MouseEvent=null):void{
var _local2:Boolean;
if (!m_showing){
return;
};
if ((((((_arg1.stageX < 229)) || ((_arg1.stageX > 501)))) || ((_arg1.stageY < (395 - itemsHeight))))){
m_showing = false;
dispatchEvent(new StartEvent(HIDE, 0));
};
}
public function updatePanel():void{
var _local1:Array = User.getInstance().loadLevels();
var _local2:int;
while (_local2 < m_itemsArray.length) {
if (_local1[_local2]){
m_itemsArray[_local2].unlock();
};
_local2++;
};
}
}
}//package game.hud
Section 228
//StartPanelItem (game.hud.StartPanelItem)
package game.hud {
import flash.events.*;
import gs.*;
import org.casalib.display.*;
import assets.*;
public class StartPanelItem extends CasaSprite {
private var m_item:HudItemUI;
private var m_itemBase:HudItemBaseUI;
public var id:int;
public function StartPanelItem(_arg1:String, _arg2:int){
id = _arg2;
m_item = new HudItemUI();
m_item.titleText.text = _arg1;
m_item.hover.alpha = 0;
addChild(m_item);
if (id > 0){
m_itemBase = new HudItemBaseUI();
addChildAt(m_itemBase, 0);
};
mouseChildren = false;
}
private function handleClick(_arg1:MouseEvent):void{
GameBroadcaster.dispatchEvent(new StartEvent(StartPanel.CLICK, id));
}
public function unlock():void{
m_item.locked.visible = false;
addEventListener(MouseEvent.CLICK, handleClick);
addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
this.buttonMode = true;
this.useHandCursor = true;
}
private function handleRollOut(_arg1:MouseEvent):void{
TweenMax.to(m_item.hover, 0.3, {alpha:0});
}
private function handleRollOver(_arg1:MouseEvent):void{
TweenMax.to(m_item.hover, 0.3, {alpha:1});
}
override public function destroy():void{
removeChild(m_item);
m_item = null;
if (id > 0){
removeChild(m_itemBase);
m_itemBase = null;
};
super.destroy();
}
}
}//package game.hud
Section 229
//IConsoleSection (game.interfaces.IConsoleSection)
package game.interfaces {
import flash.events.*;
public interface IConsoleSection extends IEventDispatcher {
function destroy():void;
function hide():void;
function doResume():void;
function transitionOut():void;
function transitionIn():void;
function doPause():void;
function transitionIn_COMPLETE():void;
}
}//package game.interfaces
Section 230
//IGameController (game.interfaces.IGameController)
package game.interfaces {
import flash.events.*;
public interface IGameController {
function nextLevel(_arg1:Event=null):void;
function doResume():void;
function destroy():void;
function doPause():void;
function replayLevel(_arg1:Event=null):void;
function restart(_arg1:Event=null):void;
}
}//package game.interfaces
Section 231
//ILevelController (game.interfaces.ILevelController)
package game.interfaces {
import flash.display.*;
import game.levels.*;
import org.casalib.display.*;
public interface ILevelController {
function init(_arg1:Level):void;
function renderPhysics():void;
function get gameBitmapData():BitmapData;
function render(_arg1):void;
function doResume():void;
function get gameBitmap():CasaBitmap;
function doPause():void;
function renderDisplay():void;
}
}//package game.interfaces
Section 232
//IObstacle (game.interfaces.IObstacle)
package game.interfaces {
import flash.geom.*;
public interface IObstacle {
function destroy():void;
function positionFromTile(_arg1:int, _arg2:int):Point;
function get sx():int;
function get sy():int;
function getRange(_arg1:Point):Number;
function setOn():void;
function get isOn():Boolean;
function set sx(_arg1:int):void;
function get tileY():int;
function renderDisplay(_arg1:int, _arg2:int):void;
function setOff():void;
function setAnimationState(_arg1:String):void;
function get isActive():Boolean;
function renderPhysics():void;
function get point():Point;
function get tileX():int;
function get type():String;
function get range():int;
}
}//package game.interfaces
Section 233
//CutSceneController (game.levels.CutSceneController)
package game.levels {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import console.*;
import game.*;
import flash.media.*;
import gs.*;
import org.casalib.display.*;
import org.casalib.util.*;
import assets.*;
import flash.ui.*;
public class CutSceneController extends CasaSprite {
private var m_ui:MovieClip;
private var embed_VideoEndSequence:VideoEndSequence;
private var m_stage:Stage;
private var embed_VideoUnlockSequence:VideoUnlockSequence;
private var m_skipTime:int;
private var embed_VideoIntroSequence:VideoIntroSequence;
public static var displayed:Boolean = false;
override public function destroy():void{
removeCutScene();
super.destroy();
}
public function display(_arg1:CutSceneEvent):void{
var _local3:SoundTransform;
m_skipTime = getTimer();
displayed = true;
m_stage = StageReference.getStage();
var _local2:* = getDefinitionByName(_arg1.cutScene);
m_ui = new (_local2);
addChild(m_ui);
m_ui.x = 8;
m_ui.y = 64;
m_ui.alpha = 0;
TweenMax.to(m_ui, 0, {tint:0xFFFFFF});
TweenMax.to(m_ui, 0.25, {alpha:1, delay:0.05});
TweenMax.to(m_ui, 0.25, {delay:0.3, removeTint:true});
m_ui.addEventListener(Event.ENTER_FRAME, render);
if (SoundController.getInstance().soundsEnabled == false){
_local3 = new SoundTransform();
_local3.volume = 0;
this.soundTransform = _local3;
};
setupKeyListener();
m_stage.frameRate = 25;
}
public function removeCutScene_COMPLETE():void{
if (m_ui){
removeChild(m_ui);
m_ui = null;
};
displayed = false;
GameBroadcaster.dispatchEvent(new CutSceneEvent(CutSceneEvent.HIDE, null));
}
private function clearKeyListener():void{
StageReference.getStage().removeEventListener(KeyboardEvent.KEY_UP, handleCutSeneKeyUp);
}
private function removeCutScene():void{
if (m_ui){
m_ui.removeEventListener(Event.ENTER_FRAME, render);
m_ui.stop();
TweenMax.to(m_ui, 0.25, {alpha:0, onComplete:removeCutScene_COMPLETE});
};
if (m_stage){
m_stage.frameRate = Constants.FRAME_RATE;
};
}
private function setupKeyListener():void{
clearKeyListener();
StageReference.getStage().addEventListener(KeyboardEvent.KEY_UP, handleCutSeneKeyUp);
}
private function handleCutSeneKeyUp(_arg1:KeyboardEvent):void{
if ((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.keyCode == Keyboard.ESCAPE)))){
removeCutScene();
if (Console.firstPlay){
Console.GoogleAnalytics.trackEvent("MRD_Escape", "intro", "skipped", int(((getTimer() - m_skipTime) / 1000)));
};
};
}
private function render(_arg1:Event):void{
if (m_ui.currentFrame == m_ui.totalFrames){
m_ui.removeEventListener(Event.ENTER_FRAME, render);
m_ui.stop();
removeCutScene();
};
}
}
}//package game.levels
Section 234
//CutSceneEvent (game.levels.CutSceneEvent)
package game.levels {
import flash.events.*;
public class CutSceneEvent extends Event {
public var cutScene:String;
public static var DISPLAY:String = "DisplayCutScene";
public static var HIDE:String = "HideCutScene";
public function CutSceneEvent(_arg1:String, _arg2:String){
super(_arg1, true, true);
cutScene = _arg2;
}
override public function clone():Event{
return (new CutSceneEvent(type, cutScene));
}
}
}//package game.levels
Section 235
//Digit (game.levels.Digit)
package game.levels {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.markfennell.sound.*;
public class Digit extends EventDispatcher {
private var m_target:MovieClip;
private var m_stickTime:int;// = 40
private var m_id:int;
private static var m_digitsArray:Array = [];
public function Digit(_arg1:MovieClip, _arg2:int){
m_target = _arg1;
m_id = _arg2;
m_target.sheen.visible = false;
m_target.digit.text = (m_id + 1);
m_target.digit.mouseEnabled = false;
m_target.gotoAndStop("up");
m_target.addEventListener(MouseEvent.CLICK, handleClick);
m_target.addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_target.addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
m_target.buttonMode = true;
m_digitsArray.push(this);
}
private function handleClick(_arg1:MouseEvent):void{
click();
}
public function click():void{
m_target.gotoAndStop("down");
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_dry_fire_02", 1, 1));
dispatchEvent(new DigitEvent(DigitEvent.CLICK, m_id));
setTimeout(reset, m_stickTime);
}
private function handleRollOut(_arg1:MouseEvent):void{
m_target.sheen.visible = false;
}
public function reset():void{
m_target.gotoAndStop("up");
}
private function handleRollOver(_arg1:MouseEvent):void{
m_target.sheen.visible = true;
}
public function get id():int{
return (m_id);
}
public static function keyClick(_arg1:int):void{
var _local2:int;
while (_local2 < m_digitsArray.length) {
if (_arg1 == m_digitsArray[_local2].id){
m_digitsArray[_local2].click();
return;
};
_local2++;
};
}
public static function reset():void{
var _local1:int;
while (_local1 < m_digitsArray.length) {
m_digitsArray[_local1] = null;
_local1++;
};
m_digitsArray = [];
}
}
}//package game.levels
Section 236
//DigitEvent (game.levels.DigitEvent)
package game.levels {
import flash.events.*;
public class DigitEvent extends Event {
public var id:int;
public static var CLICK:String = "DigitClick";
public function DigitEvent(_arg1:String, _arg2:int){
super(_arg1, true, true);
id = _arg2;
}
override public function clone():Event{
return (new DigitEvent(type, id));
}
}
}//package game.levels
Section 237
//EndLevel (game.levels.EndLevel)
package game.levels {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import console.*;
import pages.*;
import events.*;
import net.*;
import game.*;
import game.medals.*;
import gs.*;
import org.casalib.display.*;
import org.casalib.util.*;
import assets.*;
import com.electrotank.util.*;
import com.markfennell.display.*;
import com.malee.utils.*;
import flash.ui.*;
public class EndLevel extends CasaSprite {
private var m_ui:MovieClip;
private var m_submitScore:SubmitScore;
private var m_medalsArray:Array;
private var m_level:Level;
private var m_stage:Stage;
private var m_state:String;
private static var m_totalTime:Dictionary;
public function EndLevel(_arg1:String, _arg2:int, _arg3:Level){
m_stage = StageReference.getStage();
m_level = _arg3;
m_state = _arg1;
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_DISABLED));
switch (m_state){
case GameController.LEVEL_COMPLETED:
Console.GoogleAnalytics.trackPageview((("MRD_Escape/game/level/" + String((m_level.id + 1))) + "/complete"));
Console.GoogleAnalytics.trackEvent("MRD_Escape", "finishLevel", String((m_level.id + 1)), int((_arg2 / 1000)));
m_ui = new LevelEndCompleteUI();
populate(_arg2);
m_totalTime[_arg3] = _arg2;
m_stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
m_ui.btnPlay.addEventListener(MouseEvent.CLICK, handleClick);
break;
case GameController.LEVEL_FAILED:
Console.GoogleAnalytics.trackPageview((("MRD_Escape/game/level/" + String((m_level.id + 1))) + "/fail"));
m_ui = new LevelEndFailedUI();
m_stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
m_ui.btnPlay.addEventListener(MouseEvent.CLICK, handleClick);
if (MemoryCrypto.getValue("score") == 0){
m_ui.btnPlay.x = 0;
};
break;
case GameController.GAME_COMPLETED:
Console.GoogleAnalytics.trackPageview((("MRD_Escape/game/level/" + String((m_level.id + 1))) + "/complete"));
Console.GoogleAnalytics.trackEvent("MRD_Escape", "finishLevel", String((m_level.id + 1)), int((_arg2 / 1000)));
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.WEAPONX, m_level.id, MemoryCrypto.getValue("score")));
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.BEST, m_level.id, totalTime()));
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.NINJA_SKILLS, m_level.id));
m_ui = new LevelEndGameCompleteUI();
m_totalTime[_arg3] = _arg2;
populate(_arg2);
GameBroadcaster.dispatchEvent(new Event(ConsoleEvents.GAME_COMPLETE));
};
m_ui.textScore.text = TextUtil.formatScoreComma(MemoryCrypto.getValue("score"));
addChild(m_ui);
m_ui.x = int((m_stage.stageWidth * 0.5));
m_ui.y = int((m_stage.stageHeight * 0.5));
m_ui.alpha = 0;
TweenMax.to(m_ui, 0.3, {delay:0.25, alpha:1});
}
private function handleClick(_arg1=null):void{
GameBroadcaster.dispatchEvent(new Event(m_state));
transitionOut(handleClick_COMPLETE);
}
override public function destroy():void{
m_stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
if (m_ui){
if (m_ui.btnPlay){
m_ui.btnPlay.removeEventListener(MouseEvent.CLICK, handleClick);
};
if (m_submitScore){
m_submitScore.destroy();
};
transitionOut(destroy_COMPLETE);
};
}
public function destroy_COMPLETE():void{
removeChild(m_ui);
m_ui = null;
super.destroy();
MedalDisplay.destroyAll();
}
public function handleClick_COMPLETE():void{
if (m_state == GameController.LEVEL_FAILED){
Console.GoogleAnalytics.trackPageview(("MRD_Escape/replay level/" + String((m_level.id + 1))));
};
}
private function populate(_arg1:int):void{
var _local5:MedalDisplay;
var _local2:int;
var _local3 = 10;
m_ui.textTime.text = String(TimeKeeper.display(_arg1, ":", ":"));
if ((m_level.time - _arg1) > 0){
_local2 = ((m_level.time - _arg1) * Constants.POINTS_TIME);
};
MemoryCrypto.incrementValue("score", _local2);
_local2 = (LevelController.attempts * Constants.POINTS_ALARM);
m_ui.textAlarms.text = String(_local2);
MemoryCrypto.incrementValue("score", _local2);
_local2 = MemoryCrypto.getValue("bonus");
m_ui.textBonusPoints.text = TextUtil.formatScoreComma(_local2);
MemoryCrypto.incrementValue("score", _local2);
MemoryCrypto.setValue("bonus", 0);
if (m_state == GameController.GAME_COMPLETED){
_local3 = 28;
m_ui.textGameTime.text = String(TimeKeeper.display(totalTime(), ":", ":"));
};
m_medalsArray = Medal.getMedals(m_level.id);
var _local4:int;
while (_local4 < m_medalsArray.length) {
_local5 = new MedalDisplay(m_medalsArray[_local4]);
_local5.x = (10 + (_local4 * 35));
_local5.y = _local3;
m_ui.addChild(_local5);
_local4++;
};
User.getInstance().unlockLevel((m_level.id + 1));
User.getInstance().saveScore();
User.getInstance().saveMedals(MedalController.getMedals());
}
private function handleSubmit(_arg1:MouseEvent):void{
m_stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
m_submitScore = new SubmitScore();
m_submitScore.transitionIn();
m_submitScore.addEventListener(UIEvent.SUBMIT_SCORE_SUCCESS, onSubmitScoreSuccess);
addChild(m_submitScore);
}
private function totalTime():int{
var _local2:Object;
var _local1:int;
for each (_local2 in m_totalTime) {
_local1 = (_local1 + _local2);
};
return (_local1);
}
private function onSubmitScoreSuccess(_arg1:UIEvent):void{
if (m_ui.btnPlay){
m_ui.btnPlay.x = 0;
};
m_stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
}
private function handleKeyboardUp(_arg1:KeyboardEvent):void{
if (_arg1.keyCode == Keyboard.SPACE){
m_stage.removeEventListener(KeyboardEvent.KEY_UP, handleKeyboardUp);
handleClick();
};
}
private function transitionOut(_arg1:Function):void{
TweenMax.to(m_ui, 0.3, {alpha:0, onComplete:_arg1});
}
public static function reset():void{
m_totalTime = new Dictionary();
}
}
}//package game.levels
Section 238
//Level (game.levels.Level)
package game.levels {
import flash.geom.*;
public class Level {
public var unlock:String;
private var m_levelXML:XML;
public var collisionArray:Array;
public var mapWidth:int;
public var doorArray:Array;
public var backgroundBlank:int;
public var tileSize:int;
public var foregroundBlank:int;
public var backgroundArray:Array;
public var id:int;
public var time:int;
public var player:Point;
public var mapHeight:int;
public var foregroundArray:Array;
public var backgroundTileset:String;
public var foregroundTileset:String;
public var introText:String;
public function Level(_arg1:int){
var _local2:int;
var _local3:Array;
backgroundArray = [];
foregroundArray = [];
collisionArray = [];
doorArray = [];
super();
id = _arg1;
m_levelXML = EmbeddedData.getLevel(_arg1).xml;
introText = String(m_levelXML.description);
tileSize = int(m_levelXML.map.@tileSize);
_local2 = 0;
while (_local2 < m_levelXML.map.background.data.length()) {
_local3 = NumberArray(String(m_levelXML.map.background.data[_local2]).split(","));
backgroundArray.push(_local3);
_local2++;
};
_local2 = 0;
while (_local2 < m_levelXML.map.foreground.data.length()) {
_local3 = NumberArray(String(m_levelXML.map.foreground.data[_local2]).split(","));
foregroundArray.push(_local3);
_local2++;
};
_local2 = 0;
while (_local2 < m_levelXML.map.collision.data.length()) {
_local3 = NumberArray(String(m_levelXML.map.collision.data[_local2]).split(","));
collisionArray.push(_local3);
_local2++;
};
foregroundTileset = String(m_levelXML.map.foreground.@tileset);
backgroundTileset = String(m_levelXML.map.background.@tileset);
foregroundBlank = int(m_levelXML.map.foreground.@blank);
backgroundBlank = int(m_levelXML.map.background.@blank);
unlock = String(m_levelXML.unlock);
time = int(m_levelXML.time);
player = new Point(int(m_levelXML.start.@x), int(m_levelXML.start.@y));
mapWidth = collisionArray[0].length;
mapHeight = collisionArray.length;
}
public function validHeight(_arg1:int):int{
if (_arg1 < 0){
return (0);
};
if (_arg1 >= (mapHeight - 1)){
return ((mapHeight - 1));
};
return (_arg1);
}
public function getXMLList(_arg1:String):XML{
var _local2:int;
while (_local2 < m_levelXML.children().length()) {
if (m_levelXML.children()[_local2].name() == _arg1){
return (m_levelXML.children()[_local2]);
};
_local2++;
};
return (null);
}
public function validWidth(_arg1:int):int{
if (_arg1 < 0){
return (0);
};
if (_arg1 >= (mapWidth - 1)){
return ((mapWidth - 1));
};
return (_arg1);
}
private function NumberArray(_arg1:Array):Array{
var _local2:Array = [];
var _local3:int;
while (_local3 < _arg1.length) {
_local2.push(int(_arg1[_local3]));
_local3++;
};
return (_local2);
}
}
}//package game.levels
Section 239
//LevelController (game.levels.LevelController)
package game.levels {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import console.*;
import com.markfennell.sound.*;
import game.*;
import game.medals.*;
import gs.*;
import flash.filters.*;
import org.casalib.display.*;
import flash.geom.*;
import game.obstacles.*;
import game.interfaces.*;
import org.casalib.util.*;
import com.electrotank.util.*;
import com.markfennell.utils.*;
import com.markfennell.display.*;
import game.tiles.*;
import game.player.*;
import com.keyboard.*;
import flash.ui.*;
public class LevelController extends CasaSprite implements ILevelController {
private var m_timeDiff:int;// = 0
private var m_overSleepTime:int;// = 0
private var m_excess:int;// = 0
private var m_filter:BlurFilter;
private var m_afterTime:int;// = 0
private var m_useTimer:Boolean;// = false
private var m_startTimer:Boolean;// = false
private var m_introShown:Boolean;// = false
private var m_levelRobots:int;
private var m_showIntro:Boolean;// = false
private var m_gameTimer:Timer;
private var m_stageRectangle:Rectangle;
private var m_gameBitmapData:BitmapData;
private var m_dx:int;
private var m_dy:int;
private var m_pause:Boolean;// = false
private var m_obstacleController:ObstacleController;
private var m_timeKeeper:TimeKeeper;
private var m_level:Level;
private var m_filterShow:Boolean;// = false
private var m_cutSceneController:CutSceneController;
private var m_origin:Point;
private var m_period:Number;// = 32
private var m_gameBitmap:CasaBitmap;
private var m_robots:Boolean;// = false
private var m_tileLayerFG:TileEngine;
private var m_player:Player;
private var m_tileLayerBG:TileEngine;
private var m_miniGameController:MiniGameController;
private var m_sleepTime:int;// = 0
private var m_beforeTime:int;// = 0
public static var ALARM:String = "LevelAlarm";
public static var attempts:int = 0;
public static var COMPLETE:String = "LevelComplete";
public static var PAN_HIDE:String = "PanHide";
public static var PAN_SHOW:String = "PanShow";
public function LevelController(){
m_origin = new Point(0, 0);
m_filter = new BlurFilter(5, 5, 1);
super();
Key.initialize(StageReference.getStage());
StageReference.getStage().addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
StageReference.getStage().addEventListener(KeyboardEvent.KEY_UP, handleKeyUp);
StageReference.getStage().focus = this;
}
private function handlePauseTimeout():void{
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_ENABLED));
}
public function clearListeners():void{
StageReference.getStage().removeEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
StageReference.getStage().removeEventListener(KeyboardEvent.KEY_UP, handleKeyUp);
GameBroadcaster.removeEventListener(RumbleEvent.RUMBLE, handleRumble);
GameBroadcaster.removeEventListener(MiniGameEvent.DISPLAY, handleMiniGame);
GameBroadcaster.removeEventListener(MiniGameEvent.HIDE, handleMiniGame);
GameBroadcaster.removeEventListener(CutSceneEvent.DISPLAY, handleCutScene);
GameBroadcaster.removeEventListener(CutSceneEvent.HIDE, handleCutScene);
GameBroadcaster.removeEventListener(PAN_SHOW, handleLevelPan);
GameBroadcaster.removeEventListener(PAN_HIDE, handleLevelPan);
if (m_useTimer){
m_gameTimer.removeEventListener(TimerEvent.TIMER, render);
m_gameTimer.stop();
m_gameTimer = null;
} else {
removeEventListener(Event.ENTER_FRAME, render);
};
}
private function handleKeyInput():void{
m_player.resetInputs();
if (Key.isDown(Keyboard.LEFT)){
m_player.inputLeft = true;
} else {
if (Key.isDown(Keyboard.RIGHT)){
m_player.inputRight = true;
};
};
}
public function get gameBitmapData():BitmapData{
return (m_gameBitmapData);
}
public function gameOver():void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_SOUNDDOGS_AL_147468", 1, 1, true));
var _local1:DelayedCall = new DelayedCall(doPause, [], 1, false);
TweenMax.to(m_gameBitmap, 1, {colorMatrixFilter:{colorize:0xFF0000, amount:1}});
clearListeners();
}
public function render(_arg1):void{
if (m_useTimer){
m_beforeTime = getTimer();
m_overSleepTime = ((m_beforeTime - m_afterTime) - m_sleepTime);
renderPhysics();
renderDisplay();
m_afterTime = getTimer();
m_timeDiff = (m_afterTime - m_beforeTime);
m_sleepTime = ((m_period - m_timeDiff) - m_overSleepTime);
if (m_sleepTime <= 0){
m_excess = (m_excess - m_sleepTime);
m_sleepTime = 2;
};
m_gameTimer.reset();
m_gameTimer.delay = m_sleepTime;
m_gameTimer.start();
while (m_excess > m_period) {
renderPhysics();
m_excess = (m_excess - m_period);
};
_arg1.updateAfterEvent();
} else {
renderPhysics();
renderDisplay();
};
}
public function doResume():void{
m_pause = false;
m_timeKeeper.start();
}
private function handleKeyUp(_arg1:KeyboardEvent):void{
if (m_pause){
return;
};
if (((MiniGameController.displayed) || (CutSceneController.displayed))){
return;
};
if (_arg1.keyCode == Keyboard.DOWN){
m_player.resetCrouch();
};
}
private function handleRobotDestroyed(_arg1:MedalEvent):void{
trace("Level Robot Destroyed");
m_levelRobots--;
}
public function init(_arg1:Level):void{
m_level = _arg1;
Console.GoogleAnalytics.trackPageview((("MRD_Escape/game/level/" + String((_arg1.id + 1))) + "/start"));
m_stageRectangle = new Rectangle(0, 0, Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT);
m_gameBitmapData = new BitmapData(Constants.STAGE_WIDTH, Constants.STAGE_HEIGHT, false, 0);
m_gameBitmap = new CasaBitmap(m_gameBitmapData);
addChild(m_gameBitmap);
m_obstacleController = new ObstacleController(m_level, m_gameBitmapData);
m_player = new Player(m_level, m_gameBitmapData);
m_player.placePlayer();
m_tileLayerBG = new TileEngine(m_level.tileSize, m_level.backgroundBlank, m_level.backgroundArray, m_level.backgroundTileset);
m_tileLayerFG = new TileEngine(m_level.tileSize, m_level.foregroundBlank, m_level.foregroundArray, m_level.foregroundTileset);
if (m_useTimer){
m_gameTimer = new Timer(m_period, 1);
m_gameTimer.addEventListener(TimerEvent.TIMER, render);
m_gameTimer.start();
} else {
addEventListener(Event.ENTER_FRAME, render);
};
GameBroadcaster.addEventListener(RumbleEvent.RUMBLE, handleRumble);
GameBroadcaster.addEventListener(MiniGameEvent.DISPLAY, handleMiniGame);
GameBroadcaster.addEventListener(MiniGameEvent.HIDE, handleMiniGame);
GameBroadcaster.addEventListener(CutSceneEvent.DISPLAY, handleCutScene);
GameBroadcaster.addEventListener(CutSceneEvent.HIDE, handleCutScene);
GameBroadcaster.addEventListener(PAN_SHOW, handleLevelPan);
GameBroadcaster.addEventListener(PAN_HIDE, handleLevelPan);
m_miniGameController = new MiniGameController(m_level.introText);
addChild(m_miniGameController);
m_cutSceneController = new CutSceneController();
addChild(m_cutSceneController);
m_timeKeeper = new TimeKeeper();
m_showIntro = false;
m_introShown = false;
MemoryCrypto.setValue("bonus", 0);
if (Guard.guards > 0){
m_levelRobots = (Guard.guards - 1);
GameBroadcaster.addEventListener(MedalEvent.ROBOT_DESTROYED, handleRobotDestroyed);
m_robots = true;
} else {
m_robots = false;
};
}
public function renderDisplay():void{
if (((Console.firstPlay) && ((m_level.id == 0)))){
handleCutScene(new CutSceneEvent(CutSceneEvent.DISPLAY, "assets.VideoIntroSequence"));
} else {
if (!m_introShown){
m_showIntro = true;
m_introShown = true;
};
};
if (!m_pause){
m_dx = int((-(m_player.sx) + 365));
m_dy = int(((-(m_player.sy) + 236) + 55));
m_gameBitmapData.lock();
m_gameBitmapData.copyPixels(m_tileLayerBG.renderDisplay(-(m_dx), -(m_dy)), m_stageRectangle, m_origin);
m_obstacleController.renderDisplay(-(m_dx), -(m_dy));
m_player.renderDisplay();
m_gameBitmapData.copyPixels(m_tileLayerFG.renderDisplay(-(m_dx), -(m_dy)), m_stageRectangle, m_origin);
if (m_filterShow){
m_gameBitmapData.applyFilter(m_gameBitmapData, m_stageRectangle, new Point(0, 0), m_filter);
};
m_gameBitmapData.unlock();
};
if (m_showIntro){
handleMiniGame(new MiniGameEvent(MiniGameEvent.DISPLAY, MiniGameTypes.MINIGAME_INTRO, null, m_level.id));
m_showIntro = false;
};
}
private function handleLevelPan(_arg1:PanEvent):void{
if (_arg1.type == PAN_SHOW){
m_player.moveSprite(_arg1.x, _arg1.y, 1, _arg1.callBack);
m_filterShow = true;
} else {
m_filterShow = false;
};
}
private function handleCutScene(_arg1:CutSceneEvent):void{
switch (_arg1.type){
case CutSceneEvent.DISPLAY:
if (!CutSceneController.displayed){
Guard.resetWarnings();
CCTV.pauseTimers();
m_cutSceneController.display(_arg1);
doPause();
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_DISABLED));
};
break;
case CutSceneEvent.HIDE:
if (!m_introShown){
m_showIntro = true;
m_introShown = true;
};
if (Console.firstPlay){
Console.firstPlay = false;
};
doResume();
CCTV.resumeTimers();
stage.focus = this;
if (!Console.firstPlay){
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_ENABLED));
};
break;
};
}
private function handleMiniGame(_arg1:MiniGameEvent):void{
switch (_arg1.type){
case MiniGameEvent.DISPLAY:
if (!MiniGameController.displayed){
Guard.resetWarnings();
CCTV.pauseTimers();
m_miniGameController.display(_arg1);
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_DISABLED));
doPause();
};
if (m_showIntro){
switch (m_level.id){
case 1:
SoundController.getInstance().start_music(2);
break;
case 2:
SoundController.getInstance().start_music(3);
break;
case 3:
SoundController.getInstance().start_music(1);
break;
case 4:
SoundController.getInstance().start_music(2);
break;
case 5:
SoundController.getInstance().start_music(3);
break;
case 6:
SoundController.getInstance().start_music(1);
break;
case 7:
SoundController.getInstance().start_music(2);
break;
case 8:
SoundController.getInstance().start_music(3);
break;
case 9:
SoundController.getInstance().start_music(1);
break;
default:
SoundController.getInstance().start_music(1);
break;
};
};
break;
case MiniGameEvent.HIDE:
doResume();
CCTV.resumeTimers();
stage.focus = this;
if (!m_startTimer){
m_player.start();
m_startTimer = true;
m_timeKeeper.start();
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.STARTED));
};
GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvents.PAUSE_ENABLED));
break;
};
}
public function doPause():void{
m_pause = true;
m_timeKeeper.stop();
}
public function get time():int{
return (m_timeKeeper.getMili());
}
public function get gameBitmap():CasaBitmap{
return (m_gameBitmap);
}
public function renderPhysics():void{
if (!m_pause){
if (((MiniGameController.displayed) || (CutSceneController.displayed))){
return;
};
handleKeyInput();
m_player.renderPhysics(m_obstacleController.obstacles);
m_obstacleController.renderPhysics();
};
}
public function stopTimer():void{
m_timeKeeper.stop();
}
private function handleKeyDown(_arg1:KeyboardEvent):void{
if (m_pause){
return;
};
if (((MiniGameController.displayed) || (CutSceneController.displayed))){
return;
};
if (_arg1.keyCode == Keyboard.SPACE){
m_player.handleSpace();
} else {
if (_arg1.keyCode == Keyboard.UP){
m_player.handleUp();
} else {
if (_arg1.keyCode == Keyboard.DOWN){
m_player.handleDown();
};
};
};
}
public function checkMedalSecretAgent():void{
if (m_robots){
if (m_levelRobots == (Guard.guards - 1)){
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.SECRET, m_level.id));
};
};
}
private function handleRumble(_arg1:RumbleEvent=null):void{
Earthquake.go(this, _arg1.intensity, _arg1.time);
}
override public function destroy():void{
trace("Level Controller destroy");
SoundController.getInstance().stopLasers();
clearListeners();
m_player.destroy();
m_gameBitmap.destroy();
m_gameBitmapData.dispose();
m_obstacleController.destroy();
m_tileLayerBG.destroy();
m_tileLayerFG.destroy();
m_tileLayerBG = null;
m_tileLayerFG = null;
m_miniGameController.destroy();
m_miniGameController = null;
m_cutSceneController.destroy();
m_cutSceneController = null;
super.destroy();
}
}
}//package game.levels
Section 240
//LevelXML (game.levels.LevelXML)
package game.levels {
public class LevelXML {
private var _url:String;
private var _xml:XML;
public function LevelXML(_arg1:String, _arg2:XML){
_url = _arg1;
_xml = _arg2;
}
public function get xml():XML{
return (_xml);
}
public function get url():String{
return (_url);
}
}
}//package game.levels
Section 241
//MessageBox (game.levels.MessageBox)
package game.levels {
import flash.events.*;
import flash.display.*;
import gs.*;
import org.casalib.util.*;
import assets.*;
import com.markfennell.text.*;
public class MessageBox extends Sprite {
private var m_delay:Number;// = 0.7
private var m_ui:MessageBoxUI;
private var m_textWriter:TextWriter;
private var m_stage:Stage;
public function MessageBox(_arg1:String){
if (_arg1.length < 1){
return;
};
m_stage = StageReference.getStage();
m_ui = new MessageBoxUI();
m_ui.x = int((m_stage.stageWidth * 0.5));
m_ui.y = int((m_stage.stageHeight * 0.5));
m_ui.alpha = 0;
m_stage.addChild(m_ui);
reveal();
m_textWriter = new TextWriter(m_ui.description, _arg1.toUpperCase(), 20, 15);
m_textWriter.addEventListener(TextWriter.COMPLETE, hide);
}
public function hide_COMPLETE():void{
m_stage.removeChild(m_ui);
m_ui = null;
}
private function reveal():void{
TweenMax.to(m_ui, 0.5, {alpha:1, y:(m_ui.y - 10)});
}
private function hide(_arg1:Event=null):void{
m_textWriter.removeEventListener(TextWriter.COMPLETE, hide);
TweenMax.to(m_ui, 0.5, {delay:m_delay, alpha:0, onComplete:hide_COMPLETE});
}
}
}//package game.levels
Section 242
//MiniGameController (game.levels.MiniGameController)
package game.levels {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.markfennell.sound.*;
import game.medals.*;
import gs.*;
import org.casalib.display.*;
import game.obstacles.*;
import flash.text.*;
import org.casalib.util.*;
import assets.*;
import com.markfennell.display.*;
import com.markfennell.text.*;
import flash.ui.*;
public class MiniGameController extends CasaSprite {
private var m_showTime:int;// = 600
private var m_writer:TextWriter;
private var m_keys:Array;
private var m_static:Static;
private var embed_Wires:MiniGameWires;
private var m_removeFunction:Function;
private var m_keypadArray:Array;
private var m_terminal:MovieClip;
private var m_textFormat:TextFormat;
private var m_correct:String;
private var embed_Keypad:MiniGameKeyboard;
private var m_setAlarm:Boolean;// = false
private var m_setupFunction:Function;
private var m_ui:MovieClip;
private var m_submitted:Boolean;// = false
private var m_stage:Stage;
private var m_level:int;
private var m_effects:MovieClip;
private var m_scanlineContainer:Sprite;
private var m_isKeypad:Boolean;// = false
private var m_info:String;
private var embed_Terminal:MiniGameTerminal;
private var m_scanlines:Scanline;
private var m_type:String;
private var m_keypad:Keypad;
private var m_fx:Fx;
private var m_introText:String;
public static var displayed:Boolean = false;
public function MiniGameController(_arg1:String){
m_fx = new Fx();
m_keys = [];
m_introText = _arg1;
super();
}
private function clawStrike(_arg1:MouseEvent):void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_04", 1, 1));
var _local2:Boolean;
m_ui.claw.gotoAndPlay("strike");
if (_arg1.target == m_ui.btnGreen){
if (m_correct == MiniGameTypes.GREEN){
_local2 = true;
};
m_ui.wires.gotoAndStop("green");
};
if (_arg1.target == m_ui.btnBlue){
if (m_correct == MiniGameTypes.BLUE){
_local2 = true;
};
m_ui.wires.gotoAndStop("blue");
};
if (_arg1.target == m_ui.btnRed){
if (m_correct == MiniGameTypes.RED){
_local2 = true;
};
m_ui.wires.gotoAndStop("red");
};
if (_local2){
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.WIRES_DESTROYED, m_level));
m_ui.greenbar.visible = true;
setTimeout(success, m_showTime);
GameBroadcaster.dispatchEvent(new RumbleEvent(RumbleEvent.RUMBLE, 10, 0.2));
} else {
setTimeout(close, m_showTime);
m_setAlarm = true;
};
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_wire_slice_01", 1, 1));
}
private function removeMiniGame():void{
clearKeyListener();
if (m_ui){
m_fx.zoomIn(m_ui, 0, 0.2, m_ui.x, m_ui.y, m_ui.x, 1000, 10, "easeInExpo", removeMiniGame_COMPLETE);
};
}
public function success(_arg1:MouseEvent=null):void{
m_keypad.toggle();
removeMiniGame();
}
private function handleClear(_arg1:MouseEvent):void{
if (m_submitted){
return;
};
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_dry_fire_02", 1, 1));
m_ui.digits.digitsText.text = "";
}
public function setAlarm():void{
GameBroadcaster.dispatchEvent(new Event(LevelController.ALARM));
}
public function close(_arg1:MouseEvent=null):void{
removeMiniGame();
}
private function removeTerminal():void{
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.TERMINAL_ACCESSED, m_level));
m_terminal = null;
m_writer.destroy();
if (m_ui){
m_ui.btnClose.removeEventListener(MouseEvent.CLICK, close);
m_static.destroy();
};
}
private function clearKeyListener():void{
StageReference.getStage().removeEventListener(KeyboardEvent.KEY_UP, handleMiniGameKeyUp);
}
private function handleMiniGameKeyUp(_arg1:KeyboardEvent):void{
trace(("CLICKED " + _arg1.keyCode));
if ((((((_arg1.keyCode == 49)) || ((_arg1.keyCode == 97)))) && (m_isKeypad))){
Digit.keyClick(0);
};
if ((((((_arg1.keyCode == 50)) || ((_arg1.keyCode == 98)))) && (m_isKeypad))){
Digit.keyClick(1);
};
if ((((((_arg1.keyCode == 51)) || ((_arg1.keyCode == 99)))) && (m_isKeypad))){
Digit.keyClick(2);
};
if ((((((_arg1.keyCode == 52)) || ((_arg1.keyCode == 100)))) && (m_isKeypad))){
Digit.keyClick(3);
};
if ((((((_arg1.keyCode == 53)) || ((_arg1.keyCode == 101)))) && (m_isKeypad))){
Digit.keyClick(4);
};
if ((((((_arg1.keyCode == 54)) || ((_arg1.keyCode == 102)))) && (m_isKeypad))){
Digit.keyClick(5);
};
if ((((((_arg1.keyCode == 55)) || ((_arg1.keyCode == 103)))) && (m_isKeypad))){
Digit.keyClick(6);
};
if ((((((_arg1.keyCode == 56)) || ((_arg1.keyCode == 104)))) && (m_isKeypad))){
Digit.keyClick(7);
};
if ((((((_arg1.keyCode == 57)) || ((_arg1.keyCode == 105)))) && (m_isKeypad))){
Digit.keyClick(8);
};
if ((((_arg1.keyCode == Keyboard.ENTER)) && (m_isKeypad))){
handleSubmit();
};
if ((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.keyCode == Keyboard.ESCAPE)))){
close();
};
}
private function setUpTerminal():void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_console_entry_03", 1, 1));
m_ui.btnClose.addEventListener(MouseEvent.CLICK, close);
m_terminal = new MiniGameTerminalScreen();
m_writer = new TextWriter(m_ui.infoText, m_info, 500, 25, false, beepTick);
m_static = new Static(m_terminal, 191, 191);
m_static.x = -95;
m_static.y = -126;
m_static.blendMode = BlendMode.ADD;
m_static.alpha = 0.25;
m_ui.addChildAt(m_static, 1);
m_static.glitch(0, 10, 0, 2);
}
public function removeMiniGame_COMPLETE():void{
trace("removeMiniGame_COMPLETE");
m_removeFunction();
displayed = false;
if (m_ui){
m_stage.removeChild(m_ui);
m_ui = null;
};
if (m_scanlineContainer){
removeChild(m_scanlineContainer);
m_scanlineContainer = null;
};
GameBroadcaster.dispatchEvent(new MiniGameEvent(MiniGameEvent.HIDE, null, m_keypad, m_level));
if (m_setAlarm){
setAlarm();
};
}
private function handleClick(_arg1:DigitEvent):void{
if (m_ui){
if (m_ui.digits.digitsText.text.length < 4){
m_ui.digits.digitsText.text = (m_ui.digits.digitsText.text + String((_arg1.id + 1)));
};
m_ui.digits.digitsText.setTextFormat(m_textFormat);
};
}
private function setUpIntro():void{
m_ui.btnClose.addEventListener(MouseEvent.CLICK, close);
m_writer = new TextWriter(m_ui.infoText, m_introText, 500, 25, false, beepTick);
m_effects = new MiniGameIntroScreenBackground();
m_static = new Static(m_effects, 360, 264);
m_static.x = -180;
m_static.y = -126;
m_static.blendMode = BlendMode.ADD;
m_static.alpha = 0.25;
m_ui.addChildAt(m_static, 1);
m_static.glitch(0, 20, 0, 5);
}
public function display(_arg1:MiniGameEvent):void{
var _local2:Number = 0;
m_setAlarm = false;
displayed = true;
m_keypad = _arg1.keypad;
m_stage = StageReference.getStage();
m_scanlines = new Scanline(0, 0);
m_type = _arg1.miniGame;
m_level = _arg1.level;
if (_arg1.keypad){
m_correct = _arg1.keypad.correct;
};
if (_arg1.keypad){
m_info = _arg1.keypad.info;
};
m_setupFunction = new Function();
m_removeFunction = new Function();
switch (m_type){
case MiniGameTypes.MINIGAME_INTRO:
m_ui = new MiniGameIntro();
m_setupFunction = setUpIntro;
m_removeFunction = removeIntro;
_local2 = 0.3;
break;
case MiniGameTypes.MINIGAME_WIRES:
m_ui = new MiniGameWires();
m_setupFunction = setUpWires;
m_removeFunction = removeWires;
break;
case MiniGameTypes.MINIGAME_TERMINAL:
m_ui = new MiniGameTerminal();
m_setupFunction = setUpTerminal;
m_removeFunction = removeTerminal;
break;
case MiniGameTypes.MINIGAME_KEYPAD:
m_ui = new MiniGameKeyboard();
m_setupFunction = setUpKeypad;
m_removeFunction = removeKeypad;
break;
};
m_setupFunction();
m_scanlineContainer = new Sprite();
addChild(m_scanlineContainer);
m_scanlineContainer.alpha = 0;
TweenMax.to(m_scanlineContainer, 0.5, {alpha:1});
m_scanlineContainer.graphics.beginBitmapFill(m_scanlines);
m_scanlineContainer.graphics.moveTo(0, 0);
m_scanlineContainer.graphics.lineTo(m_stage.stageWidth, 0);
m_scanlineContainer.graphics.lineTo(m_stage.stageWidth, m_stage.stageHeight);
m_scanlineContainer.graphics.lineTo(0, m_stage.stageHeight);
m_scanlineContainer.graphics.lineTo(0, 0);
m_scanlineContainer.graphics.endFill();
m_scanlineContainer.cacheAsBitmap = true;
m_stage.addChild(m_ui);
m_fx.zoomIn(m_ui, _local2, 0.3, int((Constants.STAGE_WIDTH * 0.5)), 1000, int((Constants.STAGE_WIDTH * 0.5)), int((Constants.STAGE_HEIGHT * 0.5)), 10, "easeOutExpo", setupKeyListener);
}
private function removeIntro():void{
if (m_ui){
m_ui.btnClose.removeEventListener(MouseEvent.CLICK, close);
};
if (m_static){
m_static.destroy();
};
m_effects = null;
m_writer.destroy();
}
private function setUpKeypad():void{
var _local2:Digit;
m_isKeypad = true;
Digit.reset();
m_submitted = false;
m_textFormat = new TextFormat();
m_textFormat.letterSpacing = 25;
m_ui.btnClose.addEventListener(MouseEvent.CLICK, close);
m_ui.digits.digitsText.text = "";
m_keypadArray = [m_ui.key1, m_ui.key2, m_ui.key3, m_ui.key4, m_ui.key5, m_ui.key6, m_ui.key7, m_ui.key8, m_ui.key9];
var _local1:int;
while (_local1 < m_keypadArray.length) {
_local2 = new Digit(m_keypadArray[_local1], _local1);
_local2.addEventListener(DigitEvent.CLICK, handleClick);
_local1++;
};
m_ui.btnClear.addEventListener(MouseEvent.CLICK, handleClear);
m_ui.btnSubmit.addEventListener(MouseEvent.CLICK, handleSubmit);
}
private function removeWires():void{
if (m_ui){
m_ui.btnGreen.removeEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnBlue.removeEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnRed.removeEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnClose.removeEventListener(MouseEvent.CLICK, close);
};
}
private function handleSubmit(_arg1:MouseEvent=null):void{
if (m_submitted){
return;
};
m_submitted = true;
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_dry_fire_02", 1, 1));
if (m_ui.digits.digitsText.text == m_correct){
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.KEYPAD_ACCESSED, m_level));
m_ui.status.gotoAndStop("green");
setTimeout(success, m_showTime);
} else {
setTimeout(close, m_showTime);
m_setAlarm = true;
};
}
private function setUpWires():void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_console_entry_03", 1, 1));
m_ui.greenbar.visible = false;
m_ui.wires.gotoAndStop("all");
m_ui.claw.gotoAndStop(1);
m_ui.btnGreen.addEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnBlue.addEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnRed.addEventListener(MouseEvent.CLICK, clawStrike);
m_ui.btnClose.addEventListener(MouseEvent.CLICK, close);
}
public function beepTick():void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_cursor", 0.5, 1));
}
private function setupKeyListener():void{
clearKeyListener();
StageReference.getStage().addEventListener(KeyboardEvent.KEY_UP, handleMiniGameKeyUp);
}
override public function destroy():void{
trace("MiniGameController.destroy()");
removeMiniGame();
super.destroy();
}
private function removeKeypad():void{
var _local1:int;
m_isKeypad = false;
if (m_ui){
m_ui.btnClose.removeEventListener(MouseEvent.CLICK, close);
m_ui.btnClear.removeEventListener(MouseEvent.CLICK, handleClear);
m_ui.btnSubmit.removeEventListener(MouseEvent.CLICK, handleSubmit);
_local1 = 0;
while (_local1 < m_keypadArray.length) {
m_keypadArray[_local1].gotoAndStop("down");
m_keypadArray[_local1].removeEventListener(MouseEvent.CLICK, handleClick);
_local1++;
};
};
}
public static function reset():void{
}
}
}//package game.levels
Section 243
//MiniGameEvent (game.levels.MiniGameEvent)
package game.levels {
import flash.events.*;
import game.obstacles.*;
public class MiniGameEvent extends Event {
public var level:int;
public var miniGame:String;
public var keypad:Keypad;
public static var DISPLAY:String = "DisplayMiniGame";
public static var HIDE:String = "HideMiniGame";
public function MiniGameEvent(_arg1:String, _arg2:String, _arg3:Keypad, _arg4:int){
super(_arg1, true, true);
miniGame = _arg2;
keypad = _arg3;
level = _arg4;
}
override public function clone():Event{
return (new MiniGameEvent(type, miniGame, keypad, level));
}
}
}//package game.levels
Section 244
//MiniGameTypes (game.levels.MiniGameTypes)
package game.levels {
public class MiniGameTypes {
public static var GREEN:String = "green";
public static var MINIGAME_KEYPAD:String = "MiniGameKeypad";
public static var RED:String = "red";
public static var MINIGAME_TERMINAL:String = "MiniGameTerminal";
public static var MINIGAME_INTRO:String = "MiniGameIntro";
public static var MINIGAME_WIRES:String = "MiniGameWires";
public static var BLUE:String = "blue";
}
}//package game.levels
Section 245
//PanEvent (game.levels.PanEvent)
package game.levels {
import flash.events.*;
public class PanEvent extends Event {
public var callBack:Function;
public var x:Number;
public var y:Number;
public function PanEvent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Function){
super(_arg1, true, true);
x = _arg2;
y = _arg3;
callBack = _arg4;
}
override public function clone():Event{
return (new PanEvent(type, x, y, callBack));
}
}
}//package game.levels
Section 246
//RumbleEvent (game.levels.RumbleEvent)
package game.levels {
import flash.events.*;
public class RumbleEvent extends Event {
public var intensity:Number;
public var time:Number;
public static var RUMBLE:String = "Rumble";
public function RumbleEvent(_arg1:String, _arg2:Number, _arg3:Number){
super(_arg1, true, true);
intensity = _arg2;
time = _arg3;
}
override public function clone():Event{
return (new RumbleEvent(type, intensity, time));
}
}
}//package game.levels
Section 247
//Medal (game.medals.Medal)
package game.medals {
public class Medal {
public var unlockLevel:int;// = 0
public var unlocked:Boolean;// = false
public var saved:Boolean;// = false
public var title:String;
public var id:int;
public var description:String;
public static var medalArray:Array = [];
public function Medal(_arg1:int, _arg2:String, _arg3:String){
id = _arg1;
title = _arg2;
description = _arg3;
medalArray.push(this);
}
public function get frame():int{
return ((id + 1));
}
public static function getMedals(_arg1:int):Array{
var _local2:Array = [];
var _local3:int;
while (_local3 < medalArray.length) {
if (((((medalArray[_local3].unlocked) && (!(medalArray[_local3].saved)))) && ((medalArray[_local3].unlockLevel == _arg1)))){
_local2.push(medalArray[_local3]);
};
_local3++;
};
return (_local2);
}
}
}//package game.medals
Section 248
//MedalController (game.medals.MedalController)
package game.medals {
import console.*;
public class MedalController {
private var m_medal:Medal;
private var m_terminalsAccessed:int;// = 0
private var m_robotsTotal:int;// = 0
private var m_medalsUnlocked:Array;
private var m_keypadsSolved:int;// = 0
private var m_wiresDestroyed:int;// = 0
private var m_robotsDestroyed:int;// = 0
public static var SECRET_AGENT:int = 8;
public static var BEST_THERE_IS:int = 1;
public static var SABOTUER:int = 5;
public static var SCRAP_YARD:int = 2;
public static var MASTERMIND:int = 3;
public static var DESTROYER:int = 6;
public static var GENIUS:int = 4;
public static var WEAPONX:int = 0;
public static var INTEL:int = 7;
public static var NINJA_SKILLS:int = 9;
public function MedalController(){
m_medalsUnlocked = [];
super();
}
public function clearListeners():void{
GameBroadcaster.removeEventListener(MedalEvent.WIRES_DESTROYED, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.ROBOT_DESTROYED, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.KEYPAD_ACCESSED, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.TERMINAL_ACCESSED, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.NINJA_SKILLS, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.WEAPONX, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.BEST, handleEvents);
GameBroadcaster.removeEventListener(MedalEvent.SECRET, handleEvents);
}
private function handleEvents(_arg1:MedalEvent):void{
trace((" ---> Medal Event Called : " + _arg1.type));
switch (_arg1.type){
case MedalEvent.WIRES_DESTROYED:
m_wiresDestroyed++;
if (m_wiresDestroyed == 5){
unlockMedal(SABOTUER, _arg1.level);
};
if (m_wiresDestroyed == 10){
unlockMedal(DESTROYER, _arg1.level);
};
break;
case MedalEvent.KEYPAD_ACCESSED:
m_keypadsSolved++;
if (m_keypadsSolved == 5){
unlockMedal(MASTERMIND, _arg1.level);
};
if (m_keypadsSolved == 10){
unlockMedal(GENIUS, _arg1.level);
};
break;
case MedalEvent.ROBOT_DESTROYED:
m_robotsDestroyed++;
if (m_robotsDestroyed == 20){
unlockMedal(SCRAP_YARD, _arg1.level);
};
break;
case MedalEvent.TERMINAL_ACCESSED:
m_terminalsAccessed++;
if (m_terminalsAccessed == 20){
unlockMedal(INTEL, _arg1.level);
};
break;
case MedalEvent.NINJA_SKILLS:
if (m_robotsDestroyed == 0){
unlockMedal(NINJA_SKILLS, _arg1.level);
};
break;
case MedalEvent.WEAPONX:
if (_arg1.data >= 1000000){
unlockMedal(WEAPONX, _arg1.level);
};
break;
case MedalEvent.BEST:
if (_arg1.data < 60000){
unlockMedal(BEST_THERE_IS, _arg1.level);
};
break;
case MedalEvent.SECRET:
unlockMedal(SECRET_AGENT, _arg1.level);
break;
};
}
public function unlockMedal(_arg1:int, _arg2:int):void{
if ((((_arg1 > 0)) && ((_arg1 < Medal.medalArray.length)))){
Console.GoogleAnalytics.trackEvent("MRD_Escape", "achievements", Medal.medalArray[_arg1].title);
Medal.medalArray[_arg1].unlocked = true;
Medal.medalArray[_arg1].unlockLevel = _arg2;
};
}
public function initMedals(_arg1:Array):void{
m_medal = new Medal(0, "Weapon X", "Scored 1,000,000+");
m_medal = new Medal(1, "The Best", "Completed under X min");
m_medal = new Medal(2, "Scrapyard", "20 robots destroyed");
m_medal = new Medal(3, "Mastermind", "5 Keypads Solved");
m_medal = new Medal(4, "Genius", "10 Keypads Solved");
m_medal = new Medal(5, "Saboteur", "5 wire panels destroyed");
m_medal = new Medal(6, "Destroyer", "10 wire panels");
m_medal = new Medal(7, "Intel", "Accessed 20 Terminals");
m_medal = new Medal(8, "Secret Agent", "Level Robots unharmed");
m_medal = new Medal(9, "Ninja Skills", "All Robots unharmed");
var _local2:int;
while (_local2 < _arg1.length) {
if (((_arg1[_local2]) && ((_local2 < Medal.medalArray.length)))){
Medal.medalArray[_local2].unlocked = true;
Medal.medalArray[_local2].saved = true;
};
_local2++;
};
_local2 = 0;
while (_local2 < Medal.medalArray.length) {
trace(("--> " + Medal.medalArray[_local2].title), Medal.medalArray[_local2].unlocked);
_local2++;
};
}
public function setupListeners():void{
GameBroadcaster.addEventListener(MedalEvent.WIRES_DESTROYED, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.ROBOT_DESTROYED, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.KEYPAD_ACCESSED, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.TERMINAL_ACCESSED, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.NINJA_SKILLS, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.WEAPONX, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.BEST, handleEvents);
GameBroadcaster.addEventListener(MedalEvent.SECRET, handleEvents);
}
public static function getMedals():Array{
var _local1:Array = [];
var _local2:int;
while (_local2 < Medal.medalArray.length) {
if (Medal.medalArray[_local2].unlocked){
_local1.push(true);
} else {
_local1.push(false);
};
_local2++;
};
trace("getMedals Array", _local1);
return (_local1);
}
}
}//package game.medals
Section 249
//MedalDisplay (game.medals.MedalDisplay)
package game.medals {
import flash.events.*;
import flash.display.*;
import gs.*;
import org.casalib.display.*;
import assets.*;
public class MedalDisplay extends CasaSprite {
public var m_medal:Medal;
public var m_ui:MovieClip;
public static var medalArray:Array = [];
public function MedalDisplay(_arg1:Medal){
m_medal = _arg1;
m_ui = new MedalSmall();
m_ui.gotoAndStop(m_medal.frame);
m_ui.toolTip.titleText.text = m_medal.title;
m_ui.toolTip.descriptionText.text = m_medal.description;
addChild(m_ui);
m_ui.toolTip.alpha = 0;
m_ui.hit.addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_ui.hit.addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
medalArray.push(this);
}
private function handleRollOut(_arg1:MouseEvent):void{
TweenMax.to(m_ui.toolTip, 0.5, {alpha:0});
}
override public function destroy():void{
m_ui.hit.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_ui.hit.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut);
removeChild(m_ui);
m_ui = null;
super.destroy();
}
private function handleRollOver(_arg1:MouseEvent):void{
TweenMax.to(m_ui.toolTip, 0.5, {alpha:1});
}
public static function destroyAll():void{
var _local1:int;
while (_local1 < medalArray.length) {
medalArray[_local1].destroy();
_local1++;
};
medalArray = [];
}
}
}//package game.medals
Section 250
//MedalEvent (game.medals.MedalEvent)
package game.medals {
import flash.events.*;
public class MedalEvent extends Event {
public var data;
public var level:int;
public static var ROBOT_DESTROYED:String = "Medal Robot Destroyed";
public static var TERMINAL_ACCESSED:String = "Medal Terminal Access";
public static var WIRES_DESTROYED:String = "Medal WIRres Destroyed";
public static var BEST:String = "Best Tehre iss";
public static var KEYPAD_ACCESSED:String = "Medal Keypad Access";
public static var LEVEL_START:String = "Medal Level Start";
public static var NINJA_SKILLS:String = "Ninja Skills";
public static var LEVEL_FINISH:String = "Medal Level Finish";
public static var WEAPONX:String = "Weaponsx";
public static var SECRET:String = "SecretAgent";
public function MedalEvent(_arg1:String, _arg2:int, _arg3=null){
super(_arg1, true, true);
level = _arg2;
data = _arg3;
}
override public function clone():Event{
return (new MedalEvent(type, level, data));
}
}
}//package game.medals
Section 251
//MedalPageDisplay (game.medals.MedalPageDisplay)
package game.medals {
import flash.events.*;
import flash.display.*;
import gs.*;
import org.casalib.display.*;
import org.casalib.util.*;
public class MedalPageDisplay extends CasaSprite {
public var m_base:MovieClip;
public var m_medal:Medal;
private var m_stage:Stage;
public var m_ui:MovieClip;
public static var medalArray:Array = [];
public function MedalPageDisplay(_arg1:Medal, _arg2:MovieClip, _arg3:MovieClip, _arg4:MovieClip){
m_stage = StageReference.getStage();
m_medal = _arg1;
m_ui = _arg2;
m_base = _arg3;
m_ui.mouseEnabled = false;
m_ui.mouseChildren = false;
m_stage.addChildAt(m_ui, 1);
m_ui.x = (m_ui.x + 365);
m_ui.y = (m_ui.y + 232);
m_ui.toolTip.titleText.text = m_medal.title;
m_ui.toolTip.descriptionText.text = m_medal.description;
m_ui.toolTip.alpha = 0;
if (!m_medal.unlocked){
m_ui.scratch.visible = false;
TweenMax.to(m_base, 0.05, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}, alpha:0.5});
} else {
m_ui.scratch.blendMode = BlendMode.MULTIPLY;
m_ui.scratch.visible = true;
TweenMax.to(m_base, 0.05, {colorMatrixFilter:{}, alpha:1});
};
m_stage.addChildAt(m_base, 1);
m_base.x = (m_base.x + 365);
m_base.y = (m_base.y + 232);
m_base.addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_base.addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
medalArray.push(this);
}
private function handleRollOut(_arg1:MouseEvent):void{
TweenMax.to(m_ui.toolTip, 0.5, {alpha:0});
}
private function handleRollOver(_arg1:MouseEvent):void{
TweenMax.to(m_ui.toolTip, 0.5, {alpha:1});
}
override public function destroy():void{
m_stage.removeChild(m_base);
m_stage.removeChild(m_ui);
m_base.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_base.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut);
super.destroy();
}
public static function destroyAll():void{
var _local1:int;
while (_local1 < medalArray.length) {
medalArray[_local1].destroy();
_local1++;
};
medalArray = [];
}
}
}//package game.medals
Section 252
//CCTV (game.obstacles.CCTV)
package game.obstacles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
import com.markfennell.geom.*;
import org.casalib.util.*;
public class CCTV extends Obstacle {
private var m_fov_v2:Point;
private var m_fov_v0:Point;
private var m_fov_v1:Point;
private var m_cameraTimer:Timer;
private var m_frameOff:int;
private var m_timedSensor:Boolean;// = false
private var m_frameOnEnd:int;
private var m_cameraTime:int;
private var m_frameOnStart:int;
private var m_faces:String;
private var m_fovPolygon:Polygon;
public static var STATE_CAMERA_OFF:String = "CameraOff";
private static var camerasDictionary:Dictionary;
private static var LEFT:String = "left";
public static var STATE_CAMERA_ON:String = "CameraOn";
private static var RIGHT:String = "right";
public function CCTV(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:Boolean, _arg7:int, _arg8:int, _arg9:String){
m_fov_v0 = new Point(35, 25);
m_fov_v1 = new Point(60, 58);
m_fov_v2 = new Point(160, 58);
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.CAMERA);
if (camerasDictionary == null){
camerasDictionary = new Dictionary(true);
};
m_isOn = _arg6;
m_id = _arg5;
m_cameraTime = _arg8;
m_faces = _arg9;
m_range = _arg7;
m_offsetY = 5;
if (m_faces == LEFT){
m_offsetX = 50;
} else {
m_offsetX = -50;
m_fov_v0.x = -(m_fov_v0.x);
m_fov_v1.x = -(m_fov_v1.x);
m_fov_v2.x = -(m_fov_v2.x);
};
m_frameOnStart = (FrameUtil.getFrameNumberForLabel(_arg2, "onStart") - 1);
m_frameOnEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "onEnd") - 1);
m_frameOff = (FrameUtil.getFrameNumberForLabel(_arg2, "off") - 1);
if (m_isOn){
setAnimationState(STATE_CAMERA_ON);
} else {
setAnimationState(STATE_CAMERA_OFF);
};
if (_arg8 > 0){
setTimedSensor();
};
camerasDictionary[m_id] = this;
_arg2 = null;
}
override public function renderDisplay(_arg1:int, _arg2:int):void{
super.renderDisplay(_arg1, _arg2);
var _local3:Point = new Point(((sx - _arg1) - m_fov_v0.x), ((sy - _arg2) - m_fov_v0.y));
var _local4:Point = new Point(((sx - _arg1) + m_fov_v1.x), ((sy - _arg2) + m_fov_v1.y));
var _local5:Point = new Point(((sx - _arg1) + m_fov_v2.x), ((sy - _arg2) + m_fov_v2.y));
m_fovPolygon = new Polygon(new Line(_local3, _local4), new Line(_local4, _local5), new Line(_local5, _local3));
if (Constants.BOUNDS){
m_fovPolygon.draw(m_gameBitmapData, 0xFF0000);
};
}
public function onLeft():Boolean{
return ((m_faces == LEFT));
}
private function setTimedSensor():void{
m_timedSensor = true;
m_cameraTimer = new Timer(m_cameraTime);
m_cameraTimer.addEventListener(TimerEvent.TIMER, toggle);
m_cameraTimer.start();
}
public function doResume():void{
if (m_timedSensor){
if (m_cameraTimer){
m_cameraTimer.start();
};
};
}
public function toggle(_arg1:TimerEvent=null):void{
if (m_isOn){
m_isOn = false;
setAnimationState(STATE_CAMERA_OFF);
} else {
m_isOn = true;
setAnimationState(STATE_CAMERA_ON);
};
}
public function get fov():Polygon{
return (m_fovPolygon);
}
override public function setOff():void{
trace("CCTV OFF");
m_isOn = false;
setAnimationState(STATE_CAMERA_OFF);
if (m_timedSensor){
m_cameraTimer.stop();
m_cameraTimer = null;
};
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_CAMERA_ON:
m_startFrame = m_frameOnStart;
m_endFrame = m_frameOnEnd;
m_loopFrames = true;
break;
case STATE_CAMERA_OFF:
m_startFrame = m_frameOff;
m_endFrame = m_frameOff;
m_loopFrames = false;
break;
};
m_currentFrame = m_startFrame;
}
override public function setOn():void{
m_isOn = true;
setAnimationState(STATE_CAMERA_ON);
if (m_timedSensor){
setTimedSensor();
};
}
public function doPause():void{
if (m_timedSensor){
if (m_cameraTimer){
m_cameraTimer.stop();
};
};
}
public static function getItem(_arg1:int):CCTV{
return (camerasDictionary[_arg1]);
}
public static function reset():void{
camerasDictionary = null;
}
public static function pauseTimers():void{
var _local1:CCTV;
for each (_local1 in camerasDictionary) {
_local1.doPause();
};
}
public static function resumeTimers():void{
var _local1:CCTV;
for each (_local1 in camerasDictionary) {
_local1.doResume();
};
}
}
}//package game.obstacles
Section 253
//Door (game.obstacles.Door)
package game.obstacles {
import flash.display.*;
import flash.utils.*;
import com.markfennell.sound.*;
import org.casalib.util.*;
public class Door extends Obstacle {
private var m_frameClose:int;
private var m_frameOpen:int;
private var m_isLocked:Boolean;
private var m_goto:int;
private var m_frameOpenEnd:int;
private var m_frameOpenStart:int;
public static var STATE_DOOR_CLOSED:String = "DoorClosed";
public static var STATE_DOOR_OPEN:String = "DoorOpen";
public static var STATE_DOOR_OPENING:String = "DoorOpening";
private static var doorsDictionary:Dictionary;
public static var EXIT:int = -1;
public function Door(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Boolean, _arg8:int){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.DOOR);
if (doorsDictionary == null){
doorsDictionary = new Dictionary(true);
};
m_id = _arg5;
m_goto = _arg6;
m_isLocked = _arg7;
m_range = _arg8;
m_frameOpen = (FrameUtil.getFrameNumberForLabel(_arg2, "open") - 1);
m_frameOpenStart = (FrameUtil.getFrameNumberForLabel(_arg2, "openStart") - 1);
m_frameOpenEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "openEnd") - 1);
m_frameClose = (FrameUtil.getFrameNumberForLabel(_arg2, "close") - 1);
if (m_isLocked){
setAnimationState(STATE_DOOR_CLOSED);
} else {
setAnimationState(STATE_DOOR_OPEN);
};
doorsDictionary[m_id] = this;
_arg2 = null;
}
public function get goto():int{
return (m_goto);
}
override public function setOn():void{
if (m_isLocked == false){
m_isLocked = true;
if (getItem(m_goto).goto == id){
getItem(m_goto).setOn();
};
setAnimationState(STATE_DOOR_CLOSED);
};
}
override public function setOff():void{
if (m_isLocked){
m_isLocked = false;
if (m_goto > 0){
if (getItem(m_goto).goto == id){
getItem(m_goto).setOff();
};
};
setAnimationState(STATE_DOOR_OPEN);
};
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_DOOR_OPEN:
m_startFrame = m_frameOpen;
m_endFrame = m_frameOpen;
m_loopFrames = false;
break;
case STATE_DOOR_CLOSED:
m_startFrame = m_frameClose;
m_endFrame = m_frameClose;
m_loopFrames = false;
break;
case STATE_DOOR_OPENING:
m_startFrame = m_frameOpenStart;
m_endFrame = m_frameOpenEnd;
m_loopFrames = false;
m_callBack = shut;
break;
};
m_currentFrame = m_startFrame;
}
public function shut():void{
if (locked){
setAnimationState(STATE_DOOR_CLOSED);
} else {
setAnimationState(STATE_DOOR_OPEN);
};
}
public function open():void{
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_turbolift_doorclose_01", 1, 1));
setAnimationState(STATE_DOOR_OPENING);
}
public function get locked():Boolean{
return (m_isLocked);
}
public static function getItem(_arg1:int):Door{
return (doorsDictionary[_arg1]);
}
public static function reset():void{
doorsDictionary = null;
}
}
}//package game.obstacles
Section 254
//Guard (game.obstacles.Guard)
package game.obstacles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import com.markfennell.sound.*;
import game.levels.*;
import org.casalib.util.*;
import game.tiles.*;
public class Guard extends Obstacle {
private var HUMAN:String;// = "human"
private var m_moveRange:int;
private var m_frameWarningEnd:int;
private var m_guardType:String;
private var m_moveAngle:Number;// = 0
private var m_frameExplodeEnd:int;
private var m_warningTimeout:int;
private var m_frameExplodeStart:int;
private var m_warningTime:int;// = 2000
private var m_isDead:Boolean;// = false
private var m_frameWalkStart:int;
private var m_isWarning:Boolean;// = false
private var ROBOT:String;// = "robot"
private var m_maxRange:int;// = 300
private var m_frameWalkEnd:int;
private var m_baseX:int;
private var m_baseY:int;
private var m_frameWarningStart:int;
private var m_moveRate:Number;
public static var STATE_EXPLODE:String = "guardExplode";
public static var STATE_WALK:String = "guardWalk";
private static var guardsArray:Array = [];
public static var STATE_WARNING:String = "guardWarning";
public function Guard(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number, _arg9:String, _arg10:int){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.GUARD);
m_id = _arg5;
m_range = _arg6;
m_moveRate = _arg8;
m_baseX = sx;
m_baseY = sy;
m_moveRange = _arg7;
m_guardType = _arg9;
m_points = _arg10;
if (m_guardType == HUMAN){
m_offsetY = 0;
} else {
m_offsetY = 3;
};
m_frameWalkStart = (FrameUtil.getFrameNumberForLabel(_arg2, "walkStart") - 1);
m_frameWalkEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "walkEnd") - 1);
m_frameWarningStart = (FrameUtil.getFrameNumberForLabel(_arg2, "huhStart") - 1);
m_frameWarningEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "huhEnd") - 1);
m_frameExplodeStart = (FrameUtil.getFrameNumberForLabel(_arg2, "explodeStart") - 1);
m_frameExplodeEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "explodeEnd") - 1);
setAnimationState(STATE_WALK);
guardsArray.push(this);
_arg2 = null;
}
public function clearWarning():void{
if (((!(m_isDead)) && (m_isWarning))){
clearTimeout(m_warningTimeout);
setAnimationState(STATE_WALK);
m_isWarning = false;
};
}
private function setAlarm():void{
GameBroadcaster.dispatchEvent(new Event(LevelController.ALARM));
}
public function checkFOV(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Array):void{
var _local6:int;
if (Math.abs((_arg1 - sx)) > m_maxRange){
return;
};
if ((_arg1 - sx) < 0){
_local6 = _arg3;
while (_local6 <= tileX) {
if (_arg5[tileY][_local6] == TileTypes.WALL_SOLID){
return;
};
if (_arg5[tileY][_local6] == TileTypes.WALL_LEFT){
return;
};
if (_arg5[tileY][_local6] == TileTypes.WALL_RIGHT){
return;
};
_local6++;
};
if (((((!(m_flip)) && (!(m_isWarning)))) && (!(m_isDead)))){
setWarning();
};
if (((((m_flip) && (m_isWarning))) && (!(m_isDead)))){
clearWarning();
};
} else {
_local6 = tileX;
while (_local6 <= _arg3) {
if (_arg5[tileY][_local6] == TileTypes.WALL_SOLID){
return;
};
if (_arg5[tileY][_local6] == TileTypes.WALL_LEFT){
return;
};
if (_arg5[tileY][_local6] == TileTypes.WALL_RIGHT){
return;
};
_local6++;
};
if (((((m_flip) && (!(m_isWarning)))) && (!(m_isDead)))){
setWarning();
};
if (((((!(m_flip)) && (m_isWarning))) && (!(m_isDead)))){
clearWarning();
};
};
}
public function isAlive():Boolean{
return (!(m_isDead));
}
override public function renderDisplay(_arg1:int, _arg2:int):void{
if (((!(m_isDead)) && (!(m_isWarning)))){
sx = (m_baseX + int((Math.sin(m_moveAngle) * m_moveRange)));
m_moveAngle = (m_moveAngle + m_moveRate);
m_moveAngle = (m_moveAngle % (Math.PI * 2));
if ((((m_moveAngle > (Math.PI * 0.5))) && ((m_moveAngle < (Math.PI * 1.5))))){
m_flip = false;
} else {
m_flip = true;
};
};
super.renderDisplay(_arg1, _arg2);
}
public function canKill():Boolean{
return ((m_guardType == ROBOT));
}
public function setWarning():void{
if (((!(m_isDead)) && (!(m_isWarning)))){
m_isWarning = true;
m_warningTimeout = setTimeout(setAlarm, m_warningTime);
setAnimationState(STATE_WARNING);
};
}
private function setDead():void{
m_isDead = true;
}
public function explode():void{
GameBroadcaster.dispatchEvent(new RumbleEvent(RumbleEvent.RUMBLE, 10, 0.25));
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_charge_kill_stab_01", 1, 1));
clearWarning();
setAnimationState(STATE_EXPLODE);
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_WALK:
m_startFrame = m_frameWalkStart;
m_endFrame = m_frameWalkEnd;
m_loopFrames = true;
break;
case STATE_EXPLODE:
m_startFrame = m_frameExplodeStart;
m_endFrame = m_frameExplodeEnd;
m_loopFrames = false;
setDead();
break;
case STATE_WARNING:
m_startFrame = m_frameWarningStart;
m_endFrame = m_frameWarningEnd;
m_loopFrames = true;
break;
};
m_currentFrame = m_startFrame;
}
override public function destroy():void{
clearTimeout(m_warningTimeout);
super.destroy();
}
public static function get guards():int{
return (guardsArray.length);
}
public static function resetWarnings():void{
var _local1:int;
while (_local1 < guardsArray.length) {
guardsArray[_local1].clearWarning();
_local1++;
};
}
public static function reset():void{
var _local1:int;
while (_local1 < guardsArray.length) {
guardsArray[_local1].destroy();
_local1++;
};
guardsArray = [];
}
}
}//package game.obstacles
Section 255
//Keypad (game.obstacles.Keypad)
package game.obstacles {
import flash.display.*;
import game.levels.*;
import org.casalib.util.*;
public class Keypad extends Obstacle {
private var m_info:String;
private var m_used:Boolean;// = false
private var m_frameOff:int;
private var m_correct:String;
private var m_frameOn:int;
private var m_isTerminal:Boolean;// = false
private var m_frameOnEnd:int;
private var m_frameOnStart:int;
private var m_canToggle:Boolean;
private var m_message:String;
private var m_miniGame:String;
private var m_targetType:String;
private var m_targetID:int;
public static var STATE_KEYPAD_OFF:String = "KeypadOff";
public static var STATE_TERMINAL:String = "Terminal";
public static var STATE_KEYPAD_ON:String = "KeypadOn";
public function Keypad(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Boolean, _arg8:int, _arg9:String, _arg10:String, _arg11:String, _arg12:Boolean=false, _arg13:int=0, _arg14:String=""){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.KEYPAD);
m_isOn = _arg7;
m_id = _arg5;
m_targetID = _arg6;
m_range = _arg8;
m_targetType = _arg9;
m_miniGame = _arg10;
m_canToggle = _arg12;
m_correct = _arg11;
m_points = _arg13;
m_message = _arg14;
m_frameOn = (FrameUtil.getFrameNumberForLabel(_arg2, "on") - 1);
m_frameOff = (FrameUtil.getFrameNumberForLabel(_arg2, "off") - 1);
if (String(m_targetType) == "null"){
m_info = m_message;
m_offsetY = -10;
setAnimationState(STATE_TERMINAL);
} else {
m_offsetY = -30;
if (m_isOn){
setAnimationState(STATE_KEYPAD_ON);
} else {
setAnimationState(STATE_KEYPAD_OFF);
};
};
_arg2 = null;
}
public function get used():Boolean{
return (m_used);
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_KEYPAD_ON:
m_startFrame = m_frameOn;
m_endFrame = m_frameOn;
m_loopFrames = false;
break;
case STATE_KEYPAD_OFF:
m_startFrame = m_frameOff;
m_endFrame = m_frameOff;
m_loopFrames = false;
break;
case STATE_TERMINAL:
m_startFrame = m_frameOn;
m_endFrame = m_frameOff;
m_loopFrames = true;
break;
};
m_currentFrame = m_startFrame;
}
public function toggle():void{
var _local1:MessageBox;
if (!m_canToggle){
if (m_used){
return;
};
m_used = true;
};
if (m_isOn){
setAnimationState(STATE_KEYPAD_OFF);
m_isOn = false;
} else {
trace(m_message);
_local1 = new MessageBox(m_message);
m_isOn = true;
setAnimationState(STATE_KEYPAD_ON);
};
GameBroadcaster.dispatchEvent(new SwitchEvent(SwitchEvent.FLICKED, m_targetType, m_targetID, m_isOn));
}
public function get miniGame():String{
return (m_miniGame);
}
public function get info():String{
return (m_info);
}
public function get correct():String{
return (m_correct);
}
}
}//package game.obstacles
Section 256
//Laser (game.obstacles.Laser)
package game.obstacles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import game.*;
import org.casalib.util.*;
public class Laser extends Obstacle {
private var m_movingLaser:Boolean;// = false
private var m_frameOff:int;
private var m_baseX:int;
private var m_moveRange:int;
private var m_laserTimer:Timer;
private var m_baseY:int;
private var m_frameOnEnd:int;
private var m_moveRate:Number;
private var m_laserTime:int;
private var m_frameOnStart:int;
private var m_timedLaser:Boolean;// = false
private var m_moveAngle:Number;// = 0
public static var STATE_LASER_ON:String = "DoorClosed";
public static var STATE_LASER_OFF:String = "DoorOpen";
public static var LASER_ON:String = "LaserStart";
public static var LASER_OFF:String = "LaserFinish";
private static var lasersDictionary:Dictionary;
public function Laser(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:Boolean, _arg7:int, _arg8:int, _arg9:int, _arg10:Number){
super(_arg1, _arg2, _arg2.width, 101, _arg3, _arg4, ObstacleTypes.LASER);
if (lasersDictionary == null){
SoundController.getInstance().startLasers();
lasersDictionary = new Dictionary(true);
};
m_offsetY = 0;
m_isOn = _arg6;
m_id = _arg5;
m_range = _arg7;
m_laserTime = _arg8;
m_moveRate = _arg10;
m_frameOnStart = (FrameUtil.getFrameNumberForLabel(_arg2, "onStart") - 1);
m_frameOnEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "onEnd") - 1);
m_frameOff = (FrameUtil.getFrameNumberForLabel(_arg2, "off") - 1);
if (m_isOn){
setAnimationState(STATE_LASER_ON);
} else {
setAnimationState(STATE_LASER_OFF);
};
if (_arg9 > 0){
m_baseX = sx;
m_baseY = sy;
m_moveRange = _arg9;
setMovingLaser();
};
if (_arg8 > 0){
setTimedLaser();
};
lasersDictionary[m_id] = this;
_arg2 = null;
}
public function toggle(_arg1:TimerEvent=null):void{
if (m_isOn){
m_isOn = false;
setAnimationState(STATE_LASER_OFF);
} else {
m_isOn = true;
setAnimationState(STATE_LASER_ON);
};
}
private function setMovingLaser():void{
m_movingLaser = true;
}
override public function renderDisplay(_arg1:int, _arg2:int):void{
if (m_movingLaser){
sx = (m_baseX + int((Math.sin(m_moveAngle) * m_moveRange)));
m_moveAngle = (m_moveAngle + m_moveRate);
};
super.renderDisplay(_arg1, _arg2);
}
private function setTimedLaser():void{
m_timedLaser = true;
m_laserTimer = new Timer(m_laserTime);
m_laserTimer.addEventListener(TimerEvent.TIMER, toggle);
m_laserTimer.start();
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_LASER_ON:
m_startFrame = m_frameOnStart;
m_endFrame = m_frameOnEnd;
m_loopFrames = true;
break;
case STATE_LASER_OFF:
m_startFrame = m_frameOff;
m_endFrame = m_frameOff;
m_loopFrames = false;
break;
};
m_currentFrame = m_startFrame;
}
override public function setOn():void{
m_isOn = true;
setAnimationState(STATE_LASER_ON);
if (m_timedLaser){
setTimedLaser();
};
}
override public function setOff():void{
m_isOn = false;
setAnimationState(STATE_LASER_OFF);
if (m_timedLaser){
m_laserTimer.stop();
m_laserTimer = null;
};
if (m_movingLaser){
m_movingLaser = true;
};
}
public static function reset():void{
lasersDictionary = null;
}
public static function getItem(_arg1:int):Laser{
return (lasersDictionary[_arg1]);
}
}
}//package game.obstacles
Section 257
//Mutant (game.obstacles.Mutant)
package game.obstacles {
import flash.display.*;
import flash.utils.*;
import game.levels.*;
import org.casalib.util.*;
import assets.*;
public class Mutant extends Obstacle {
private var m_frameCaptiveEnd:int;
private var m_frameCaptiveStart:int;
private var m_frameReleaseEnd:int;
private var m_goto:int;
private var m_frameReleaseStart:int;
private var m_cutscene:String;
public static var STATE_MUTANT_CAPTIVE:String = "MutantCaptive";
public static var STATE_MUTANT_RELEASE:String = "MutantRelease";
private static var mutantsDictionary:Dictionary;
public function Mutant(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:String){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.MUTANT);
if (mutantsDictionary == null){
mutantsDictionary = new Dictionary(true);
};
m_id = _arg5;
m_goto = _arg6;
m_cutscene = _arg7;
m_frameCaptiveStart = (FrameUtil.getFrameNumberForLabel(_arg2, "captiveStart") - 1);
m_frameCaptiveEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "captiveEnd") - 1);
m_frameReleaseStart = (FrameUtil.getFrameNumberForLabel(_arg2, "releaseStart") - 1);
m_frameReleaseEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "releaseEnd") - 1);
setAnimationState(STATE_MUTANT_CAPTIVE);
mutantsDictionary[m_id] = this;
m_offsetY = ((_arg2 is Mutant1)) ? -42 : -1;
_arg2 = null;
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_MUTANT_CAPTIVE:
m_startFrame = m_frameCaptiveStart;
m_endFrame = m_frameCaptiveEnd;
m_loopFrames = true;
break;
case STATE_MUTANT_RELEASE:
m_startFrame = m_frameReleaseStart;
m_endFrame = m_frameReleaseEnd;
m_loopFrames = false;
m_callBack = released;
break;
};
m_currentFrame = m_startFrame;
}
override public function setOff():void{
Door.getItem(m_goto).setOff();
setAnimationState(STATE_MUTANT_RELEASE);
}
public function released():void{
GameBroadcaster.dispatchEvent(new CutSceneEvent(CutSceneEvent.DISPLAY, m_cutscene));
}
public static function getItem(_arg1:int):Mutant{
return (mutantsDictionary[_arg1]);
}
public static function reset():void{
mutantsDictionary = null;
}
}
}//package game.obstacles
Section 258
//Obstacle (game.obstacles.Obstacle)
package game.obstacles {
import flash.display.*;
import org.casalib.display.*;
import flash.geom.*;
import game.interfaces.*;
import com.electrotank.util.*;
import com.markfennell.display.*;
public class Obstacle implements IObstacle {
private var m_debugContainer:CasaSprite;
protected var m_loopFrames:Boolean;// = false
protected var m_points:int;// = 0
protected var m_currentFrame:int;// = 1
protected var m_flip:Boolean;// = false
protected var m_callBack:Function;
private var m_tileY:int;
protected var m_gameBitmapData:BitmapData;
private var m_tileX:int;
protected var m_id:int;
private var m_height:int;
protected var m_isOn:Boolean;// = true
protected var m_startFrame:int;// = 1
private var m_displayMargin:int;// = 50
protected var m_state:String;
protected var m_type:String;
private var m_spriteSheet:SpriteSheet;
protected var m_offsetX:int;// = 0
protected var m_offsetY:int;// = 0
private var m_tileSize:Number;// = 118
protected var m_isActive:Boolean;// = false
protected var m_endFrame:int;// = 1
private var m_floorThickness:int;// = 19
protected var m_range:int;
private var m_stageHeight:int;
private var m_sx:int;
private var m_sy:int;
private var m_stageWidth:int;
private var m_width:int;
public function Obstacle(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:String){
m_gameBitmapData = _arg1;
m_spriteSheet = new SpriteSheet(_arg2, _arg3, _arg4);
m_type = _arg7;
m_stageWidth = Constants.STAGE_WIDTH;
m_stageHeight = Constants.STAGE_HEIGHT;
m_tileX = _arg5;
m_tileY = _arg6;
m_sx = ((_arg5 * m_tileSize) + (m_tileSize / 2));
m_sy = (((_arg6 * m_tileSize) + (m_tileSize - m_floorThickness)) - int((_arg2.height / 2)));
}
public function destroy():void{
m_spriteSheet.destroy();
}
public function get tileY():int{
return (m_tileY);
}
public function renderDisplay(_arg1:int, _arg2:int):void{
m_isActive = false;
if ((((m_sx > (_arg1 - m_displayMargin))) && ((m_sx < ((m_stageWidth + m_displayMargin) + _arg1))))){
if ((((m_sy > (_arg2 - m_displayMargin))) && ((m_sy < ((m_stageHeight + m_displayMargin) + _arg2))))){
m_isActive = true;
if (m_currentFrame < (m_endFrame - 1)){
m_currentFrame++;
} else {
if (m_loopFrames){
m_currentFrame = m_startFrame;
} else {
if (m_callBack != null){
m_callBack();
m_callBack = null;
} else {
m_currentFrame = m_endFrame;
};
};
};
m_spriteSheet.draw(m_gameBitmapData, ((m_sx - _arg1) + m_offsetX), ((m_sy - _arg2) + m_offsetY), m_currentFrame, m_flip);
};
};
}
public function getRange(_arg1:Point):Number{
return (Point.distance(point, _arg1));
}
public function get point():Point{
return (new Point(m_sx, m_sy));
}
public function setOn():void{
}
public function get id():int{
return (m_id);
}
public function get height():int{
return (m_height);
}
public function get isOn():Boolean{
return (m_isOn);
}
public function setOff():void{
}
public function get type():String{
return (m_type);
}
public function get width():int{
return (m_width);
}
public function set sx(_arg1:int):void{
m_sx = _arg1;
}
public function get isActive():Boolean{
return (m_isActive);
}
public function get range():int{
return (m_range);
}
public function renderPhysics():void{
}
public function positionFromTile(_arg1:int, _arg2:int):Point{
var _local3:Point = new Point();
_local3.x = ((_arg1 * m_tileSize) + (m_tileSize / 2));
_local3.y = ((_arg2 * m_tileSize) + (m_tileSize - m_floorThickness));
return (_local3);
}
public function set sy(_arg1:int):void{
m_sy = _arg1;
}
public function setPoints():void{
MemoryCrypto.incrementValue("bonus", m_points);
m_points = 0;
}
public function get sx():int{
return (m_sx);
}
public function get sy():int{
return (m_sy);
}
public function setAnimationState(_arg1:String):void{
}
public function get tileX():int{
return (m_tileX);
}
}
}//package game.obstacles
Section 259
//ObstacleController (game.obstacles.ObstacleController)
package game.obstacles {
import flash.display.*;
import flash.utils.*;
import game.levels.*;
import org.casalib.display.*;
import game.interfaces.*;
import assets.*;
public class ObstacleController {
private var m_debugContainer:CasaSprite;
private var embed_keypad:KeypadUI;
private var embed_robot:RobotUI;
private var embed_terminalFuture:TerminalFutureUI;
private var embed_doorDoubleSteel:DoorDoubleSteelUI;
private var embed_laserFuture:LaserFutureUI;
private var embed_cameraRight:CameraRightUI;
private var embed_mutant3:Mutant3;
private var embed_mutant4:Mutant4;
private var m_obstaclesArray:Array;
private var embed_mutant2:Mutant2;
private var m_gameBitmapData:BitmapData;
private var embed_mutant1:Mutant1;
private var embed_doorDoubleFutureExit:DoorDoubleFutureExitUI;
private var embed_wires:WiresUI;
private var embed_terminal:TerminalUI;
private var embed_sensorBottom:SensorBottomUI;
private var embed_doorSingleSteelExit:DoorSingleSteelExitUI;
private var embed_robot2:Robot2UI;
private var m_level:Level;
private var embed_switchFuture:SwitchFutureUI;
private var embed_doorDoubleSteelExit:DoorDoubleSteelExitUI;
private var embed_human:HumanUI;
private var embed_sensorTop:SensorTopUI;
private var embed_laserBig:LaserBigUI;
private var embed_keypadFuture:KeypadFutureUI;
private var m_floorThickness:int;// = 19
private var embed_doorDoubleFuture:DoorDoubleFutureUI;
private var embed_switch:SwitchUI;
private var embed_doorSingleSteel:DoorSingleSteelUI;
private var embed_cameraLeft:CameraLeftUI;
public function ObstacleController(_arg1:Level, _arg2:BitmapData){
m_obstaclesArray = [];
super();
Door.reset();
Laser.reset();
Sensor.reset();
CCTV.reset();
Guard.reset();
m_level = _arg1;
m_gameBitmapData = _arg2;
initObstacles();
GameBroadcaster.addEventListener(SwitchEvent.FLICKED, handleSwitchFlicked);
}
public function destroy():void{
GameBroadcaster.removeEventListener(SwitchEvent.FLICKED, handleSwitchFlicked);
var _local1:int;
while (_local1 < m_obstaclesArray.length) {
m_obstaclesArray[_local1].destroy();
_local1++;
};
}
private function initObstacles():void{
var _local1:int;
var _local2:XML;
var _local3:XML;
var _local4:*;
var _local5:Boolean;
var _local6:IObstacle;
_local2 = m_level.getXMLList("doors");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local5 = (String(_local3.@locked) == "true");
_local4 = getDefinitionByName(String(_local3.@asset));
_local6 = new Door(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), int(_local3.@goto), _local5, int(_local3.@range));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("switches");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local6 = new Switch(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), int(_local3.@goto), (String(_local3.@isOn) == "true"), int(_local3.@range), String(_local3.@type), (String(_local3.@canToggle) == "true"), String(_local3));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("lasers");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local5 = (String(_local3.@isOn) == "true");
_local6 = new Laser(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), _local5, int(_local3.@range), int(_local3.@time), int(_local3.@move), Number(_local3.@rate));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("sensors");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local5 = (String(_local3.@isOn) == "true");
_local6 = new Sensor(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), _local5, int(_local3.@range), int(_local3.@time), String(_local3.@attach));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("cameras");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local5 = (String(_local3.@isOn) == "true");
_local6 = new CCTV(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), _local5, int(_local3.@range), int(_local3.@time), String(_local3.@face));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("keypads");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local5 = (String(_local3.@isOn) == "true");
_local6 = new Keypad(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), int(_local3.@goto), _local5, int(_local3.@range), String(_local3.@type), String(_local3.@miniGame), String(_local3.@correct), (String(_local3.@canToggle) == "true"), int(_local3.@points), String(_local3));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("mutants");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local6 = new Mutant(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), int(_local3.@goto), String(_local3.@cutscene));
m_obstaclesArray.push(_local6);
_local1++;
};
_local2 = m_level.getXMLList("guards");
_local1 = 0;
while (_local1 < _local2.children().length()) {
_local3 = _local2.children()[_local1];
_local4 = getDefinitionByName(String(_local3.@asset));
_local6 = new Guard(m_gameBitmapData, new (_local4), int(_local3.@x), int(_local3.@y), int(_local3.@id), int(_local3.@range), int(_local3.@move), Number(_local3.@rate), String(_local3.@type), int(_local3.@points));
m_obstaclesArray.push(_local6);
_local1++;
};
}
private function tweenToObject(_arg1:IObstacle, _arg2:Function):void{
_arg2();
}
private function handleSwitchFlicked(_arg1:SwitchEvent):void{
var _local2:IObstacle;
switch (_arg1.targetType){
case ObstacleTypes.DOOR:
_local2 = Door.getItem(_arg1.targetID);
if (_local2.isOn){
tweenToObject(_local2, _local2.setOff);
} else {
tweenToObject(_local2, _local2.setOn);
};
break;
case ObstacleTypes.LASER:
_local2 = Laser.getItem(_arg1.targetID);
if (_local2.isOn){
tweenToObject(_local2, _local2.setOff);
} else {
tweenToObject(_local2, _local2.setOn);
};
break;
case ObstacleTypes.SENSOR:
_local2 = Sensor.getItem(_arg1.targetID);
if (_local2.isOn){
tweenToObject(_local2, _local2.setOff);
} else {
tweenToObject(_local2, _local2.setOn);
};
break;
case ObstacleTypes.CAMERA:
_local2 = CCTV.getItem(_arg1.targetID);
if (_local2.isOn){
tweenToObject(_local2, _local2.setOff);
} else {
tweenToObject(_local2, _local2.setOn);
};
break;
case ObstacleTypes.MUTANT:
_local2 = Mutant.getItem(_arg1.targetID);
tweenToObject(_local2, _local2.setOff);
break;
};
}
public function renderPhysics():void{
var _local1:int;
while (_local1 < m_obstaclesArray.length) {
m_obstaclesArray[_local1].renderPhysics();
_local1++;
};
}
public function get obstacles():Array{
return (m_obstaclesArray);
}
public function renderDisplay(_arg1:int, _arg2:int):void{
var _local3:int;
while (_local3 < m_obstaclesArray.length) {
m_obstaclesArray[_local3].renderDisplay(_arg1, _arg2);
_local3++;
};
}
}
}//package game.obstacles
Section 260
//ObstacleTypes (game.obstacles.ObstacleTypes)
package game.obstacles {
public class ObstacleTypes {
public static var KEYPAD:String = "keypad";
public static var CAMERA:String = "camera";
public static var LASER:String = "laser";
public static var GUARD:String = "guard";
public static var DOOR:String = "door";
public static var MUTANT:String = "mutant";
public static var BARRIER:String = "barrier";
public static var SENSOR:String = "sensor";
public static var SWITCH:String = "switch";
}
}//package game.obstacles
Section 261
//Sensor (game.obstacles.Sensor)
package game.obstacles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import org.casalib.util.*;
public class Sensor extends Obstacle {
private var m_sensorTime:int;
private var m_frameOnEnd:int;
private var m_frameOnStart:int;
private var m_frameOff:int;
private var m_attach:String;
private var m_sensorTimer:Timer;
private var m_timedSensor:Boolean;// = false
private static var sensorsDictionary:Dictionary;
private static var BOTTOM:String = "bottom";
private static var TOP:String = "top";
public static var STATE_SENSOR_ON:String = "DoorClosed";
public static var STATE_SENSOR_OFF:String = "DoorOpen";
public function Sensor(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:Boolean, _arg7:int, _arg8:int, _arg9:String){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.SENSOR);
if (sensorsDictionary == null){
sensorsDictionary = new Dictionary(true);
};
m_isOn = _arg6;
m_id = _arg5;
m_sensorTime = _arg8;
m_attach = _arg9;
m_range = _arg7;
if (m_attach == TOP){
m_offsetY = -70;
} else {
m_offsetY = 0;
};
m_frameOnStart = (FrameUtil.getFrameNumberForLabel(_arg2, "onStart") - 1);
m_frameOnEnd = (FrameUtil.getFrameNumberForLabel(_arg2, "onEnd") - 1);
m_frameOff = (FrameUtil.getFrameNumberForLabel(_arg2, "off") - 1);
if (m_isOn){
setAnimationState(STATE_SENSOR_ON);
} else {
setAnimationState(STATE_SENSOR_OFF);
};
if (_arg8 > 0){
setTimedSensor();
};
sensorsDictionary[m_id] = this;
_arg2 = null;
}
override public function setOn():void{
m_isOn = true;
setAnimationState(STATE_SENSOR_ON);
if (m_timedSensor){
setTimedSensor();
};
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_SENSOR_ON:
m_startFrame = m_frameOnStart;
m_endFrame = m_frameOnEnd;
m_loopFrames = true;
break;
case STATE_SENSOR_OFF:
m_startFrame = m_frameOff;
m_endFrame = m_frameOff;
m_loopFrames = false;
break;
};
m_currentFrame = m_startFrame;
}
override public function setOff():void{
m_isOn = false;
setAnimationState(STATE_SENSOR_OFF);
if (m_timedSensor){
m_sensorTimer.stop();
m_sensorTimer = null;
};
}
private function setTimedSensor():void{
m_timedSensor = true;
m_sensorTimer = new Timer(m_sensorTime);
m_sensorTimer.addEventListener(TimerEvent.TIMER, toggle);
m_sensorTimer.start();
}
public function toggle(_arg1:TimerEvent=null):void{
if (m_isOn){
m_isOn = false;
setAnimationState(STATE_SENSOR_OFF);
} else {
m_isOn = true;
setAnimationState(STATE_SENSOR_ON);
};
}
public function onTop():Boolean{
return ((m_attach == TOP));
}
public static function getItem(_arg1:int):Sensor{
return (sensorsDictionary[_arg1]);
}
public static function reset():void{
sensorsDictionary = null;
}
}
}//package game.obstacles
Section 262
//Switch (game.obstacles.Switch)
package game.obstacles {
import flash.display.*;
import game.levels.*;
import org.casalib.util.*;
public class Switch extends Obstacle {
private var m_frameOnEnd:int;
private var m_targetID:int;
private var m_frameOnStart:int;
private var m_used:Boolean;// = false
private var m_canToggle:Boolean;// = true
private var m_message:String;
private var m_frameOn:int;
private var m_frameOff:int;
private var m_targetType:String;
public static var STATE_SWITCH_OFF:String = "DoorOpen";
public static var STATE_SWITCH_ON:String = "DoorClosed";
public function Switch(_arg1:BitmapData, _arg2:MovieClip, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Boolean, _arg8:int, _arg9:String, _arg10:Boolean, _arg11:String=""){
super(_arg1, _arg2, _arg2.width, _arg2.height, _arg3, _arg4, ObstacleTypes.SWITCH);
m_offsetY = -30;
m_isOn = _arg7;
m_id = _arg5;
m_targetID = _arg6;
m_range = _arg8;
m_targetType = _arg9;
m_canToggle = _arg10;
m_message = _arg11;
m_frameOn = (FrameUtil.getFrameNumberForLabel(_arg2, "on") - 1);
m_frameOff = (FrameUtil.getFrameNumberForLabel(_arg2, "off") - 1);
if (m_isOn){
setAnimationState(STATE_SWITCH_ON);
} else {
setAnimationState(STATE_SWITCH_OFF);
};
_arg2 = null;
}
public function toggle():void{
var _local1:MessageBox;
if (!m_canToggle){
if (m_used){
return;
};
m_used = true;
};
if (m_isOn){
m_isOn = false;
setAnimationState(STATE_SWITCH_OFF);
} else {
_local1 = new MessageBox(m_message);
m_isOn = true;
setAnimationState(STATE_SWITCH_ON);
};
GameBroadcaster.dispatchEvent(new SwitchEvent(SwitchEvent.FLICKED, m_targetType, m_targetID, m_isOn));
}
public function get used():Boolean{
return (m_used);
}
override public function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_SWITCH_ON:
m_startFrame = m_frameOn;
m_endFrame = m_frameOn;
m_loopFrames = false;
break;
case STATE_SWITCH_OFF:
m_startFrame = m_frameOff;
m_endFrame = m_frameOff;
m_loopFrames = false;
break;
};
m_currentFrame = m_startFrame;
}
}
}//package game.obstacles
Section 263
//SwitchEvent (game.obstacles.SwitchEvent)
package game.obstacles {
import flash.events.*;
public class SwitchEvent extends Event {
public var state:Boolean;
public var targetType:String;
public var targetID:int;
public static var FLICKED:String = "SwitchFlicked";
public function SwitchEvent(_arg1:String, _arg2:String, _arg3:int, _arg4:Boolean=true){
super(_arg1, true, true);
targetType = _arg2;
targetID = _arg3;
state = _arg4;
}
override public function clone():Event{
return (new SwitchEvent(type, targetType, targetID, state));
}
}
}//package game.obstacles
Section 264
//Player (game.player.Player)
package game.player {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import console.*;
import com.markfennell.sound.*;
import game.levels.*;
import game.*;
import game.medals.*;
import gs.*;
import org.casalib.display.*;
import flash.geom.*;
import game.obstacles.*;
import com.markfennell.geom.*;
import game.interfaces.*;
import org.casalib.util.*;
import assets.*;
import fl.motion.easing.*;
import com.markfennell.display.*;
import game.tiles.*;
public class Player extends EventDispatcher {
private var m_character_w2:int;// = 13
public var inputUp:Boolean;// = false
private var m_jumpHeight:int;
private var m_isJumpingRoof:Boolean;// = false
private var m_isOnRoofHold:Boolean;// = false
public var spriteSheetX:int;
private var m_currentFrame:int;// = 1
private var m_isFallingRoof:Boolean;// = false
private var m_accelerationCrawl:Number;// = 2
private var m_state:String;
private var m_door:Door;// = null
private var m_isGameOver:Boolean;// = false
private var m_laserRange:Number;// = 150
private var m_attackTime:int;// = 200
private var m_guard:Guard;// = null
private var m_walkOutTime:int;// = 300
public var inputRight:Boolean;// = false
private var m_max_vx_walk:Number;// = 9
private var m_gravity:Number;// = 2
private var m_isAnimating:Boolean;// = false
private var m_isOverSwitch:Boolean;// = false
private var m_friction:Number;// = 0.8
private var m_character_height:int;// = 70
private var m_isVisible:Boolean;// = true
private var m_offset:int;// = 14
private var m_isFalling:Boolean;// = false
private var m_isOnRoof:Boolean;// = false
private var m_started:Boolean;// = false
private var m_isCrawling:Boolean;// = false
private var m_bounds:Rectangle;
private var m_spriteSheet:SpriteSheet;
private var m_floorThickness:int;// = 19
private var m_isOverdoor:Boolean;// = false
private var m_sy_old:int;
private var m_endFrame:int;// = 1
public var inputLeft:Boolean;// = false
private var m_tile_B:Point;
private var m_tile_C:Point;
private var m_accelerationRoof:Number;// = 0.7
private var m_isCrouching:Boolean;// = false
private var m_tile_L:Point;
private var m_acceleration:Number;// = 1
private var m_tile_R:Point;
private var m_tile_T:Point;
private var m_gameBitmapData:BitmapData;
private var m_spriteSheetX_BASE:int;
private var m_isOverKeypad:Boolean;// = false
private var m_crouchReleased:Boolean;// = true
private var m_level:Level;
private var m_panTime:Number;// = 0.5
private var m_startFrame:int;// = 1
private var m_switch:Switch;// = null
private var m_isJumpingLevel:Boolean;// = false
private var m_isOverGuard:Boolean;// = false
public var inputSpace:Boolean;// = false
private var m_sx_old:int;
private var m_tileSize:Number;// = 118
private var m_sx:Number;// = 0
private var m_sy:Number;// = 0
private var m_max_vx_crawl:Number;// = 3
private var m_debugContainer:CasaSprite;
private var m_loopFrames:Boolean;// = false
private var m_max_vx_roof:Number;// = 2
public var inputDown:Boolean;// = false
private var m_max_vx:Number;
private var m_boundColor:int;// = 0xFF0000
private var m_isWalking:Boolean;// = true
private var m_tile_BL:Point;
private var m_jumpTime:Number;
private var m_tile_BR:Point;
private var m_isAttacking:Boolean;// = false
private var m_spriteSheetY_BASE:int;
private var m_vx:Number;// = 0
private var m_vy:Number;// = 0
private var m_character:MovieClip;
private var m_tile_TR:Point;
private var m_tile_TL:Point;
private var m_isOnRoofMoving:Boolean;// = false
private var m_keypad:Keypad;// = null
private var m_spriteFlip:Boolean;// = false
private var m_targetDoor:Door;// = null
private var m_callBack:Function;
public var spriteSheetY:int;
private static var LEFT:String = "left";
public static var STATE_DEAD:String = "PlayerDead";
public static var STATE_CROUCH:String = "PlayerCrouch";
public static var STATE_FALL:String = "PlayerFall";
public static var STATE_ROOF_MOVE:String = "PlayerRoofMove";
public static var STATE_DOOR_IN:String = "PlayerDoorIn";
public static var STATE_ATTACK:String = "PlayerAttack";
public static var STATE_WALK:String = "PlayerWalk";
public static var STATE_IDLE:String = "PlayerIdle";
public static var STATE_FLOOR_DOWN:String = "PlayerFloorDown";
public static var STATE_ROOF_JUMP:String = "PlayerRoofJump";
public static var STATE_ROOF_HANG:String = "PlayerRoofHang";
public static var STATE_FLOOR_UP:String = "PlayerFloorUp";
public static var STATE_CRAWL:String = "PlayerCrawl";
public static var STATE_DOOR_OUT:String = "PlayerDoorOut";
private static var RIGHT:String = "right";
public static var STATE_HIT:String = "PlayerHit";
public static var STATE_ROOF_HIDE:String = "PlayerRoofHide";
public function Player(_arg1:Level, _arg2:BitmapData){
m_tile_TL = new Point();
m_tile_T = new Point();
m_tile_TR = new Point();
m_tile_L = new Point();
m_tile_C = new Point();
m_tile_R = new Point();
m_tile_BL = new Point();
m_tile_B = new Point();
m_tile_BR = new Point();
super();
m_level = _arg1;
m_gameBitmapData = _arg2;
m_character = new HeroUI();
m_spriteSheet = new SpriteSheet(m_character, 120, 100);
m_spriteSheetX_BASE = (spriteSheetX = (Constants.STAGE_WIDTH * 0.5));
m_spriteSheetY_BASE = (spriteSheetY = ((Constants.STAGE_HEIGHT * 0.5) + m_offset));
setAnimationState(STATE_IDLE);
GameBroadcaster.addEventListener(LevelController.ALARM, playerDiscovered);
}
private function moveToDoor():void{
Guard.resetWarnings();
m_isAnimating = true;
m_door.open();
setAnimationState(STATE_DOOR_IN);
}
private function playerDiscovered(_arg1:Event=null):void{
if (m_isGameOver){
return;
};
m_isGameOver = true;
m_boundColor = 0xFF0000;
GameBroadcaster.dispatchEvent(new Event(LevelController.ALARM));
}
public function destroy():void{
GameBroadcaster.removeEventListener(LevelController.ALARM, playerDiscovered);
TweenMax.killAll();
m_spriteSheet.destroy();
}
private function canJump():Boolean{
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
if (m_isOnRoof){
return (false);
};
if (m_isOnRoofHold){
return (false);
};
if (isForcedCrawl()){
return (false);
};
if (m_isCrouching){
return (false);
};
if (m_isCrawling){
return (false);
};
return (true);
}
private function checkSpeed():void{
if (((((!(m_isWalking)) && (!(m_isCrawling)))) && (!(m_isAttacking)))){
m_vx = (m_vx * m_friction);
if (Math.abs(m_vx) < 0.5){
m_vx = 0;
};
};
if (m_vx > m_max_vx){
m_vx = m_max_vx;
};
if (m_vx < -(m_max_vx)){
m_vx = -(m_max_vx);
};
}
public function resetInputs():void{
inputLeft = false;
inputRight = false;
}
private function canCrawl():Boolean{
if (m_isOnRoofHold){
return (false);
};
if (m_isOnRoof){
return (false);
};
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
return (true);
}
private function canAttack():Boolean{
if (m_isAttacking){
return (false);
};
if (m_isCrawling){
return (false);
};
if (m_isCrouching){
return (false);
};
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
if (m_isOnRoof){
return (false);
};
return (true);
}
public function renderDisplay():void{
if (!m_isAnimating){
if (m_isAttacking){
setAnimationState(STATE_ATTACK);
} else {
if (m_isWalking){
setAnimationState(STATE_WALK);
} else {
if (m_isCrawling){
setAnimationState(STATE_CRAWL);
} else {
if (m_isCrouching){
setAnimationState(STATE_CROUCH);
} else {
if (m_isFalling){
setAnimationState(STATE_FALL);
} else {
if (m_isJumpingRoof){
setAnimationState(STATE_ROOF_JUMP);
} else {
if (m_isJumpingLevel){
setAnimationState(STATE_FLOOR_UP);
} else {
if (m_isOnRoofHold){
setAnimationState(STATE_ROOF_HIDE);
} else {
if (m_isOnRoofMoving){
setAnimationState(STATE_ROOF_MOVE);
} else {
if (m_isOnRoof){
setAnimationState(STATE_ROOF_HANG);
} else {
setAnimationState(STATE_IDLE);
};
};
};
};
};
};
};
};
};
};
};
if (m_currentFrame < (m_endFrame - 1)){
m_currentFrame++;
} else {
if (m_loopFrames){
m_currentFrame = m_startFrame;
} else {
if (m_callBack != null){
m_callBack();
m_callBack = null;
};
};
};
m_spriteSheet.draw(m_gameBitmapData, spriteSheetX, spriteSheetY, m_currentFrame, m_spriteFlip);
if (Constants.BOUNDS){
Line.drawRect(getBounds(spriteSheetX, spriteSheetY), m_gameBitmapData, m_boundColor);
};
}
public function handleLeft():void{
if (m_isAnimating){
return;
};
if (!m_isOnRoofHold){
m_spriteFlip = true;
};
if (m_isCrouching){
m_max_vx = m_max_vx_crawl;
m_vx = (m_vx - m_accelerationCrawl);
m_isCrawling = true;
} else {
if (m_isOnRoofHold){
m_vx = 0;
} else {
if (m_isOnRoof){
m_max_vx = m_max_vx_roof;
m_vx = (m_vx - m_acceleration);
m_isOnRoofMoving = true;
} else {
if (canWalk()){
m_max_vx = m_max_vx_walk;
m_vx = (m_vx - m_acceleration);
m_isWalking = true;
};
};
};
};
}
private function attack():void{
if (m_guard){
m_guard.setPoints();
m_guard.explode();
m_guard = null;
GameBroadcaster.dispatchEvent(new MedalEvent(MedalEvent.ROBOT_DESTROYED, m_level.id));
Console.GoogleAnalytics.trackEvent("MRD_Escape", "misc", "robotDestroyed");
} else {
switch (int((Math.random() * 4))){
case 1:
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_02", 0.6, 1));
break;
case 2:
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_04", 0.6, 1));
break;
case 3:
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_08", 0.6, 1));
break;
default:
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_staff_12", 0.8, 1));
break;
};
};
m_vx = 0;
m_isAttacking = true;
setTimeout(attack_COMPLETE, m_attackTime);
}
public function start():void{
m_started = true;
}
public function get sx():Number{
return (m_sx);
}
public function get sy():Number{
return (m_sy);
}
private function setAnimationState(_arg1:String):void{
if (_arg1 == m_state){
return;
};
m_state = _arg1;
m_callBack = null;
switch (m_state){
case STATE_IDLE:
m_startFrame = 1;
m_endFrame = 24;
m_loopFrames = true;
break;
case STATE_WALK:
m_startFrame = 42;
m_endFrame = 59;
m_loopFrames = true;
break;
case STATE_CROUCH:
m_startFrame = 25;
m_endFrame = 41;
m_loopFrames = false;
break;
case STATE_ATTACK:
if (Math.random() > 0.5){
m_startFrame = 71;
m_endFrame = 80;
} else {
m_startFrame = 198;
m_endFrame = 207;
};
m_loopFrames = true;
break;
case STATE_ROOF_JUMP:
m_startFrame = 60;
m_endFrame = 70;
m_loopFrames = false;
break;
case STATE_FLOOR_UP:
m_startFrame = 60;
m_endFrame = 70;
m_loopFrames = false;
break;
case STATE_FALL:
m_startFrame = 81;
m_endFrame = 90;
m_loopFrames = true;
break;
case STATE_CRAWL:
m_startFrame = 209;
m_endFrame = 236;
m_loopFrames = true;
break;
case STATE_ROOF_HIDE:
m_startFrame = 91;
m_endFrame = 97;
m_loopFrames = false;
break;
case STATE_ROOF_HANG:
m_startFrame = 145;
m_endFrame = 172;
m_loopFrames = true;
break;
case STATE_ROOF_MOVE:
m_startFrame = 173;
m_endFrame = 197;
m_loopFrames = true;
break;
case STATE_DOOR_IN:
m_startFrame = 110;
m_endFrame = 117;
m_loopFrames = false;
m_callBack = moveToDoor_TRANSITION_BEGIN;
break;
case STATE_DOOR_OUT:
m_startFrame = 118;
m_endFrame = 125;
m_loopFrames = false;
m_callBack = moveToDoor_COMPLETE;
break;
};
m_currentFrame = m_startFrame;
}
private function getBoundingTiles():void{
m_tile_C.x = int((m_sx / m_tileSize));
m_tile_C.y = int((m_sy / m_tileSize));
m_tile_L.x = m_level.validWidth((m_tile_C.x - 1));
m_tile_L.y = m_tile_C.y;
m_tile_R.x = m_level.validWidth((m_tile_C.x + 1));
m_tile_R.y = m_tile_C.y;
m_tile_T.x = m_tile_C.x;
m_tile_T.y = m_level.validHeight((m_tile_C.y - 1));
m_tile_B.x = m_tile_C.x;
m_tile_B.y = m_level.validHeight((m_tile_C.y + 1));
m_tile_BL.x = m_level.validWidth((m_tile_C.x - 1));
m_tile_BL.y = m_level.validHeight((m_tile_C.y + 1));
m_tile_BR.x = m_level.validWidth((m_tile_C.x + 1));
m_tile_BR.y = m_level.validHeight((m_tile_C.y + 1));
m_tile_TL.x = m_level.validWidth((m_tile_C.x - 1));
m_tile_TL.y = m_level.validHeight((m_tile_C.y - 1));
m_tile_TR.x = m_level.validWidth((m_tile_C.x + 1));
m_tile_TR.y = m_level.validHeight((m_tile_C.y - 1));
}
public function set isAnimating(_arg1:Boolean):void{
m_isAnimating = _arg1;
}
private function checkCollisions(_arg1:Array):void{
var _local2:Number;
m_sx = (m_sx + m_vx);
if (m_vx < 0){
if (!tilePassable(m_tile_L)){
_local2 = (((m_tile_L.x + 1) * m_tileSize) + m_character_w2);
if (m_sx < _local2){
m_sx = _local2;
m_vx = 0;
};
} else {
if (m_level.collisionArray[m_tile_C.y][m_tile_C.x] == TileTypes.WALL_LEFT){
_local2 = (((m_tile_C.x + 0.5) * m_tileSize) + m_character_w2);
if (m_sx < _local2){
m_sx = _local2;
m_vx = 0;
};
};
};
} else {
if (m_vx > 0){
if (!tilePassable(m_tile_R)){
_local2 = ((m_tile_R.x * m_tileSize) - m_character_w2);
if (m_sx > _local2){
m_sx = _local2;
m_vx = 0;
};
} else {
if (m_level.collisionArray[m_tile_C.y][m_tile_C.x] == TileTypes.WALL_RIGHT){
_local2 = (((m_tile_C.x + 0.5) * m_tileSize) - m_character_w2);
if (m_sx > _local2){
m_sx = _local2;
m_vx = 0;
};
};
};
};
};
}
private function doFall():void{
m_isFalling = true;
m_isOnRoof = false;
m_isOnRoofHold = false;
m_jumpHeight = ((m_tile_C.y * m_tileSize) + (m_tileSize - m_floorThickness));
TweenMax.to(this, 0.2, {ease:Quadratic.easeIn, sy:m_jumpHeight, onComplete:doFall_COMPLETE});
}
public function doFall_COMPLETE():void{
m_isFalling = false;
if (Math.random() > 0.5){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_thud", 0.6, 1));
} else {
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_thud2", 0.6, 1));
};
}
private function moveToDoor_TRANSITION_BEGIN():void{
var _local1:Point;
if (m_door.goto == Door.EXIT){
GameBroadcaster.dispatchEvent(new Event(LevelController.COMPLETE));
} else {
m_targetDoor = Door.getItem(m_door.goto);
_local1 = positionFromTile(m_targetDoor.tileX, m_targetDoor.tileY);
TweenMax.to(this, 1, {sx:_local1.x, sy:_local1.y, onComplete:moveToDoor_TRANSITION_COMPLETE});
};
}
public function set sx(_arg1:Number):void{
m_sx = _arg1;
}
public function set sy(_arg1:Number):void{
m_sy = _arg1;
}
public function placePlayer():void{
var _local1:Point = positionFromTile(m_level.player.x, m_level.player.y);
m_sx = _local1.x;
m_sy = _local1.y;
}
public function handleRight():void{
if (m_isAnimating){
return;
};
if (!m_isOnRoofHold){
m_spriteFlip = false;
};
if (m_isCrouching){
m_max_vx = m_max_vx_crawl;
m_vx = (m_vx + m_accelerationCrawl);
m_isCrawling = true;
} else {
if (m_isOnRoofHold){
m_vx = 0;
} else {
if (m_isOnRoof){
m_max_vx = m_max_vx_roof;
m_vx = (m_vx + m_acceleration);
m_isOnRoofMoving = true;
} else {
if (canWalk()){
m_max_vx = m_max_vx_walk;
m_vx = (m_vx + m_acceleration);
m_isWalking = true;
};
};
};
};
}
public function handleUp():void{
var _local1:Number;
if (m_isAnimating){
return;
};
if (canJump()){
if (isJumpTile(m_tile_T)){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_tram_crash_01", 0.9, 1));
m_jumpHeight = (((m_tile_T.y + 1) * m_tileSize) - m_floorThickness);
m_isJumpingLevel = true;
m_vx = 0;
if (((!(tilePassable(m_tile_TL))) && ((m_vx < 0)))){
_local1 = (((m_tile_TL.x + 1) * m_tileSize) + m_character_w2);
if (m_sx < _local1){
m_sx = _local1;
m_vx = 0;
};
TweenMax.to(this, 0.4, {ease:Quadratic.easeOut, sx:_local1, sy:m_jumpHeight, onComplete:doJumpLevel_COMPLETE});
} else {
if (((!(tilePassable(m_tile_TR))) && ((m_vx > 0)))){
_local1 = ((m_tile_TR.x * m_tileSize) - m_character_w2);
if (m_sx > _local1){
m_sx = _local1;
};
TweenMax.to(this, 0.4, {ease:Quadratic.easeOut, sx:_local1, sy:m_jumpHeight, onComplete:doJumpLevel_COMPLETE});
} else {
TweenMax.to(this, 0.4, {ease:Quadratic.easeOut, sy:m_jumpHeight, onComplete:doJumpLevel_COMPLETE});
};
};
} else {
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_wall_climb_02", 0.8, 1));
m_jumpHeight = (((m_tile_C.y + 1) * m_tileSize) - 45);
m_isJumpingRoof = true;
TweenMax.to(this, 0.2, {ease:Quadratic.easeOut, sy:m_jumpHeight, onComplete:doJumpRoof_COMPLETE});
};
} else {
if (((m_isOnRoof) && (!(m_isOnRoofHold)))){
m_isOnRoofHold = true;
} else {
if (m_isOnRoofHold){
};
};
};
}
public function handleDown():void{
var _local1:Number;
m_vx = 0;
if (m_isAnimating){
return;
};
m_crouchReleased = false;
if (m_isOnRoofHold){
m_isOnRoofHold = false;
setAnimationState(STATE_ROOF_HANG);
} else {
if (m_isOnRoof){
doFall();
} else {
if (((isJumpTile(m_tile_C)) && (canFall()))){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_aerial_01", 0.5, 1));
m_isFalling = true;
m_jumpHeight = (((m_tile_B.y + 1) * m_tileSize) - m_floorThickness);
if (((!(tilePassable(m_tile_BL))) && ((m_vx < 0)))){
_local1 = (((m_tile_BL.x + 1) * m_tileSize) + m_character_w2);
if (m_sx < _local1){
m_sx = _local1;
};
TweenMax.to(this, 0.4, {ease:Quadratic.easeIn, sx:_local1, sy:m_jumpHeight, onComplete:doFall_COMPLETE});
} else {
if (((!(tilePassable(m_tile_BR))) && ((m_vx > 0)))){
_local1 = ((m_tile_BR.x * m_tileSize) - m_character_w2);
if (m_sx > _local1){
m_sx = _local1;
};
TweenMax.to(this, 0.4, {ease:Quadratic.easeIn, sx:_local1, sy:m_jumpHeight, onComplete:doFall_COMPLETE});
} else {
TweenMax.to(this, 0.4, {ease:Quadratic.easeIn, sy:m_jumpHeight, onComplete:doFall_COMPLETE});
};
};
} else {
if (canCrawl()){
m_isCrouching = true;
};
};
};
};
}
public function revertSprite_COMPLETE():void{
m_isAnimating = false;
GameBroadcaster.dispatchEvent(new PanEvent(LevelController.PAN_HIDE, NaN, NaN, null));
}
private function canOpenDoor():Boolean{
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
if (m_isOnRoof){
return (false);
};
if (m_isOnRoofHold){
return (false);
};
if (m_isCrouching){
return (false);
};
if (m_isCrawling){
return (false);
};
if (isForcedCrawl()){
return (false);
};
return (true);
}
public function moveToDoor_TRANSITION_COMPLETE():void{
m_targetDoor.open();
setTimeout(moveToDoor_WALKOUT, m_walkOutTime);
}
private function isForcedCrawl():Boolean{
var _local1:int = m_level.collisionArray[m_tile_C.y][m_tile_C.x];
if (_local1 == TileTypes.CRAWL){
return (true);
};
return (false);
}
public function doJumpLevel_COMPLETE():void{
m_isJumpingLevel = false;
}
private function attack_COMPLETE():void{
m_isAttacking = false;
}
public function moveSprite_COMPLETE():void{
if (m_callBack != null){
m_callBack();
};
m_callBack = null;
revertSprite();
}
private function isJumpTile(_arg1:Point):Boolean{
var _local2:int = m_level.collisionArray[_arg1.y][_arg1.x];
if (_local2 == TileTypes.FLOOR_JUMP){
return (true);
};
return (false);
}
public function get tileX():int{
return (m_tile_C.x);
}
public function get tileY():int{
return (m_tile_C.y);
}
public function doJumpRoof_COMPLETE():void{
m_isJumpingRoof = false;
m_isOnRoof = true;
}
private function canFall():Boolean{
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
return (true);
}
private function moveToDoor_WALKOUT():void{
setAnimationState(STATE_DOOR_OUT);
}
private function checkObstacles(_arg1:Array):void{
var _local4:IObstacle;
var _local5:int;
var _local6:Guard;
var _local2:Array = [];
m_boundColor = 0xFF00;
m_guard = null;
var _local3:int;
while (_local3 < _arg1.length) {
_local4 = _arg1[_local3];
_local5 = (sx - _local4.sx);
_local5 = ((_local5 < 0)) ? -(_local5) : _local5;
if (!_local4.isActive){
} else {
switch (_local4.type){
case ObstacleTypes.DOOR:
if ((((tileY == _local4.tileY)) && ((_local5 < _local4.range)))){
m_door = (_local4 as Door);
m_isOverdoor = true;
};
break;
case ObstacleTypes.SWITCH:
if ((((tileY == _local4.tileY)) && ((_local5 < _local4.range)))){
m_switch = (_local4 as Switch);
m_isOverSwitch = true;
};
break;
case ObstacleTypes.KEYPAD:
if ((((tileY == _local4.tileY)) && ((_local5 < _local4.range)))){
m_keypad = (_local4 as Keypad);
m_isOverKeypad = true;
};
break;
case ObstacleTypes.LASER:
if (tileY == _local4.tileY){
if (_local5 < _local4.range){
if ((_local4 as Laser).isOn){
playerDiscovered();
};
} else {
if ((_local4 as Laser).isOn){
_local2.push(((m_laserRange - Math.min(m_laserRange, Math.abs(_local5))) / (m_laserRange - _local4.range)));
} else {
_local2.push(0);
};
};
};
break;
case ObstacleTypes.SENSOR:
if (tileY == _local4.tileY){
if ((_local4 as Sensor).isOn){
_local2.push(((m_laserRange - Math.min(m_laserRange, Math.abs(_local5))) / (m_laserRange - _local4.range)));
} else {
_local2.push(0);
};
if (_local5 < _local4.range){
if ((_local4 as Sensor).isOn){
if (((m_isOnRoof) || (m_isOnRoofHold))){
if ((_local4 as Sensor).onTop()){
playerDiscovered();
};
} else {
if (!(_local4 as Sensor).onTop()){
playerDiscovered();
};
};
};
};
};
break;
case ObstacleTypes.CAMERA:
if ((((tileY == _local4.tileY)) && ((_local5 < _local4.range)))){
if ((_local4 as CCTV).isOn){
if (Polygon.rectInPoly(getBounds(spriteSheetX, spriteSheetY), (_local4 as CCTV).fov)){
playerDiscovered();
};
};
};
break;
case ObstacleTypes.GUARD:
if (tileY == _local4.tileY){
_local6 = (_local4 as Guard);
if ((((((_local5 < _local4.range)) && (_local6.canKill()))) && (_local6.isAlive()))){
m_guard = _local6;
};
if (!m_isOnRoofHold){
_local6.checkFOV(sx, sy, tileX, tileY, m_level.collisionArray);
};
};
break;
};
};
_local3++;
};
SoundController.getInstance().setLaserVolume(ArrayUtil.getHighestValue(_local2));
}
public function get point():Point{
return (new Point(m_sx, m_sy));
}
private function getBounds(_arg1:int, _arg2:int):Rectangle{
var _local3:Rectangle;
switch (m_state){
default:
if (m_spriteFlip){
_local3 = new Rectangle((_arg1 - 10), (_arg2 - 5), 30, 50);
} else {
_local3 = new Rectangle((_arg1 - 20), (_arg2 - 5), 30, 50);
};
break;
case STATE_CRAWL:
case STATE_CROUCH:
if (m_spriteFlip){
_local3 = new Rectangle((_arg1 - 15), (_arg2 + 15), 33, 30);
} else {
_local3 = new Rectangle((_arg1 - 20), (_arg2 + 15), 33, 30);
};
break;
case STATE_FALL:
case STATE_FLOOR_UP:
case STATE_ROOF_MOVE:
case STATE_ROOF_HANG:
case STATE_ROOF_JUMP:
if (m_spriteFlip){
_local3 = new Rectangle((_arg1 - 15), (_arg2 - 29), 30, 70);
} else {
_local3 = new Rectangle((_arg1 - 15), (_arg2 - 29), 30, 70);
};
break;
case STATE_ROOF_HIDE:
if (m_spriteFlip){
_local3 = new Rectangle((_arg1 - 24), (_arg2 - 29), 50, 33);
} else {
_local3 = new Rectangle((_arg1 - 24), (_arg2 - 29), 50, 33);
};
break;
};
return (_local3);
}
private function canWalk():Boolean{
if (m_isAttacking){
return (false);
};
if (m_isCrawling){
return (false);
};
if (m_isCrouching){
return (false);
};
if (m_isFalling){
return (false);
};
if (m_isJumpingLevel){
return (false);
};
if (m_isJumpingRoof){
return (false);
};
if (m_isOnRoof){
return (false);
};
return (true);
}
public function handleSpace():void{
if (m_isAnimating){
return;
};
m_vx = 0;
if (((!((m_guard == null))) && (canAttack()))){
attack();
} else {
if (((m_isOverdoor) && (canOpenDoor()))){
if (!m_door.locked){
moveToDoor();
m_isAnimating = true;
} else {
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_access_denied_01", 0.8, 1));
};
} else {
if (((((m_isOverSwitch) && (!(m_switch.used)))) && (canOpenDoor()))){
m_switch.toggle();
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_mech_operate_17", 0.8, 1));
} else {
if (((((m_isOverKeypad) && (!(m_keypad.used)))) && (canOpenDoor()))){
m_keypad.setPoints();
GameBroadcaster.dispatchEvent(new MiniGameEvent(MiniGameEvent.DISPLAY, m_keypad.miniGame, m_keypad, m_level.id));
} else {
if (canAttack()){
attack();
};
};
};
};
};
}
public function revertSprite():void{
TweenMax.to(this, m_panTime, {delay:0.25, sx:m_sx_old, sy:m_sy_old, spriteSheetX:m_spriteSheetX_BASE, spriteSheetY:m_spriteSheetY_BASE, ease:Quadratic.easeOut, onComplete:revertSprite_COMPLETE});
}
public function positionFromTile(_arg1:int, _arg2:int):Point{
var _local3:Point = new Point();
_local3.x = ((_arg1 * m_tileSize) + (m_tileSize / 2));
_local3.y = ((_arg2 * m_tileSize) + (m_tileSize - m_floorThickness));
return (_local3);
}
public function renderPhysics(_arg1:Array):void{
if (!m_started){
return;
};
if (!m_isAnimating){
getBoundingTiles();
m_isOverdoor = false;
m_isOverSwitch = false;
m_isOverKeypad = false;
m_isWalking = false;
m_isCrawling = false;
m_isOverGuard = false;
m_isOnRoofMoving = false;
if (((isForcedCrawl()) && (canCrawl()))){
m_isCrouching = true;
};
if (((((!(isForcedCrawl())) && (m_isCrouching))) && (m_crouchReleased))){
m_isCrouching = false;
};
if (inputLeft){
handleLeft();
} else {
if (inputRight){
handleRight();
};
};
checkSpeed();
checkCollisions(_arg1);
checkObstacles(_arg1);
getBounds(spriteSheetX, spriteSheetX);
if (((((m_isOnRoofHold) || (m_isJumpingLevel))) || (m_isFalling))){
Guard.resetWarnings();
};
};
}
private function tilePassable(_arg1:Point):Boolean{
var _local2:int = m_level.collisionArray[_arg1.y][_arg1.x];
if (_local2 == TileTypes.WALL_SOLID){
return (false);
};
if ((((_local2 == TileTypes.WALL_LEFT)) && ((m_vx > 0)))){
return (false);
};
if ((((_local2 == TileTypes.WALL_RIGHT)) && ((m_vx < 0)))){
return (false);
};
if ((((_local2 == TileTypes.CRAWL)) && (!(m_isCrawling)))){
return (false);
};
return (true);
}
private function moveToDoor_COMPLETE():void{
m_isAnimating = false;
}
public function resetCrouch():void{
m_crouchReleased = true;
m_isCrouching = false;
}
public function moveSprite(_arg1:int, _arg2:int, _arg3:Number, _arg4:Function):void{
m_sx_old = m_sx;
m_sy_old = m_sy;
m_callBack = _arg4;
m_isAnimating = true;
TweenMax.to(this, m_panTime, {sx:_arg1, sy:_arg2, spriteSheetX:(m_spriteSheetX_BASE + (m_sx - _arg1)), spriteSheetY:(m_spriteSheetY_BASE + (m_sy - _arg2)), ease:Quadratic.easeOut, onComplete:moveSprite_COMPLETE});
}
}
}//package game.player
Section 265
//TileEngine (game.tiles.TileEngine)
package game.tiles {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import game.levels.*;
import flash.geom.*;
import assets.*;
public class TileEngine {
private var tx:Number;
private var ty:Number;
public var left:Number;
private var tileSheetRef;
private var level:Level;
public var tileHeight:Number;
private var m_bitmapData:BitmapData;
public var tileSheetWidth:int;
private var stageRectangle:Rectangle;
private var mapPoint:Point;
public var right:Number;
private var oldX:int;// = 0
private var oldY:int;// = 0
public var mapHeight:Number;
public var bottom:Number;
private var m_container:Sprite;
public var tileWidth:Number;
private var stageHeight:Number;
public var mapWidth:Number;
private var tileArray:Array;
private var offsetx:Number;
private var offsety:Number;
private var topMax:Number;
private var tileSheet:BitmapData;
private var blank:int;
public var top:Number;
private var _bitmapTilesFG:tilesForeground;// = null
private var _bitmapTilesBG:tilesBackground;// = null
public var mapArray:Array;
private var mapRect:Rectangle;
public var mapArrayHeight:int;
private var stageWidth:Number;
public var mapArrayWidth:int;
private var cx:Number;
private var cy:Number;
private var _x:Number;
private var _y:Number;
private var t:Number;
private var u:Number;
private var leftMax:Number;
public static var TOP:int = 2;
public static var LEFT:int = 0;
public static var BOTTOM:int = 3;
public static var RIGHT:int = 1;
public function TileEngine(_arg1:int, _arg2:int, _arg3:Array, _arg4:String){
mapArray = [];
tileArray = [];
super();
blank = _arg2;
tileWidth = _arg1;
tileHeight = _arg1;
tileSheetRef = getDefinitionByName(_arg4);
tileSheet = new tileSheetRef(0, 0);
tileSheetRef = null;
tileSheetWidth = (tileSheet.width / _arg1);
stageWidth = Constants.STAGE_WIDTH;
stageHeight = Constants.STAGE_HEIGHT;
stageRectangle = new Rectangle(0, 0, stageWidth, stageHeight);
m_bitmapData = new BitmapData(stageRectangle.width, stageRectangle.height, true, 0);
mapArray = _arg3;
mapArrayWidth = mapArray[0].length;
mapArrayHeight = mapArray.length;
mapWidth = (mapArrayWidth * tileWidth);
mapHeight = (mapArray.length * tileHeight);
tx = (Math.ceil((stageWidth / tileWidth)) + 1);
ty = (Math.ceil((stageHeight / tileHeight)) + 1);
leftMax = (mapWidth / tileWidth);
topMax = (mapHeight / tileHeight);
}
public function get bitmapData():BitmapData{
return (m_bitmapData);
}
public function destroy():void{
tileSheet.dispose();
m_bitmapData.dispose();
}
private function drawCircle(_arg1:int, _arg2:int, _arg3:int=0xFF0000):void{
m_container.graphics.lineStyle(1, _arg3);
m_container.graphics.drawCircle(_arg1, _arg2, 4);
}
public function validWidth(_arg1:int):int{
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 >= mapArrayWidth){
_arg1 = (mapArrayWidth - 1);
};
return (_arg1);
}
private function getTile(_arg1:int):Rectangle{
_arg1--;
var _local2:int = int((_arg1 / tileSheetWidth));
var _local3:int = (_arg1 % tileSheetWidth);
var _local4:Rectangle = new Rectangle((_local3 * tileWidth), (_local2 * tileHeight), tileWidth, tileHeight);
return (_local4);
}
public function validHeight(_arg1:int):int{
if (_arg1 < 0){
_arg1 = 0;
};
if (_arg1 >= mapArrayHeight){
_arg1 = (mapArrayHeight - 1);
};
return (_arg1);
}
public function renderDisplay(_arg1:Number, _arg2:Number):BitmapData{
if (((((_arg1 - oldX) == 0)) && (((_arg2 - oldY) == 0)))){
return (m_bitmapData);
};
m_bitmapData.fillRect(stageRectangle, 0);
if (_arg1 < 0){
cx = -(Math.floor(Math.abs((_arg1 / tileWidth))));
} else {
cx = Math.floor((_arg1 / tileWidth));
};
if (_arg2 < 0){
cy = -(Math.floor(Math.abs((_arg2 / tileHeight))));
} else {
cy = Math.floor((_arg2 / tileHeight));
};
offsetx = (_arg1 % tileWidth);
offsety = (_arg2 % tileHeight);
t = -1;
while (t < tx) {
u = -1;
for (;u < ty;u++) {
left = (cx + t);
top = (cy + u);
right = (left + tx);
bottom = (top + ty);
if ((((((((left < 0)) || ((top < 0)))) || ((left >= leftMax)))) || ((top >= topMax)))){
mapRect = getTile(blank);
} else {
mapRect = getTile(mapArray[top][left]);
};
mapPoint = new Point((-(offsetx) + (t * tileWidth)), (-(offsety) + (u * tileHeight)));
if (mapPoint.x < -(tileWidth)){
continue;
} else {
if (mapPoint.y < -(tileHeight)){
continue;
} else {
if (mapPoint.x > stageWidth){
continue;
} else {
if (mapPoint.y > stageHeight){
continue;
};
};
};
};
if (mapPoint.x > (stageWidth - tileWidth)){
mapRect.width = (stageWidth - mapPoint.x);
} else {
if (mapPoint.x <= 0){
mapRect.x = (mapRect.x + -(mapPoint.x));
mapRect.width = (mapRect.width + mapPoint.x);
mapPoint.x = 0;
};
};
if (mapPoint.y > (stageHeight - tileHeight)){
mapRect.height = (stageHeight - mapPoint.y);
} else {
if (mapPoint.y <= 0){
mapRect.y = (mapRect.y + -(mapPoint.y));
mapRect.height = (mapRect.height + mapPoint.y);
mapPoint.y = 0;
};
};
m_bitmapData.copyPixels(tileSheet, mapRect, mapPoint, null, null, false);
};
t++;
};
oldX = _arg1;
oldY = _arg2;
return (m_bitmapData);
}
private function drawRect(_arg1:Rectangle, _arg2:int):void{
m_container.graphics.lineStyle(1, _arg2);
m_container.graphics.moveTo(_arg1.x, _arg1.y);
m_container.graphics.lineTo((_arg1.x + _arg1.width), _arg1.y);
m_container.graphics.lineTo((_arg1.x + _arg1.width), (_arg1.y + _arg1.height));
m_container.graphics.lineTo(_arg1.x, (_arg1.y + _arg1.height));
m_container.graphics.lineTo(_arg1.x, _arg1.y);
}
}
}//package game.tiles
Section 266
//TileTypes (game.tiles.TileTypes)
package game.tiles {
public class TileTypes {
public static var FLOOR_JUMP:int = 3;
public static var WALL_RIGHT:int = 6;
public static var CRAWL:int = 4;
public static var WALL_SOLID:int = 1;
public static var FLOOR_SOLID:int = 2;
public static var WALL_LEFT:int = 5;
}
}//package game.tiles
Section 267
//GameController (game.GameController)
package game {
import flash.events.*;
import console.*;
import game.levels.*;
import game.medals.*;
import gs.*;
import org.casalib.display.*;
import game.interfaces.*;
import org.casalib.util.*;
import com.electrotank.util.*;
import com.markfennell.utils.*;
public class GameController extends CasaSprite implements IGameController, IConsoleSection {
private var m_levels:int;
private var m_medalController:MedalController;
private var m_pause:Boolean;// = false
private var m_addedToStage:Boolean;// = false
private var m_cutSceneController:CutSceneController;
private var m_level:int;
private var m_levelController:LevelController;
private var m_endLevel:EndLevel;
private var m_levelData:Level;
public static var LEVEL_COMPLETED:String = "Level Completed";
public static var alarm:Boolean = false;
public static var LEVEL_FAILED:String = "LevelHASBEENFailed";
public static var GAME_COMPLETED:String = "Game Completed";
public function GameController(_arg1:int){
EndLevel.reset();
m_levels = EmbeddedData.levelNum;
m_level = _arg1;
GameBroadcaster.addEventListener(LEVEL_COMPLETED, nextLevel);
GameBroadcaster.addEventListener(LEVEL_FAILED, replayLevel);
MemoryCrypto.reset();
MemoryCrypto.setValue("score", 0);
MemoryCrypto.setValue("bonus", 0);
m_cutSceneController = new CutSceneController();
addChild(m_cutSceneController);
m_medalController = new MedalController();
m_medalController.setupListeners();
}
public function transitionIn_COMPLETE():void{
}
public function restart(_arg1:Event=null):void{
MemoryCrypto.reset();
if (m_levelController){
m_levelController.destroy();
};
LevelController.attempts = 0;
playLevel();
}
private function handleLevelComplete(_arg1:Event):void{
m_levelController.checkMedalSecretAgent();
m_levelController.stopTimer();
clearListeners();
m_levelController.doPause();
if (m_level < (m_levels - 1)){
showEndScreen(LEVEL_COMPLETED);
} else {
showEndGame();
};
}
public function doResume():void{
m_pause = false;
m_levelController.doResume();
}
private function showEndScreen(_arg1:String):void{
m_endLevel = new EndLevel(_arg1, m_levelController.time, m_levelData);
addChild(m_endLevel);
}
public function doPause():void{
m_pause = true;
m_levelController.doPause();
}
private function handleGameOver(_arg1:Event):void{
alarm = true;
clearListeners();
m_levelController.gameOver();
m_levelController.stopTimer();
var _local2:DelayedCall = new DelayedCall(showEndScreen, [LEVEL_FAILED], 1000);
}
private function showEndGame():void{
m_cutSceneController = new CutSceneController();
addChild(m_cutSceneController);
GameBroadcaster.addEventListener(CutSceneEvent.DISPLAY, handleCutScene);
GameBroadcaster.addEventListener(CutSceneEvent.HIDE, handleCutScene);
handleCutScene(new CutSceneEvent(CutSceneEvent.DISPLAY, "assets.VideoEndSequence"));
}
private function playLevel():void{
if (m_endLevel){
m_endLevel.destroy();
};
alarm = false;
m_levelData = new Level(m_level);
GameBroadcaster.addEventListener(LevelController.COMPLETE, handleLevelComplete);
GameBroadcaster.addEventListener(LevelController.ALARM, handleGameOver);
m_levelController = new LevelController();
addChild(m_levelController);
m_levelController.alpha = 0;
m_levelController.init(m_levelData);
if (!m_addedToStage){
m_addedToStage = true;
TweenMax.to(m_levelController, 0.75, {delay:0.3, alpha:1, onComplete:playLevel_COMPLETE});
} else {
TweenMax.to(m_levelController, 0.75, {delay:0.3, alpha:1});
};
StageReference.getStage().focus = m_levelController;
}
public function transitionOut():void{
TweenMax.to(this, 0.75, {alpha:0});
}
private function handleCutScene(_arg1:CutSceneEvent):void{
switch (_arg1.type){
case CutSceneEvent.DISPLAY:
m_cutSceneController.display(_arg1);
m_levelController.alpha = 0;
SoundController.getInstance().pause_music(true);
break;
case CutSceneEvent.HIDE:
SoundController.getInstance().pause_music(false);
showEndGame_COMPLETE();
break;
};
}
public function hide():void{
}
public function nextLevel(_arg1:Event=null):void{
trace("NEXT LEVEL");
LevelController.attempts = 0;
if (m_levelController){
m_levelController.destroy();
};
m_level++;
playLevel();
}
public function replayLevel_COMPLETE(_arg1:Event=null):void{
if (m_levelController){
m_levelController.destroy();
};
playLevel();
}
public function replayLevel(_arg1:Event=null):void{
LevelController.attempts++;
if (m_levelController){
TweenMax.to(m_levelController, 0.5, {alpha:0, onComplete:replayLevel_COMPLETE});
} else {
replayLevel_COMPLETE();
};
}
private function onReload(_arg1:ConsoleEvent):void{
m_level = int(_arg1.data);
restart();
}
public function transitionIn():void{
restart();
}
private function showEndGame_COMPLETE():void{
showEndScreen(GAME_COMPLETED);
}
private function clearListeners():void{
GameBroadcaster.removeEventListener(LevelController.COMPLETE, handleLevelComplete);
GameBroadcaster.removeEventListener(LevelController.ALARM, handleGameOver);
}
public function playLevel_COMPLETE():void{
dispatchEvent(new ConsoleEvent(ConsoleEvents.TRANSITION_COMPLETE));
}
override public function destroy():void{
m_medalController.clearListeners();
GameBroadcaster.removeEventListener(CutSceneEvent.DISPLAY, handleCutScene);
GameBroadcaster.removeEventListener(CutSceneEvent.HIDE, handleCutScene);
GameBroadcaster.removeEventListener(LevelController.COMPLETE, handleLevelComplete);
GameBroadcaster.removeEventListener(LevelController.ALARM, handleGameOver);
GameBroadcaster.removeEventListener(LEVEL_COMPLETED, nextLevel);
GameBroadcaster.removeEventListener(LEVEL_FAILED, replayLevel);
if (m_endLevel){
m_endLevel.destroy();
};
if (m_levelController){
m_levelController.destroy();
};
if (m_cutSceneController){
m_cutSceneController.destroy();
};
super.destroy();
}
}
}//package game
Section 268
//SoundController (game.SoundController)
package game {
import flash.events.*;
import flash.utils.*;
import com.markfennell.sound.*;
import assets.*;
public class SoundController {
private var _sfx_door:sfx_turbolift_doorclose_01;
private var m_soundsEnabled:Boolean;// = true
private var _sfx_laser:sfx_auto_turret_scan_01;
private var m_music_position:Number;// = 0
private var m_laserSoundPlayer:SoundPlayer;
private var _sfx_alarm:sfx_SOUNDDOGS_AL_147468;
private var _sfx_beep:sfx_cursor;
private var m_soundsArray:Array;
private var m_soundDictionary:Dictionary;
private var _sfx_denied:sfx_access_denied_01;
private var m_volumeEffects:Number;// = 1
private var _sfx_wall:sfx_wall_climb_02;
private var _sfx_music1:sfx_MRD_intro_main;
private var m_musicArray:Array;
private var _sfx_music3:sfx_MRD_level_loop_3;
private var _sfx_click:sfx_dry_fire_02;
private var m_music:SoundPlayer;
private var _sfx_switch:sfx_mech_operate_17;
private var _sfx_thud1:sfx_thud2;
private var _sfx_thud2:sfx_thud;
private var _sfx_music4:sfx_MRD_level_loop_4;
private var m_volumeMusic:Number;// = 1
private var _sfx_fall:sfx_aerial_01;
public var musicEnabled:Boolean;// = true
private var _sfx_console:sfx_console_entry_03;
private var m_currentTrack:int;// = -1
private var _sfx_wire:sfx_wire_slice_01;
private var _sfx_explode:sfx_charge_kill_stab_01;
private var _sfx_slash4:sfx_machete_heavy_01;
private var _sfx_slash5:sfx_staff_12;
private var _sfx_whoosh1:sfx_throw_whoosh_03;
private var _sfx_slash1:sfx_machete_normal_02;
private var _sfx_slash2:sfx_machete_normal_04;
private var _sfx_slash3:sfx_machete_normal_08;
private var _sfx_grunt:sfx_tram_crash_01;
private var _sfx_whoosh2:sfx_throw_whoosh_01;
private var _sfx_music2:sfx_MRD_level_loop_2;
private static var m_instance:SoundController = null;
public function SoundController(){
m_instance = this;
m_musicArray = ["assets.sfx_MRD_intro_main", "assets.sfx_MRD_level_loop_2", "assets.sfx_MRD_level_loop_3", "assets.sfx_MRD_level_loop_4"];
m_soundsArray = [];
}
public function setLaserVolume(_arg1:Number, _arg2:Boolean=false):void{
if (m_laserSoundPlayer){
if (!soundsEnabled){
_arg1 = 0;
};
m_laserSoundPlayer.volume = (_arg1 * m_volumeEffects);
};
}
public function start_music(_arg1:int=0, _arg2:Boolean=false):void{
var _local3:*;
trace(("STARTING MUSIC TRACK " + _arg1));
if ((((m_currentTrack == _arg1)) && (!(_arg2)))){
return;
};
if (musicEnabled){
m_currentTrack = _arg1;
if (m_music){
m_music.destroy();
};
_local3 = getDefinitionByName(m_musicArray[m_currentTrack]);
m_music = new SoundPlayer(new (_local3));
m_music.stoppable = false;
_local3 = null;
m_music.play((Constants.VOLUME_MUSIC * m_volumeMusic), 999);
};
}
public function get volumeEffects():Number{
return (m_volumeEffects);
}
public function startLasers():void{
m_laserSoundPlayer = new SoundPlayer(new sfx_auto_turret_scan_01());
m_laserSoundPlayer.play(1, 999);
m_laserSoundPlayer.volume = 0;
}
public function pause_music(_arg1:Boolean):void{
if (_arg1){
m_music.pause();
} else {
m_music.resume();
};
}
public function resume_music():void{
start_music(m_currentTrack, true);
}
public function get volumeMusic():Number{
return (m_volumeMusic);
}
public function stop_music():void{
m_music.stop();
}
public function musicRestart(_arg1:Event):void{
if (musicEnabled){
m_music.stop();
m_music.play((Constants.VOLUME_MUSIC * m_volumeMusic), 999);
};
}
public function set soundsEnabled(_arg1:Boolean):void{
m_soundsEnabled = _arg1;
}
public function set volumeEffects(_arg1:Number):void{
m_volumeEffects = Math.max(0, Math.min(1, _arg1));
}
public function stopSounds():void{
stopLasers();
SoundPlayer.stopSounds();
}
public function playSound(_arg1:SoundEvent):void{
var _local2:*;
var _local3:SoundPlayer;
if (soundsEnabled){
if (_arg1.force){
stopSounds();
};
_local2 = getDefinitionByName(_arg1.name);
_local3 = new SoundPlayer(new (_local2));
_local3.play((_arg1.volume * m_volumeEffects));
_local2 = null;
};
}
public function stopLasers():void{
try {
m_laserSoundPlayer.stop();
m_laserSoundPlayer.destroy();
} catch(e:Error) {
};
}
public function resumeSounds():void{
startLasers();
}
public function get soundsEnabled():Boolean{
return (m_soundsEnabled);
}
public function set volumeMusic(_arg1:Number):void{
m_volumeMusic = Math.max(0, Math.min(1, _arg1));
}
public static function getInstance():SoundController{
if (m_instance == null){
m_instance = new (SoundController);
};
return (m_instance);
}
}
}//package game
Section 269
//TweenEvent (gs.events.TweenEvent)
package gs.events {
import flash.events.*;
public class TweenEvent extends Event {
public var info:Object;
public static const UPDATE:String = "update";
public static const START:String = "start";
public static const version:Number = 0.9;
public static const COMPLETE:String = "complete";
public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.info = _arg2;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable));
}
}
}//package gs.events
Section 270
//OverwriteManager (gs.OverwriteManager)
package gs {
import flash.utils.*;
import flash.errors.*;
public class OverwriteManager {
public static const ALL:int = 1;
public static const NONE:int = 0;
public static const AUTO:int = 2;
public static const CONCURRENT:int = 3;
public static const version:Number = 1;
public static var mode:int;
public static var enabled:Boolean;
public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array, _arg4:Array, _arg5:Array):void{
var _local6:int;
var _local7:String;
_local6 = (_arg4.length - 1);
while (_local6 > -1) {
if (_arg1[_arg4[_local6].name] != undefined){
_arg4.splice(_local6, 1);
};
_local6--;
};
_local6 = (_arg3.length - 1);
while (_local6 > -1) {
if (_arg1[_arg3[_local6][4]] != undefined){
_arg3.splice(_local6, 1);
};
_local6--;
};
_local6 = (_arg5.length - 1);
while (_local6 > -1) {
if (_arg1[_arg5[_local6].name] != undefined){
_arg5.splice(_local6, 1);
};
_local6--;
};
for (_local7 in _arg1) {
delete _arg2[_local7];
};
}
public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{
var _local7:int;
var _local8:TweenLite;
var _local9:Object;
var _local10:String;
var _local3:Object = _arg1.vars;
var _local4:int = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite);
if ((((_local4 < 2)) || ((_arg2 == null)))){
return;
};
var _local5:Number = _arg1.startTime;
var _local6:Array = [];
_local7 = (_arg2.length - 1);
while (_local7 > -1) {
_local8 = _arg2[_local7];
if (((((!((_local8 == _arg1))) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){
_local6[_local6.length] = _local8;
};
_local7--;
};
if (_local6.length == 0){
return;
};
if (_local4 == AUTO){
if (_local3.isTV == true){
_local3 = _local3.exposedProps;
};
_local9 = {};
for (_local10 in _local3) {
if ((((((((((((((((((((((((((((((((((((((((((((_local10 == "ease")) || ((_local10 == "delay")))) || ((_local10 == "overwrite")))) || ((_local10 == "onComplete")))) || ((_local10 == "onCompleteParams")))) || ((_local10 == "runBackwards")))) || ((_local10 == "persist")))) || ((_local10 == "onUpdate")))) || ((_local10 == "onUpdateParams")))) || ((_local10 == "timeScale")))) || ((_local10 == "onStart")))) || ((_local10 == "onStartParams")))) || ((_local10 == "renderOnStart")))) || ((_local10 == "proxiedEase")))) || ((_local10 == "easeParams")))) || ((_local10 == "onCompleteAll")))) || ((_local10 == "onCompleteAllParams")))) || ((_local10 == "yoyo")))) || ((_local10 == "loop")))) || ((_local10 == "onCompleteListener")))) || ((_local10 == "onStartListener")))) || ((_local10 == "onUpdateListener")))){
} else {
_local9[_local10] = 1;
if (_local10 == "shortRotate"){
_local9.rotation = 1;
} else {
if (_local10 == "removeTint"){
_local9.tint = 1;
} else {
if (_local10 == "autoAlpha"){
_local9.alpha = 1;
_local9.visible = 1;
};
};
};
};
};
_local7 = (_local6.length - 1);
while (_local7 > -1) {
_local6[_local7].killVars(_local9);
_local7--;
};
} else {
_local7 = (_local6.length - 1);
while (_local7 > -1) {
_local6[_local7].enabled = false;
_local7--;
};
};
}
public static function init(_arg1:int=2):int{
if (TweenLite.version < 9.29){
trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com.");
};
TweenLite.overwriteManager = OverwriteManager;
mode = _arg1;
enabled = true;
return (mode);
}
}
}//package gs
Section 271
//TweenFilterLite (gs.TweenFilterLite)
package gs {
import flash.utils.*;
import flash.filters.*;
public class TweenFilterLite extends TweenLite {
protected var _matrix:Array;
protected var _hf:Boolean;// = false
protected var _roundProps:Boolean;
protected var _cmf:ColorMatrixFilter;
protected var _filters:Array;
protected var _endMatrix:Array;
protected var _timeScale:Number;
protected var _clrsa:Array;
public static var removeTween:Function = TweenLite.removeTween;
private static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
private static var _lumB:Number = 0.072169;
public static var delayedCall:Function = TweenLite.delayedCall;
public static var killTweensOf:Function = TweenLite.killTweensOf;
public static var version:Number = 9.29;
private static var _lumG:Number = 0.71516;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
private static var _lumR:Number = 0.212671;
protected static var _globalTimeScale:Number = 1;
public function TweenFilterLite(_arg1:Object, _arg2:Number, _arg3:Object){
_filters = [];
super(_arg1, _arg2, _arg3);
if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenFilterLite)))){
_timeScale = 1;
this.combinedTimeScale = _globalTimeScale;
} else {
_timeScale = this.combinedTimeScale;
this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale);
};
if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
};
if (TweenLite.version < 9.29){
trace("TweenFilterLite error! Please update your TweenLite class or try deleting your ASO files. TweenFilterLite requires a more recent version. Download updates at http://www.TweenLite.com.");
};
}
override public function killVars(_arg1:Object):void{
if (TweenLite.overwriteManager.enabled){
TweenLite.overwriteManager.killVars(_arg1, this.vars, this.tweens, _subTweens, ((_filters) || ([])));
};
}
override public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:int;
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:int;
var _local8:String;
if (((!(_arg1)) && (TweenLite.overwriteManager.enabled))){
TweenLite.overwriteManager.manageOverwrites(this, masterList[this.target]);
};
_clrsa = [];
_filters = [];
_matrix = _idMatrix.slice();
_arg2 = (_arg2 + " blurFilter glowFilter colorMatrixFilter dropShadowFilter bevelFilter roundProps ");
_roundProps = Boolean((this.vars.roundProps is Array));
if (_isDisplayObject){
if (this.vars.blurFilter != null){
_local4 = this.vars.blurFilter;
addFilter("blurFilter", _local4, BlurFilter, ["blurX", "blurY", "quality"], new BlurFilter(0, 0, ((_local4.quality) || (2))));
};
if (this.vars.glowFilter != null){
_local4 = this.vars.glowFilter;
addFilter("glowFilter", _local4, GlowFilter, ["alpha", "blurX", "blurY", "color", "quality", "strength", "inner", "knockout"], new GlowFilter(0xFFFFFF, 0, 0, 0, ((_local4.strength) || (1)), ((_local4.quality) || (2)), _local4.inner, _local4.knockout));
};
if (this.vars.colorMatrixFilter != null){
_local4 = this.vars.colorMatrixFilter;
_local5 = addFilter("colorMatrixFilter", _local4, ColorMatrixFilter, [], new ColorMatrixFilter(_matrix));
_cmf = _local5.filter;
_matrix = ColorMatrixFilter(_cmf).matrix;
if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){
_endMatrix = _local4.matrix;
} else {
if (_local4.relative == true){
_endMatrix = _matrix.slice();
} else {
_endMatrix = _idMatrix.slice();
};
_endMatrix = setBrightness(_endMatrix, _local4.brightness);
_endMatrix = setContrast(_endMatrix, _local4.contrast);
_endMatrix = setHue(_endMatrix, _local4.hue);
_endMatrix = setSaturation(_endMatrix, _local4.saturation);
_endMatrix = setThreshold(_endMatrix, _local4.threshold);
if (!isNaN(_local4.colorize)){
_endMatrix = colorize(_endMatrix, _local4.colorize, _local4.amount);
} else {
if (!isNaN(_local4.color)){
_endMatrix = colorize(_endMatrix, _local4.color, _local4.amount);
};
};
};
_local3 = 0;
while (_local3 < _endMatrix.length) {
if (((!((_matrix[_local3] == _endMatrix[_local3]))) && (!((_matrix[_local3] == undefined))))){
this.tweens[this.tweens.length] = [_matrix, _local3.toString(), _matrix[_local3], (_endMatrix[_local3] - _matrix[_local3]), "colorMatrixFilter"];
};
_local3++;
};
};
if (this.vars.dropShadowFilter != null){
_local4 = this.vars.dropShadowFilter;
addFilter("dropShadowFilter", _local4, DropShadowFilter, ["alpha", "angle", "blurX", "blurY", "color", "distance", "quality", "strength", "inner", "knockout", "hideObject"], new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_local4.quality) || (2)), _local4.inner, _local4.knockout, _local4.hideObject));
};
if (this.vars.bevelFilter != null){
_local4 = this.vars.bevelFilter;
addFilter("bevelFilter", _local4, BevelFilter, ["angle", "blurX", "blurY", "distance", "highlightAlpha", "highlightColor", "quality", "shadowAlpha", "shadowColor", "strength"], new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_local4.quality) || (2))));
};
if (this.vars.runBackwards == true){
_local3 = (_clrsa.length - 1);
while (_local3 > -1) {
_local6 = _clrsa[_local3];
_clrsa[_local3].sr = (_local6.sr + _local6.cr);
_local6.cr = (_local6.cr * -1);
_local6.sg = (_local6.sg + _local6.cg);
_local6.cg = (_local6.cg * -1);
_local6.sb = (_local6.sb + _local6.cb);
_local6.cb = (_local6.cb * -1);
_local6.f[_local6.p] = (((_local6.sr << 16) | (_local6.sg << 8)) | _local6.sb);
_local3--;
};
};
super.initTweenVals(true, _arg2);
} else {
super.initTweenVals(_arg1, _arg2);
};
if (_roundProps){
_local3 = (this.vars.roundProps.length - 1);
while (_local3 > -1) {
_local8 = this.vars.roundProps[_local3];
_local7 = (this.tweens.length - 1);
while (_local7 > -1) {
if ((((this.tweens[_local7][1] == _local8)) && ((this.tweens[_local7][0] == this.target)))){
this.tweens[_local7][5] = true;
break;
};
_local7--;
};
_local3--;
};
};
}
override public function set enabled(_arg1:Boolean):void{
super.enabled = _arg1;
if (_arg1){
this.combinedTimeScale = (_timeScale * _globalTimeScale);
};
}
public function set timeScale(_arg1:Number):void{
if (_arg1 < 1E-5){
_arg1 = (_timeScale = 1E-5);
} else {
_timeScale = _arg1;
_arg1 = (_arg1 * _globalTimeScale);
};
this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1)));
if (this.startTime != 999999999999999){
this.startTime = (this.initTime + (this.delay * (1000 / _arg1)));
};
this.combinedTimeScale = _arg1;
}
public function get timeScale():Number{
return (_timeScale);
}
override public function render(_arg1:uint):void{
var _local3:Number;
var _local4:Object;
var _local5:int;
var _local6:Number;
var _local7:int;
var _local8:Array;
var _local9:int;
var _local2:Number = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
if (!_roundProps){
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3]));
_local5--;
};
} else {
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
if (_local4[5]){
_local6 = (_local4[2] + (_local3 * _local4[3]));
_local7 = ((_local6)<0) ? -1 : 1;
_local4[0][_local4[1]] = ((((_local6 % 1) * _local7))>0.5) ? (int(_local6) + _local7) : int(_local6);
} else {
_local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3]));
};
_local5--;
};
};
if (_hf){
_local5 = (_clrsa.length - 1);
while (_local5 > -1) {
_local4 = _clrsa[_local5];
_local4.f[_local4.p] = ((((_local4.sr + (_local3 * _local4.cr)) << 16) | ((_local4.sg + (_local3 * _local4.cg)) << 8)) | (_local4.sb + (_local3 * _local4.cb)));
_local5--;
};
if (_cmf != null){
ColorMatrixFilter(_cmf).matrix = _matrix;
};
_local8 = this.target.filters;
_local5 = 0;
while (_local5 < _filters.length) {
_local9 = (_local8.length - 1);
while (_local9 > -1) {
if ((_local8[_local9] is _filters[_local5].type)){
_local8.splice(_local9, 1, _filters[_local5].filter);
break;
};
_local9--;
};
_local5++;
};
this.target.filters = _local8;
};
if (_hst){
_local5 = (_subTweens.length - 1);
while (_local5 > -1) {
_subTweens[_local5].proxy(_subTweens[_local5], _local2);
_local5--;
};
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
private function addFilter(_arg1:String, _arg2:Object, _arg3:Class, _arg4:Array, _arg5:BitmapFilter):Object{
var _local8:int;
var _local9:String;
var _local10:Number;
var _local11:Object;
var _local12:Object;
var _local6:Object = {type:_arg3, name:_arg1};
var _local7:Array = this.target.filters;
_local8 = 0;
while (_local8 < _local7.length) {
if ((_local7[_local8] is _arg3)){
_local6.filter = _local7[_local8];
break;
};
_local8++;
};
if (_local6.filter == undefined){
_local6.filter = _arg5;
_local7[_local7.length] = _local6.filter;
this.target.filters = _local7;
};
_local8 = 0;
while (_local8 < _arg4.length) {
_local9 = _arg4[_local8];
if (_arg2[_local9] != undefined){
if ((((((_local9 == "color")) || ((_local9 == "highlightColor")))) || ((_local9 == "shadowColor")))){
_local11 = HEXtoRGB(_local6.filter[_local9]);
_local12 = HEXtoRGB(_arg2[_local9]);
_clrsa[_clrsa.length] = {f:_local6.filter, p:_local9, sr:_local11.rb, cr:(_local12.rb - _local11.rb), sg:_local11.gb, cg:(_local12.gb - _local11.gb), sb:_local11.bb, cb:(_local12.bb - _local11.bb)};
} else {
if ((((((((_local9 == "quality")) || ((_local9 == "inner")))) || ((_local9 == "knockout")))) || ((_local9 == "hideObject")))){
_local6.filter[_local9] = _arg2[_local9];
} else {
if (typeof(_arg2[_local9]) == "number"){
_local10 = (_arg2[_local9] - _local6.filter[_local9]);
} else {
_local10 = Number(_arg2[_local9]);
};
this.tweens[this.tweens.length] = [_local6.filter, _local9, _local6.filter[_local9], _local10, _arg1];
};
};
};
_local8++;
};
_filters[_filters.length] = _local6;
_hf = true;
return (_local6);
}
public static function setHue(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 * (Math.PI / 180));
var _local3:Number = Math.cos(_arg2);
var _local4:Number = Math.sin(_arg2);
var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
return (applyMatrix(_local5, _arg1));
}
public static function setContrast(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = (_arg2 + 0.01);
var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0];
return (applyMatrix(_local3, _arg1));
}
public static function applyMatrix(_arg1:Array, _arg2:Array):Array{
var _local6:int;
var _local7:int;
if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){
return (_arg2);
};
var _local3:Array = [];
var _local4:int;
var _local5:int;
_local6 = 0;
while (_local6 < 4) {
_local7 = 0;
while (_local7 < 5) {
if (_local7 == 4){
_local5 = _arg1[(_local4 + 4)];
} else {
_local5 = 0;
};
_local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5);
_local7++;
};
_local4 = (_local4 + 5);
_local6++;
};
return (_local3);
}
public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{
if (isNaN(_arg2)){
return (_arg1);
};
if (isNaN(_arg3)){
_arg3 = 1;
};
var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF);
var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF);
var _local6:Number = ((_arg2 & 0xFF) / 0xFF);
var _local7:Number = (1 - _arg3);
var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(_local8, _arg1));
}
public static function setBrightness(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
_arg2 = ((_arg2 * 100) - 100);
return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1));
}
public static function setSaturation(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
var _local3:Number = (1 - _arg2);
var _local4:Number = (_local3 * _lumR);
var _local5:Number = (_local3 * _lumG);
var _local6:Number = (_local3 * _lumB);
var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(_local7, _arg1));
}
public static function setGlobalTimeScale(_arg1:Number):void{
var _local3:int;
var _local4:Array;
if (_arg1 < 1E-5){
_arg1 = 1E-5;
};
var _local2:Dictionary = masterList;
_globalTimeScale = _arg1;
for each (_local4 in _local2) {
_local3 = (_local4.length - 1);
while (_local3 > -1) {
if ((_local4[_local3] is TweenFilterLite)){
_local4[_local3].timeScale = (_local4[_local3].timeScale * 1);
};
_local3--;
};
};
}
public static function get globalTimeScale():Number{
return (_globalTimeScale);
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenFilterLite{
_arg3.runBackwards = true;
return (new TweenFilterLite(_arg1, _arg2, _arg3));
}
public static function set globalTimeScale(_arg1:Number):void{
setGlobalTimeScale(_arg1);
}
public static function HEXtoRGB(_arg1:Number):Object{
return ({rb:(_arg1 >> 16), gb:((_arg1 >> 8) & 0xFF), bb:(_arg1 & 0xFF)});
}
public static function setThreshold(_arg1:Array, _arg2:Number):Array{
if (isNaN(_arg2)){
return (_arg1);
};
var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0];
return (applyMatrix(_local3, _arg1));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenFilterLite{
return (new TweenFilterLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 272
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.geom.*;
public class TweenLite {
public var started:Boolean;
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _subTweens:Array;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
protected var _hst:Boolean;
public var gc:Boolean;
protected var _isDisplayObject:Boolean;
public var tweens:Array;
public var vars:Object;
public var ease:Function;
protected var _specialVars:Object;
public var initTime:Number;
public var combinedTimeScale:Number;
private static var _timer:Timer = new Timer(2000);
private static var _classInitted:Boolean;
public static var defaultEase:Function = TweenLite.easeOut;
public static var version:Number = 9.29;
public static var masterList:Dictionary = new Dictionary(false);
public static var currentTime:uint;
public static var overwriteManager:Object;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){
if (_arg1 == null){
return;
};
if (!_classInitted){
currentTime = getTimer();
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage, false, 0, true);
_timer.start();
_classInitted = true;
};
this.vars = _arg3;
this.duration = ((_arg2) || (0.001));
this.delay = ((_arg3.delay) || (0));
this.combinedTimeScale = ((_arg3.timeScale) || (1));
this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0))));
this.target = _arg1;
_isDisplayObject = Boolean((_arg1 is DisplayObject));
if (!(this.vars.ease is Function)){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
if (!isNaN(Number(this.vars.autoAlpha))){
this.vars.alpha = Number(this.vars.autoAlpha);
this.vars.visible = Boolean((this.vars.alpha > 0));
};
_specialVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars;
this.tweens = [];
_subTweens = [];
_hst = (this.initted = false);
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite);
if ((((masterList[_arg1] == undefined)) || (((!((_arg1 == null))) && ((_local4 == 1)))))){
masterList[_arg1] = [];
};
masterList[_arg1].push(this);
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){
initTweenVals();
if (this.active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((_specialVars.visible == null))) && ((this.vars.runBackwards == true)))) && (_isDisplayObject))){
this.target.visible = _specialVars.visible;
};
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function render(_arg1:uint):void{
var _local3:Number;
var _local4:Object;
var _local5:int;
var _local2:Number = ((_arg1 - this.startTime) * 0.001);
if (_local2 >= this.duration){
_local2 = this.duration;
_local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
_local3 = this.ease(_local2, 0, 1, this.duration);
};
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3]));
_local5--;
};
if (_hst){
_local5 = (_subTweens.length - 1);
while (_local5 > -1) {
_subTweens[_local5].proxy(_subTweens[_local5], _local2);
_local5--;
};
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (_local2 == this.duration){
complete(true);
};
}
public function set enabled(_arg1:Boolean):void{
var _local2:Array;
var _local3:Boolean;
var _local4:int;
if (_arg1){
if (masterList[this.target] == undefined){
masterList[this.target] = [this];
} else {
_local2 = masterList[this.target];
_local4 = (_local2.length - 1);
while (_local4 > -1) {
if (_local2[_local4] == this){
_local3 = true;
break;
};
_local4--;
};
if (!_local3){
masterList[this.target].push(this);
};
};
};
this.gc = (_arg1) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function activate():void{
this.started = (this.active = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
}
public function clear():void{
this.tweens = [];
_subTweens = [];
this.vars = {};
_hst = (_hasUpdate = false);
}
protected function addSubTween(_arg1:String, _arg2:Function, _arg3:Object, _arg4:Object, _arg5:Object=null):void{
var _local6:String;
_subTweens[_subTweens.length] = {name:_arg1, proxy:_arg2, target:_arg3, info:_arg5};
for (_local6 in _arg4) {
if (typeof(_arg4[_local6]) == "number"){
this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], (_arg4[_local6] - _arg3[_local6]), _arg1];
} else {
this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], Number(_arg4[_local6]), _arg1];
};
};
_hst = true;
}
public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:String;
var _local4:int;
var _local5:Array;
var _local6:ColorTransform;
var _local7:ColorTransform;
var _local8:Object;
if (((!(_arg1)) && (overwriteManager.enabled))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
if ((this.target is Array)){
_local5 = ((this.vars.endArray) || ([]));
_local4 = 0;
while (_local4 < _local5.length) {
if (((!((this.target[_local4] == _local5[_local4]))) && (!((this.target[_local4] == undefined))))){
this.tweens[this.tweens.length] = [this.target, _local4.toString(), this.target[_local4], (_local5[_local4] - this.target[_local4]), _local4.toString()];
};
_local4++;
};
} else {
if (((((!((typeof(_specialVars.tint) == "undefined"))) || ((this.vars.removeTint == true)))) && (_isDisplayObject))){
_local6 = this.target.transform.colorTransform;
_local7 = new ColorTransform();
if (_specialVars.alpha != undefined){
_local7.alphaMultiplier = _specialVars.alpha;
delete _specialVars.alpha;
} else {
_local7.alphaMultiplier = this.target.alpha;
};
if (((!((this.vars.removeTint == true))) && (((((!((_specialVars.tint == null))) && (!((_specialVars.tint == ""))))) || ((_specialVars.tint == 0)))))){
_local7.color = _specialVars.tint;
};
addSubTween("tint", tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local6, endColor:_local7});
};
if (((!((_specialVars.frame == null))) && (_isDisplayObject))){
addSubTween("frame", frameProxy, {frame:this.target.currentFrame}, {frame:_specialVars.frame}, {target:this.target});
};
if (((!(isNaN(this.vars.volume))) && (this.target.hasOwnProperty("soundTransform")))){
addSubTween("volume", volumeProxy, this.target.soundTransform, {volume:this.vars.volume}, {target:this.target});
};
if (((!((_specialVars.visible == null))) && (_isDisplayObject))){
addSubTween("visible", visibleProxy, {}, {}, {tween:this});
};
for (_local3 in _specialVars) {
if ((((((((((((((((((((((((((((((((((((((_local3 == "ease")) || ((_local3 == "delay")))) || ((_local3 == "overwrite")))) || ((_local3 == "onComplete")))) || ((_local3 == "onCompleteParams")))) || ((_local3 == "runBackwards")))) || ((_local3 == "visible")))) || ((_local3 == "autoOverwrite")))) || ((_local3 == "persist")))) || ((_local3 == "onUpdate")))) || ((_local3 == "onUpdateParams")))) || ((_local3 == "autoAlpha")))) || ((((_local3 == "timeScale")) && (!((this.target is TweenLite))))))) || ((_local3 == "onStart")))) || ((_local3 == "onStartParams")))) || ((_local3 == "renderOnStart")))) || ((_local3 == "proxiedEase")))) || ((_local3 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local3) + " ")) == -1))))))){
} else {
if (((!(((_isDisplayObject) && ((((((_local3 == "tint")) || ((_local3 == "removeTint")))) || ((_local3 == "frame"))))))) && (!((((_local3 == "volume")) && (this.target.hasOwnProperty("soundTransform"))))))){
if (typeof(_specialVars[_local3]) == "number"){
this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], (_specialVars[_local3] - this.target[_local3]), _local3];
} else {
this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], Number(_specialVars[_local3]), _local3];
};
};
};
};
};
if (this.vars.runBackwards == true){
_local4 = (this.tweens.length - 1);
while (_local4 > -1) {
_local8 = this.tweens[_local4];
_local8[2] = (_local8[2] + _local8[3]);
_local8[3] = (_local8[3] * -1);
_local4--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
this.initted = true;
}
protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars(_arg1:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars(_arg1, this.vars, this.tweens, _subTweens, []);
};
}
public function complete(_arg1:Boolean=false):void{
if (!_arg1){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function frameProxy(_arg1:Object, _arg2:Number=0):void{
_arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame));
}
public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{
if (_arg1 != null){
if (_arg2){
_arg1.clear();
};
_arg1.enabled = false;
};
}
public static function visibleProxy(_arg1:Object, _arg2:Number):void{
var _local3:TweenLite = _arg1.info.tween;
if (_local3.duration == _arg2){
if (((!((_local3.vars.runBackwards == true))) && ((_local3.ease == _local3.vars.ease)))){
_local3.target.visible = _local3.vars.visible;
};
} else {
if (_local3.target.visible != true){
_local3.target.visible = true;
};
};
}
public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
if (((!((_arg1 == null))) && (!((masterList[_arg1] == undefined))))){
_local3 = masterList[_arg1];
_local4 = (_local3.length - 1);
while (_local4 > -1) {
_local5 = _local3[_local4];
if (((_arg2) && (!(_local5.gc)))){
_local5.complete(false);
};
_local5.clear();
_local4--;
};
delete masterList[_arg1];
};
}
public static function updateAll(_arg1:Event=null):void{
var _local4:Array;
var _local5:int;
var _local6:TweenLite;
var _local2:uint = (currentTime = getTimer());
var _local3:Dictionary = masterList;
for each (_local4 in _local3) {
_local5 = (_local4.length - 1);
while (_local5 > -1) {
_local6 = _local4[_local5];
if (_local6 == null){
} else {
if (_local6.active){
_local6.render(_local2);
} else {
if (_local6.gc){
_local4.splice(_local5, 1);
} else {
if (_local2 >= _local6.startTime){
_local6.activate();
_local6.render(_local2);
};
};
};
};
_local5--;
};
};
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{
return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0}));
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
_arg3.runBackwards = true;
return (new TweenLite(_arg1, _arg2, _arg3));
}
public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
_arg1 = (_arg1 / _arg4);
return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2));
}
public static function tintProxy(_arg1:Object, _arg2:Number=0):void{
var _local3:Number = _arg1.target.progress;
var _local4:Number = (1 - _local3);
var _local5:Object = _arg1.info.color;
var _local6:Object = _arg1.info.endColor;
_arg1.info.target.transform.colorTransform = new ColorTransform(((_local5.redMultiplier * _local4) + (_local6.redMultiplier * _local3)), ((_local5.greenMultiplier * _local4) + (_local6.greenMultiplier * _local3)), ((_local5.blueMultiplier * _local4) + (_local6.blueMultiplier * _local3)), ((_local5.alphaMultiplier * _local4) + (_local6.alphaMultiplier * _local3)), ((_local5.redOffset * _local4) + (_local6.redOffset * _local3)), ((_local5.greenOffset * _local4) + (_local6.greenOffset * _local3)), ((_local5.blueOffset * _local4) + (_local6.blueOffset * _local3)), ((_local5.alphaOffset * _local4) + (_local6.alphaOffset * _local3)));
}
public static function volumeProxy(_arg1:Object, _arg2:Number=0):void{
_arg1.info.target.soundTransform = _arg1.target;
}
protected static function killGarbage(_arg1:TimerEvent):void{
var _local3:Object;
var _local4:Array;
var _local2:Dictionary = masterList;
for (_local3 in _local2) {
if (_local2[_local3].length == 0){
delete _local2[_local3];
};
};
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{
return (new TweenLite(_arg1, _arg2, _arg3));
}
}
}//package gs
Section 273
//TweenMax (gs.TweenMax)
package gs {
import flash.events.*;
import flash.utils.*;
import gs.events.*;
public class TweenMax extends TweenFilterLite implements IEventDispatcher {
protected var _dispatcher:EventDispatcher;
public var pauseTime:Number;
protected var _callbacks:Object;
protected var _repeatCount:Number;
protected static const _RAD2DEG:Number = 57.2957795130823;
public static var removeTween:Function = TweenLite.removeTween;
private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init();
;
protected static var _pausedTweens:Dictionary = new Dictionary(false);
public static var setGlobalTimeScale:Function = TweenFilterLite.setGlobalTimeScale;
public static var killTweensOf:Function = TweenLite.killTweensOf;
public static var version:Number = 3.51;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){
super(_arg1, _arg2, _arg3);
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
initDispatcher();
if ((((_arg2 == 0)) && ((this.delay == 0)))){
onUpdateDispatcher();
onCompleteDispatcher();
};
};
_repeatCount = 0;
if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){
this.vars.persist = true;
};
if (TweenFilterLite.version < 9.29){
trace("TweenMax error! Please update your TweenFilterLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com.");
};
}
public function dispatchEvent(_arg1:Event):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.dispatchEvent(_arg1));
}
public function get reversed():Boolean{
return ((this.ease == reverseEase));
}
public function set reversed(_arg1:Boolean):void{
if (this.reversed != _arg1){
reverse();
};
}
override public function set enabled(_arg1:Boolean):void{
if (!_arg1){
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
super.enabled = _arg1;
}
protected function onStartDispatcher(... _args):void{
if (_callbacks.onStart != null){
_callbacks.onStart.apply(null, this.vars.onStartParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START));
}
public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{
var _local5:Object;
var _local6:int;
var _local7:Object;
var _local8:Array;
var _local9:Array;
var _local4:Number = this.progress;
if (((!((this.vars[_arg1] == undefined))) && (this.initted))){
if (((!(_arg3)) && (!((_local4 == 0))))){
_local6 = (this.tweens.length - 1);
while (_local6 > -1) {
if (this.tweens[_local6][4] == _arg1){
this.tweens[_local6][0][this.tweens[_local6][1]] = this.tweens[_local6][2];
};
_local6--;
};
};
_local5 = {};
_local5[_arg1] = 1;
killVars(_local5);
};
this.vars[_arg1] = _arg2;
if (this.initted){
_local7 = this.vars;
_local8 = this.tweens;
_local9 = _subTweens;
this.vars = {};
this.tweens = [];
_subTweens = [];
this.vars[_arg1] = _arg2;
initTweenVals();
if (((!((this.ease == reverseEase))) && ((_local7.ease is Function)))){
this.ease = _local7.ease;
};
if (((_arg3) && (!((_local4 == 0))))){
adjustStartValues();
};
this.vars = _local7;
this.tweens = _local8.concat(this.tweens);
_subTweens = _local9.concat(_subTweens);
};
}
override public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{
var _local3:String;
var _local4:int;
var _local5:Object;
var _local6:Object;
var _local7:Array;
var _local9:Number;
_arg2 = (_arg2 + " hexColors bezier bezierThrough shortRotation orientToBezier quaternions onCompleteAll onCompleteAllParams yoyo loop onCompleteListener onUpdateListener onStartListener ");
if (((!(_arg1)) && (TweenLite.overwriteManager.enabled))){
TweenLite.overwriteManager.manageOverwrites(this, masterList[this.target]);
};
var _local8:Function = bezierProxy;
if (this.vars.orientToBezier == true){
this.vars.orientToBezier = [["x", "y", "rotation", 0]];
_local8 = bezierProxy2;
} else {
if ((this.vars.orientToBezier is Array)){
_local8 = bezierProxy2;
};
};
if (((!((this.vars.bezier == undefined))) && ((this.vars.bezier is Array)))){
_local6 = {};
_local7 = this.vars.bezier;
_local4 = 0;
while (_local4 < _local7.length) {
for (_local3 in _local7[_local4]) {
if (_local6[_local3] == undefined){
_local6[_local3] = [this.target[_local3]];
};
if (typeof(_local7[_local4][_local3]) == "number"){
_local6[_local3].push(_local7[_local4][_local3]);
} else {
_local6[_local3].push((this.target[_local3] + Number(_local7[_local4][_local3])));
};
};
_local4++;
};
for (_local3 in _local6) {
if (typeof(this.vars[_local3]) == "number"){
_local6[_local3].push(this.vars[_local3]);
} else {
_local6[_local3].push((this.target[_local3] + Number(this.vars[_local3])));
};
delete this.vars[_local3];
};
addSubTween("bezier", _local8, {t:0}, {t:1}, {props:parseBeziers(_local6, false), target:this.target, orientToBezier:this.vars.orientToBezier});
};
if (((!((this.vars.bezierThrough == undefined))) && ((this.vars.bezierThrough is Array)))){
_local6 = {};
_local7 = this.vars.bezierThrough;
_local4 = 0;
while (_local4 < _local7.length) {
for (_local3 in _local7[_local4]) {
if (_local6[_local3] == undefined){
_local6[_local3] = [this.target[_local3]];
};
if (typeof(_local7[_local4][_local3]) == "number"){
_local6[_local3].push(_local7[_local4][_local3]);
} else {
_local6[_local3].push((this.target[_local3] + Number(_local7[_local4][_local3])));
};
};
_local4++;
};
for (_local3 in _local6) {
if (typeof(this.vars[_local3]) == "number"){
_local6[_local3].push(this.vars[_local3]);
} else {
_local6[_local3].push((this.target[_local3] + Number(this.vars[_local3])));
};
delete this.vars[_local3];
};
addSubTween("bezierThrough", _local8, {t:0}, {t:1}, {props:parseBeziers(_local6, true), target:this.target, orientToBezier:this.vars.orientToBezier});
};
if (!isNaN(this.vars.shortRotation)){
_local9 = ((this.vars.shortRotation - this.target.rotation) % 360);
if (((this.vars.shortRotation - this.target.rotation) % 360) != (_local9 % 180)){
_local9 = ((_local9)<0) ? (_local9 + 360) : (_local9 - 360);
};
this.tweens[this.tweens.length] = [this.target, "rotation", this.target.rotation, _local9, "rotation"];
};
if (((!((this.vars.hexColors == undefined))) && ((typeof(this.vars.hexColors) == "object")))){
for (_local3 in this.vars.hexColors) {
addSubTween("hexColors", hexColorsProxy, {r:(this.target[_local3] >> 16), g:((this.target[_local3] >> 8) & 0xFF), b:(this.target[_local3] & 0xFF)}, {r:(this.vars.hexColors[_local3] >> 16), g:((this.vars.hexColors[_local3] >> 8) & 0xFF), b:(this.vars.hexColors[_local3] & 0xFF)}, {prop:_local3, target:this.target});
};
};
super.initTweenVals(true, _arg2);
}
public function restart(_arg1:Boolean=false):void{
if (_arg1){
this.initTime = currentTime;
this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale)));
} else {
this.startTime = currentTime;
this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale)));
};
_repeatCount = 0;
if (this.target != this.vars.onComplete){
render(this.startTime);
};
this.pauseTime = NaN;
_pausedTweens[this] = null;
delete _pausedTweens[this];
this.enabled = true;
}
public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (_dispatcher != null){
_dispatcher.removeEventListener(_arg1, _arg2, _arg3);
};
}
public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
if (_dispatcher == null){
initDispatcher();
};
if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
_dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
protected function adjustStartValues():void{
var _local2:Number;
var _local3:Number;
var _local4:Object;
var _local5:int;
var _local1:Number = this.progress;
if (_local1 != 0){
_local2 = (1 / (1 - this.ease((_local1 * this.duration), 0, 1, this.duration)));
_local5 = (this.tweens.length - 1);
while (_local5 > -1) {
_local4 = this.tweens[_local5];
_local3 = (_local4[2] + _local4[3]);
_local4[3] = ((_local3 - _local4[0][_local4[1]]) * _local2);
_local4[2] = (_local3 - _local4[3]);
_local5--;
};
};
}
protected function onUpdateDispatcher(... _args):void{
if (_callbacks.onUpdate != null){
_callbacks.onUpdate.apply(null, this.vars.onUpdateParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE));
}
protected function initDispatcher():void{
var _local1:Object;
var _local2:String;
if (_dispatcher == null){
_dispatcher = new EventDispatcher(this);
_callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete};
_local1 = {};
for (_local2 in this.vars) {
_local1[_local2] = this.vars[_local2];
};
this.vars = _local1;
this.vars.onStart = onStartDispatcher;
this.vars.onComplete = onCompleteDispatcher;
if ((this.vars.onStartListener is Function)){
_dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true);
};
if ((this.vars.onUpdateListener is Function)){
_dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true);
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
if ((this.vars.onCompleteListener is Function)){
_dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true);
};
};
}
public function willTrigger(_arg1:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.willTrigger(_arg1));
}
public function set progress(_arg1:Number):void{
this.startTime = (currentTime - ((this.duration * _arg1) * 1000));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
if (!this.started){
activate();
};
render(currentTime);
if (!isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.active = false;
};
}
public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
var _local3:Number = this.progress;
if (((_arg1) && ((_local3 > 0)))){
this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
};
if (_arg2 != false){
if (_local3 < 1){
resume();
} else {
restart();
};
};
}
public function set paused(_arg1:Boolean):void{
if (_arg1){
pause();
} else {
resume();
};
}
public function resume():void{
this.enabled = true;
if (!isNaN(this.pauseTime)){
this.initTime = (this.initTime + (currentTime - this.pauseTime));
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
this.pauseTime = NaN;
if (((!(this.started)) && ((currentTime >= this.startTime)))){
activate();
} else {
this.active = this.started;
};
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
}
public function get paused():Boolean{
return (isNaN(this.pauseTime));
}
public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{
return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4));
}
public function killProperties(_arg1:Array):void{
var _local3:int;
var _local2:Object = {};
_local3 = (_arg1.length - 1);
while (_local3 > -1) {
if (this.vars[_arg1[_local3]] != null){
_local2[_arg1[_local3]] = 1;
};
_local3--;
};
killVars(_local2);
}
public function hasEventListener(_arg1:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.hasEventListener(_arg1));
}
public function pause():void{
if (isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.enabled = false;
_pausedTweens[this] = this;
};
}
override public function complete(_arg1:Boolean=false):void{
if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){
_repeatCount++;
if (!isNaN(this.vars.yoyo)){
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
};
this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime;
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
} else {
if (this.vars.persist == true){
super.complete(_arg1);
pause();
return;
};
};
super.complete(_arg1);
}
public function invalidate(_arg1:Boolean=true):void{
var _local2:Number;
if (this.initted){
_local2 = this.progress;
if (((!(_arg1)) && (!((_local2 == 0))))){
this.progress = 0;
};
this.tweens = [];
_subTweens = [];
_specialVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars;
initTweenVals();
_timeScale = ((this.vars.timeScale) || (1));
this.combinedTimeScale = (_timeScale * _globalTimeScale);
this.delay = ((this.vars.delay) || (0));
if (isNaN(this.pauseTime)){
this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale));
};
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
if (_dispatcher != null){
this.vars.onStart = _callbacks.onStart;
this.vars.onUpdate = _callbacks.onUpdate;
this.vars.onComplete = _callbacks.onComplete;
_dispatcher = null;
};
initDispatcher();
};
if (_local2 != 0){
if (_arg1){
adjustStartValues();
} else {
this.progress = _local2;
};
};
};
}
public function get progress():Number{
var _local1:Number = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime;
var _local2:Number = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale);
if (_local2 > 1){
return (1);
};
if (_local2 < 0){
return (0);
};
return (_local2);
}
protected function onCompleteDispatcher(... _args):void{
if (_callbacks.onComplete != null){
_callbacks.onComplete.apply(null, this.vars.onCompleteParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE));
}
public static function sequence(_arg1:Object, _arg2:Array):Array{
var _local3:uint;
while (_local3 < _arg2.length) {
_arg2[_local3].target = _arg1;
_local3++;
};
return (multiSequence(_arg2));
}
public static function bezierProxy(_arg1:Object, _arg2:Number=0):void{
var _local6:int;
var _local7:String;
var _local8:Object;
var _local9:Number;
var _local10:uint;
var _local3:Number = _arg1.target.t;
var _local4:Object = _arg1.info.props;
var _local5:Object = _arg1.info.target;
if (_local3 == 1){
for (_local7 in _local4) {
_local6 = (_local4[_local7].length - 1);
_local5[_local7] = _local4[_local7][_local6].e;
};
} else {
for (_local7 in _local4) {
_local10 = _local4[_local7].length;
if (_local3 < 0){
_local6 = 0;
} else {
if (_local3 >= 1){
_local6 = (_local10 - 1);
} else {
_local6 = int((_local10 * _local3));
};
};
_local9 = ((_local3 - (_local6 * (1 / _local10))) * _local10);
_local8 = _local4[_local7][_local6];
_local5[_local7] = (_local8.s + (_local9 * (((2 * (1 - _local9)) * (_local8.cp - _local8.s)) + (_local9 * (_local8.e - _local8.s)))));
};
};
}
public static function hexColorsProxy(_arg1:Object, _arg2:Number=0):void{
_arg1.info.target[_arg1.info.prop] = uint((((_arg1.target.r << 16) | (_arg1.target.g << 8)) | _arg1.target.b));
}
public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{
var _local3:int;
var _local4:Array;
var _local5:Object;
var _local6:String;
var _local7:Object = {};
if (_arg2){
for (_local6 in _arg1) {
_local4 = _arg1[_local6];
_local5 = [];
_local7[_local6] = _local5;
if (_local4.length > 2){
_local5[_local5.length] = {s:_local4[0], cp:(_local4[1] - ((_local4[2] - _local4[0]) / 4)), e:_local4[1]};
_local3 = 1;
while (_local3 < (_local4.length - 1)) {
_local5[_local5.length] = {s:_local4[_local3], cp:(_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)].cp)), e:_local4[(_local3 + 1)]};
_local3++;
};
} else {
_local5[_local5.length] = {s:_local4[0], cp:((_local4[0] + _local4[1]) / 2), e:_local4[1]};
};
};
} else {
for (_local6 in _arg1) {
_local4 = _arg1[_local6];
_local5 = [];
_local7[_local6] = _local5;
if (_local4.length > 3){
_local5[_local5.length] = {s:_local4[0], cp:_local4[1], e:((_local4[1] + _local4[2]) / 2)};
_local3 = 2;
while (_local3 < (_local4.length - 2)) {
_local5[_local5.length] = {s:_local5[(_local3 - 2)].e, cp:_local4[_local3], e:((_local4[_local3] + _local4[(_local3 + 1)]) / 2)};
_local3++;
};
_local5[_local5.length] = {s:_local5[(_local5.length - 1)].e, cp:_local4[(_local4.length - 2)], e:_local4[(_local4.length - 1)]};
} else {
if (_local4.length == 3){
_local5[_local5.length] = {s:_local4[0], cp:_local4[1], e:_local4[2]};
} else {
if (_local4.length == 2){
_local5[_local5.length] = {s:_local4[0], cp:((_local4[0] + _local4[1]) / 2), e:_local4[1]};
};
};
};
};
};
return (_local7);
}
public static function bezierProxy2(_arg1:Object, _arg2:Number=0):void{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Array;
var _local10:Number;
bezierProxy(_arg1, _arg2);
var _local3:Object = {};
var _local4:Object = _arg1.info.target;
_arg1.info.target = _local3;
_arg1.target.t = (_arg1.target.t + 0.01);
bezierProxy(_arg1);
var _local5:Array = _arg1.info.orientToBezier;
var _local11:uint;
while (_local11 < _local5.length) {
_local9 = _local5[_local11];
_local10 = ((_local9[3]) || (0));
_local7 = (_local3[_local9[0]] - _local4[_local9[0]]);
_local8 = (_local3[_local9[1]] - _local4[_local9[1]]);
_local4[_local9[2]] = ((Math.atan2(_local8, _local7) * _RAD2DEG) + _local10);
_local11++;
};
_arg1.info.target = _local4;
_arg1.target.t = (_arg1.target.t - 0.01);
}
public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{
changePause(true, _arg1, _arg2);
}
public static function set globalTimeScale(_arg1:Number):void{
setGlobalTimeScale(_arg1);
}
public static function get globalTimeScale():Number{
return (_globalTimeScale);
}
public static function killAllDelayedCalls(_arg1:Boolean=false):void{
killAll(_arg1, false, true);
}
public static function multiSequence(_arg1:Array):Array{
var _local6:Object;
var _local7:Object;
var _local8:Number;
var _local9:Number;
var _local10:uint;
var _local11:Object;
var _local12:String;
trace("WARNING: TweenMax.multiSequence() and TweenMax.sequence() have been deprecated in favor of the much more powerful and flexible TweenGroup class. See http://blog.greensock.com/tweengroup/ for more details. Future versions of TweenMax may not include sequence() and multiSequence() (to conserve file size).");
var _local2:Dictionary = new Dictionary();
var _local3:Array = [];
var _local4:int = TweenLite.overwriteManager.mode;
var _local5:Number = 0;
_local10 = 0;
while (_local10 < _arg1.length) {
_local6 = _arg1[_local10];
_local9 = ((_local6.time) || (0));
_local11 = {};
for (_local12 in _local6) {
_local11[_local12] = _local6[_local12];
};
delete _local11.time;
_local8 = ((_local11.delay) || (0));
_local11.delay = (_local5 + _local8);
_local7 = _local11.target;
delete _local11.target;
if (_local4 == 1){
if (_local2[_local7] == undefined){
_local2[_local7] = _local11;
} else {
_local11.overwrite = 2;
};
};
_local3[_local3.length] = new TweenMax(_local7, _local9, _local11);
_local5 = (_local5 + (_local9 + _local8));
_local10++;
};
return (_local3);
}
public static function getTweensOf(_arg1:Object):Array{
var _local4:TweenLite;
var _local5:int;
var _local2:Array = masterList[_arg1];
var _local3:Array = [];
if (_local2 != null){
_local5 = (_local2.length - 1);
while (_local5 > -1) {
if (!_local2[_local5].gc){
_local3[_local3.length] = _local2[_local5];
};
_local5--;
};
};
for each (_local4 in _pausedTweens) {
if (_local4.target == _arg1){
_local3[_local3.length] = _local4;
};
};
return (_local3);
}
public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{
return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0}));
}
public static function isTweening(_arg1:Object):Boolean{
var _local2:Array = getTweensOf(_arg1);
var _local3:int = (_local2.length - 1);
while (_local3 > -1) {
if (((_local2[_local3].active) && (!(_local2[_local3].gc)))){
return (true);
};
_local3--;
};
return (false);
}
public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{
var _local5:Boolean;
var _local6:int;
var _local4:Array = getAllTweens();
_local6 = (_local4.length - 1);
while (_local6 > -1) {
_local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete);
if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){
if (_arg1){
_local4[_local6].complete(false);
_local4[_local6].clear();
} else {
TweenLite.removeTween(_local4[_local6], true);
};
};
_local6--;
};
}
public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{
var _local5:Boolean;
var _local4:Array = getAllTweens();
var _local6:int = (_local4.length - 1);
while (_local6 > -1) {
_local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete);
if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){
_local4[_local6].paused = _arg1;
};
_local6--;
};
}
public static function callbackProxy(_arg1:Array, _arg2:Array=null):void{
var _local3:uint;
while (_local3 < _arg1.length) {
if (_arg1[_local3] != undefined){
_arg1[_local3].apply(null, _arg2[_local3]);
};
_local3++;
};
}
public static function allFrom(_arg1:Array, _arg2:Number, _arg3:Object):Array{
_arg3.runBackwards = true;
return (allTo(_arg1, _arg2, _arg3));
}
public static function killAllTweens(_arg1:Boolean=false):void{
killAll(_arg1, true, false);
}
public static function getAllTweens():Array{
var _local3:Array;
var _local4:int;
var _local5:TweenLite;
var _local1:Dictionary = masterList;
var _local2:Array = [];
for each (_local3 in _local1) {
_local4 = (_local3.length - 1);
while (_local4 > -1) {
if (!_local3[_local4].gc){
_local2[_local2.length] = _local3[_local4];
};
_local4--;
};
};
for each (_local5 in _pausedTweens) {
_local2[_local2.length] = _local5;
};
return (_local2);
}
public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{
changePause(false, _arg1, _arg2);
}
public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
_arg3.runBackwards = true;
return (new TweenMax(_arg1, _arg2, _arg3));
}
public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{
return (new TweenMax(_arg1, _arg2, _arg3));
}
public static function allTo(_arg1:Array, _arg2:Number, _arg3:Object):Array{
var _local4:int;
var _local5:Object;
var _local6:String;
var _local7:Number;
var _local8:Object;
trace("WARNING: TweenMax.allTo() and TweenMax.allFrom() have been deprecated in favor of the much more powerful and flexible TweenGroup class. See http://blog.greensock.com/tweengroup/ for more details. Future versions of TweenMax may not include allTo() and allFrom() (to conserve file size).");
if (_arg1.length == 0){
return ([]);
};
var _local9:Array = [];
var _local10:Number = ((_arg3.delayIncrement) || (0));
delete _arg3.delayIncrement;
if (_arg3.onCompleteAll == undefined){
_local8 = _arg3;
} else {
_local8 = {};
for (_local6 in _arg3) {
_local8[_local6] = _arg3[_local6];
};
_local8.onCompleteParams = [[_arg3.onComplete, _arg3.onCompleteAll], [_arg3.onCompleteParams, _arg3.onCompleteAllParams]];
_local8.onComplete = TweenMax.callbackProxy;
delete _arg3.onCompleteAll;
};
delete _arg3.onCompleteAllParams;
if (_local10 == 0){
_local4 = 0;
while (_local4 < (_arg1.length - 1)) {
_local5 = {};
for (_local6 in _arg3) {
_local5[_local6] = _arg3[_local6];
};
_local9[_local9.length] = new TweenMax(_arg1[_local4], _arg2, _local5);
_local4++;
};
} else {
_local7 = ((_arg3.delay) || (0));
_local4 = 0;
while (_local4 < (_arg1.length - 1)) {
_local5 = {};
for (_local6 in _arg3) {
_local5[_local6] = _arg3[_local6];
};
_local5.delay = (_local7 + (_local4 * _local10));
_local9[_local9.length] = new TweenMax(_arg1[_local4], _arg2, _local5);
_local4++;
};
_local8.delay = (_local7 + ((_arg1.length - 1) * _local10));
};
_local9[_local9.length] = new TweenMax(_arg1[(_arg1.length - 1)], _arg2, _local8);
if ((_arg3.onCompleteAllListener is Function)){
_local9[(_local9.length - 1)].addEventListener(TweenEvent.COMPLETE, _arg3.onCompleteAllListener);
};
return (_local9);
}
}
}//package gs
Section 274
//FlashVars (net.FlashVars)
package net {
import flash.display.*;
public class FlashVars {
private static var _data:Object;
public static function getVariable(_arg1:String){
return (_data[_arg1]);
}
public static function initializeVariables(_arg1:DisplayObject):void{
_data = LoaderInfo(_arg1.loaderInfo).parameters;
}
public static function get data():Object{
return (_data);
}
}
}//package net
Section 275
//User (net.User)
package net {
import flash.display.*;
import flash.utils.*;
import game.medals.*;
import flash.net.*;
import com.electrotank.util.*;
public class User {
private var m_levelsUnlocked:Array;
private var _userID:String;
public var userEmail:String;// = null
private var m_hostName:String;// = "MRDEscape"
private var _enableLogin:Boolean;
private var m_so:SharedObject;
private var _countryID:String;
private var _username:String;
public var userName:String;// = null
private var m_medalsUnlocked:Array;
private var m_bestScore:int;
private static var _instance:User;
public function User(_arg1:SingletonEnforcer){
m_so = SharedObject.getLocal(m_hostName);
if (_arg1 == null){
throw (new Error("User must be implemented as a Singleton"));
};
}
public function get loggedIn():Boolean{
if (userID != null){
return ((userID.length > 0));
};
return (false);
}
public function createUser(_arg1:String, _arg2:String, _arg3:String):void{
_userID = _arg1;
_username = _arg2;
_countryID = _arg3;
if ((((_countryID == null)) || ((_countryID.length == 0)))){
_countryID = "1";
};
}
public function createFlashVarsUser(_arg1:DisplayObject, _arg2:Boolean):void{
var _local3:Object = LoaderInfo(_arg1.loaderInfo).parameters;
_enableLogin = _arg2;
if (_enableLogin == false){
createUser("0", "test", "1");
} else {
createUser(_local3.userID, _local3.username, _local3.countryID);
};
}
public function saveLevels():void{
trace("Saving Levels ", m_levelsUnlocked);
m_so.data.level = m_levelsUnlocked;
m_so.flush();
}
public function loadLevels():Array{
if (m_so.data.level == null){
m_levelsUnlocked = [false, false, false, false, false, false, false, false, false, false];
m_levelsUnlocked[0] = true;
} else {
m_levelsUnlocked = m_so.data.level;
};
return (m_levelsUnlocked);
}
public function loadScore():int{
if (m_so.data.score == null){
return (0);
};
return (int(m_so.data.score));
}
public function saveScore():void{
if (m_so.data.score == null){
m_so.data.score = MemoryCrypto.getValue("score");
} else {
if (int(MemoryCrypto.getValue("score")) > int(m_so.data.score)){
m_so.data.score = MemoryCrypto.getValue("score");
};
};
m_so.flush();
}
public function get username():String{
return (_username);
}
public function unlockLevel(_arg1:int):void{
if (_arg1 < m_levelsUnlocked.length){
m_levelsUnlocked[_arg1] = true;
saveLevels();
};
}
public function get userID():String{
return (_userID);
}
public function get enableLogin():Boolean{
return (_enableLogin);
}
public function get countryID():String{
return (_countryID);
}
public function saveMedals(_arg1:Array):void{
m_so.data.medal = _arg1;
m_so.flush();
}
public function loadMedals():void{
if (m_so.data.medal == null){
m_medalsUnlocked = [false, false, false, false, false, false, false, false, false, false];
} else {
m_medalsUnlocked = m_so.data.medal;
};
var _local1:MedalController = new MedalController();
_local1.initMedals(m_medalsUnlocked);
}
public static function getInstance():User{
if (_instance == null){
_instance = new User(new SingletonEnforcer());
};
return (_instance);
}
}
}//package net
class SingletonEnforcer {
private function SingletonEnforcer(){
}
}
Section 276
//Destroyable (org.casalib.core.Destroyable)
package org.casalib.core {
public class Destroyable implements IDestroyable {
protected var _isDestroyed:Boolean;
public function get destroyed():Boolean{
return (this._isDestroyed);
}
public function destroy():void{
this._isDestroyed = true;
}
}
}//package org.casalib.core
Section 277
//IDestroyable (org.casalib.core.IDestroyable)
package org.casalib.core {
public interface IDestroyable {
function get destroyed():Boolean;
function destroy():void;
}
}//package org.casalib.core
Section 278
//CasaBitmap (org.casalib.display.CasaBitmap)
package org.casalib.display {
import flash.display.*;
import org.casalib.events.*;
import org.casalib.core.*;
public class CasaBitmap extends Bitmap implements IRemovableEventDispatcher, IDestroyable {
protected var _isDestroyed:Boolean;
protected var _listenerManager:ListenerManager;
public function CasaBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
this._listenerManager = ListenerManager.getManager(this);
}
public function destroy():void{
this.removeEventListeners();
this._listenerManager.destroy();
this._isDestroyed = true;
if (this.parent != null){
this.parent.removeChild(this);
};
}
override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function removeEventsForListener(_arg1:Function):void{
this._listenerManager.removeEventsForListener(_arg1);
}
public function removeEventListeners():void{
this._listenerManager.removeEventListeners();
}
override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
super.removeEventListener(_arg1, _arg2, _arg3);
this._listenerManager.removeEventListener(_arg1, _arg2, _arg3);
}
public function removeEventsForType(_arg1:String):void{
this._listenerManager.removeEventsForType(_arg1);
}
public function get destroyed():Boolean{
return (this._isDestroyed);
}
}
}//package org.casalib.display
Section 279
//CasaSprite (org.casalib.display.CasaSprite)
package org.casalib.display {
import flash.display.*;
import org.casalib.events.*;
import org.casalib.core.*;
public class CasaSprite extends Sprite implements IRemovableEventDispatcher, IDestroyable {
protected var _isDestroyed:Boolean;
protected var _listenerManager:ListenerManager;
public function CasaSprite(){
this._listenerManager = ListenerManager.getManager(this);
}
public function destroy():void{
this.removeEventListeners();
this._listenerManager.destroy();
this._isDestroyed = true;
if (this.parent != null){
this.parent.removeChild(this);
};
}
override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
public function removeEventsForListener(_arg1:Function):void{
this._listenerManager.removeEventsForListener(_arg1);
}
public function removeEventListeners():void{
this._listenerManager.removeEventListeners();
}
override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
super.removeEventListener(_arg1, _arg2, _arg3);
this._listenerManager.removeEventListener(_arg1, _arg2, _arg3);
}
public function removeEventsForType(_arg1:String):void{
this._listenerManager.removeEventsForType(_arg1);
}
public function get destroyed():Boolean{
return (this._isDestroyed);
}
}
}//package org.casalib.display
Section 280
//ArguementTypeError (org.casalib.errors.ArguementTypeError)
package org.casalib.errors {
public class ArguementTypeError extends ArgumentError {
public function ArguementTypeError(_arg1:String=null){
super(((_arg1)==null) ? "You passed an argument with an incorrect type to this method." : (("The argument type you passed for parameter \"" + _arg1) + "\" is not allowed by this method."));
}
}
}//package org.casalib.errors
Section 281
//IRemovableEventDispatcher (org.casalib.events.IRemovableEventDispatcher)
package org.casalib.events {
import flash.events.*;
public interface IRemovableEventDispatcher extends IEventDispatcher {
function removeEventsForListener(_arg1:Function):void;
function removeEventListeners():void;
function removeEventsForType(_arg1:String):void;
}
}//package org.casalib.events
Section 282
//ListenerManager (org.casalib.events.ListenerManager)
package org.casalib.events {
import flash.events.*;
import flash.utils.*;
import org.casalib.core.*;
public class ListenerManager extends Destroyable implements IRemovableEventDispatcher {
protected var _blockRequest:Boolean;
protected var _eventDispatcher:IEventDispatcher;
protected var _events:Array;
protected static var _proxyMap:Dictionary;
public function ListenerManager(_arg1:EventInfo, _arg2:IEventDispatcher){
this._eventDispatcher = _arg2;
this._events = new Array();
}
public function dispatchEvent(_arg1:Event):Boolean{
return (this._eventDispatcher.dispatchEvent(_arg1));
}
public function willTrigger(_arg1:String):Boolean{
return (this._eventDispatcher.willTrigger(_arg1));
}
public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (this._blockRequest){
return;
};
var _local4:EventInfo = new EventInfo(_arg1, _arg2, _arg3);
var _local5:int = this._events.length;
while (_local5--) {
if (this._events[_local5].equals(_local4)){
this._events.splice(_local5, 1);
};
};
}
public function removeEventListeners():void{
var _local2:EventInfo;
this._blockRequest = true;
var _local1:int = this._events.length;
while (_local1--) {
_local2 = this._events.splice(_local1, 1)[0];
this._eventDispatcher.removeEventListener(_local2.type, _local2.listener, _local2.useCapture);
};
this._blockRequest = false;
}
public function removeEventsForListener(_arg1:Function):void{
var _local3:EventInfo;
this._blockRequest = true;
var _local2:int = this._events.length;
while (_local2--) {
_local3 = this._events[_local2];
if (_local3.listener == _arg1){
this._events.splice(_local2, 1);
this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture);
};
};
this._blockRequest = false;
}
public function hasEventListener(_arg1:String):Boolean{
return (this._eventDispatcher.hasEventListener(_arg1));
}
override public function destroy():void{
this.removeEventListeners();
delete ListenerManager._proxyMap[this._eventDispatcher];
this._eventDispatcher = null;
super.destroy();
}
public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
var _local6:EventInfo = new EventInfo(_arg1, _arg2, _arg3);
var _local7:int = this._events.length;
while (_local7--) {
if (this._events[_local7].equals(_local6)){
return;
};
};
this._events.push(_local6);
}
public function removeEventsForType(_arg1:String):void{
var _local3:EventInfo;
this._blockRequest = true;
var _local2:int = this._events.length;
while (_local2--) {
_local3 = this._events[_local2];
if (_local3.type == _arg1){
this._events.splice(_local2, 1);
this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture);
};
};
this._blockRequest = false;
}
public static function getManager(_arg1:IEventDispatcher):ListenerManager{
if (ListenerManager._proxyMap == null){
ListenerManager._proxyMap = new Dictionary();
};
if (ListenerManager._proxyMap[_arg1] == null){
ListenerManager._proxyMap[_arg1] = new ListenerManager(new EventInfo(null, null, false), _arg1);
};
return (ListenerManager._proxyMap[_arg1]);
}
}
}//package org.casalib.events
class EventInfo {
public var listener:Function;
public var type:String;
public var useCapture:Boolean;
private function EventInfo(_arg1:String, _arg2:Function, _arg3:Boolean){
this.type = _arg1;
this.listener = _arg2;
this.useCapture = _arg3;
}
public function equals(_arg1:EventInfo):Boolean{
return ((((((this.type == _arg1.type)) && ((this.listener == _arg1.listener)))) && ((this.useCapture == _arg1.useCapture))));
}
}
Section 283
//Percent (org.casalib.math.Percent)
package org.casalib.math {
public class Percent {
protected var _percent:Number;
public function Percent(_arg1:Number=0, _arg2:Boolean=true){
if (_arg2){
this.decimalPercentage = _arg1;
} else {
this.percentage = _arg1;
};
}
public function set percentage(_arg1:Number):void{
this._percent = (_arg1 * 0.01);
}
public function clone():Percent{
return (new Percent(this.decimalPercentage));
}
public function get percentage():Number{
return ((100 * this._percent));
}
public function get decimalPercentage():Number{
return (this._percent);
}
public function set decimalPercentage(_arg1:Number):void{
this._percent = _arg1;
}
public function toString():String{
return (this.decimalPercentage.toString());
}
public function equals(_arg1:Percent):Boolean{
return ((this.decimalPercentage == _arg1.decimalPercentage));
}
}
}//package org.casalib.math
Section 284
//ArrayUtil (org.casalib.util.ArrayUtil)
package org.casalib.util {
public class ArrayUtil {
protected static function _sortRandom(_arg1, _arg2):int{
return ((NumberUtil.randomIntegerWithinRange(0, 1)) ? 1 : -1);
}
public static function containsAll(_arg1:Array, _arg2:Array):Boolean{
var _local3:uint = _arg2.length;
while (_local3--) {
if (_arg1.indexOf(_arg2[_local3]) == -1){
return (false);
};
};
return (true);
}
protected static function _removeDuplicatesFilter(_arg1, _arg2:int, _arg3:Array):Boolean{
return (((_arg2)==0) ? true : (_arg3.lastIndexOf(_arg1, (_arg2 - 1)) == -1));
}
public static function equals(_arg1:Array, _arg2:Array):Boolean{
var _local3:uint = _arg1.length;
if (_local3 != _arg2.length){
return (false);
};
while (_local3--) {
if (_arg1[_local3] != _arg2[_local3]){
return (false);
};
};
return (true);
}
public static function getHighestValue(_arg1:Array):Number{
return (_arg1[_arg1.sort((16 | 8))[(_arg1.length - 1)]]);
}
public static function sum(_arg1:Array):Number{
var _local2:Number = 0;
var _local3:uint = _arg1.length;
while (_local3--) {
_local2 = (_local2 + _arg1[_local3]);
};
return (_local2);
}
public static function removeDuplicates(_arg1:Array):Array{
return (_arg1.filter(_slot1._removeDuplicatesFilter));
}
public static function containsAny(_arg1:Array, _arg2:Array):Boolean{
var _local3:uint = _arg2.length;
while (_local3--) {
if (_arg1.indexOf(_arg2[_local3]) != -1){
return (true);
};
};
return (false);
}
public static function getIndexOfDifference(_arg1:Array, _arg2:Array, _arg3:uint=0):int{
var _local4:int = (_arg3 - 1);
while (++_local4 < _arg1.length) {
if (_arg1[_local4] != _arg2[_local4]){
return (_local4);
};
};
return (-1);
}
public static function randomize(_arg1:Array):Array{
var _local2:Array = new Array();
var _local3:Array = _arg1.sort(_slot1._sortRandom, Array.RETURNINDEXEDARRAY);
var _local4 = -1;
while (++_local4 < _arg1.length) {
_local2.push(_arg1[_local3[_local4]]);
};
return (_local2);
}
public static function addItemsAt(_arg1:Array, _arg2:Array, _arg3:int=2147483647):Boolean{
if (_arg2.length == 0){
return (false);
};
var _local4:Array = _arg2.concat();
_local4.splice(0, 0, _arg3, 0);
_arg1.splice.apply(null, _local4);
return (true);
}
public static function removeItem(_arg1:Array, _arg2):uint{
var _local3:int = _arg1.indexOf(_arg2);
var _local4:uint;
while (_local3 != -1) {
_arg1.splice(_local3, 1);
_local3 = _arg1.indexOf(_arg2, _local3);
_local4++;
};
return (_local4);
}
public static function getLowestValue(_arg1:Array):Number{
return (_arg1[_arg1.sort((16 | 8))[0]]);
}
public static function retainItems(_arg1:Array, _arg2:Array):Boolean{
var _local3:Boolean;
var _local4:uint = _arg1.length;
while (_local4--) {
if (_arg2.indexOf(_arg1[_local4]) == -1){
_arg1.splice(_local4, 1);
_local3 = true;
};
};
return (_local3);
}
public static function removeItems(_arg1:Array, _arg2:Array):Boolean{
var _local3:Boolean;
var _local4:uint = _arg1.length;
while (_local4--) {
if (_arg2.indexOf(_arg1[_local4]) != -1){
_arg1.splice(_local4, 1);
_local3 = true;
};
};
return (_local3);
}
public static function average(_arg1:Array):Number{
if (_arg1.length == 0){
return (0);
};
return ((_slot1.sum(_arg1) / _arg1.length));
}
public static function contains(_arg1:Array, _arg2):uint{
var _local3:int = _arg1.indexOf(_arg2, 0);
var _local4:uint;
while (_local3 != -1) {
_local3 = _arg1.indexOf(_arg2, (_local3 + 1));
_local4++;
};
return (_local4);
}
}
}//package org.casalib.util
Section 285
//FrameUtil (org.casalib.util.FrameUtil)
package org.casalib.util {
import flash.display.*;
import org.casalib.errors.*;
public class FrameUtil {
public static function getFrameNumberForLabel(_arg1:MovieClip, _arg2:String):int{
var _local3:Array = _arg1.currentLabels;
var _local4:int = _local3.length;
while (_local4--) {
if (_local3[_local4].name == _arg2){
return (_local3[_local4].frame);
};
};
return (-1);
}
public static function removeFrameScript(_arg1:MovieClip, _arg2):void{
if ((_arg2 is String)){
_arg2 = FrameUtil.getFrameNumberForLabel(_arg1, _arg2);
} else {
if (!(_arg2 is uint)){
throw (new ArguementTypeError("frame"));
};
};
if ((((((_arg2 == -1)) || ((_arg2 == 0)))) || ((_arg2 > _arg1.totalFrames)))){
return;
};
_arg1.addFrameScript((_arg2 - 1), null);
}
public static function addFrameScript(_arg1:MovieClip, _arg2, _arg3:Function):Boolean{
if ((_arg2 is String)){
_arg2 = FrameUtil.getFrameNumberForLabel(_arg1, _arg2);
} else {
if (!(_arg2 is uint)){
throw (new ArguementTypeError("frame"));
};
};
if ((((((_arg2 == -1)) || ((_arg2 == 0)))) || ((_arg2 > _arg1.totalFrames)))){
return (false);
};
_arg1.addFrameScript((_arg2 - 1), _arg3);
return (true);
}
}
}//package org.casalib.util
Section 286
//NumberUtil (org.casalib.util.NumberUtil)
package org.casalib.util {
import org.casalib.math.*;
public class NumberUtil {
public static function interpolate(_arg1:Percent, _arg2:Number, _arg3:Number):Number{
return ((_arg2 + ((_arg3 - _arg2) * _arg1.decimalPercentage)));
}
public static function isEven(_arg1:Number):Boolean{
return (((_arg1 & 1) == 0));
}
public static function isOdd(_arg1:Number):Boolean{
return (!(_slot1.isEven(_arg1)));
}
public static function constrain(_arg1:Number, _arg2:Number, _arg3:Number):Number{
return (Math.min(Math.max(_arg1, Math.min(_arg2, _arg3)), Math.max(_arg2, _arg3)));
}
public static function roundDecimalToPlace(_arg1:Number, _arg2:uint):Number{
var _local3:Number = Math.pow(10, _arg2);
return ((Math.round((_arg1 * _local3)) / _local3));
}
public static function max(_arg1, _arg2):Number{
if (((((isNaN(_arg1)) && (isNaN(_arg2)))) || ((((_arg1 == null)) && ((_arg2 == null)))))){
return (NaN);
};
if ((((_arg1 == null)) || ((_arg2 == null)))){
return (((_arg2)==null) ? _arg1 : _arg2);
};
if (((isNaN(_arg1)) || (isNaN(_arg2)))){
return ((isNaN(_arg2)) ? _arg1 : _arg2);
};
return (Math.max(_arg1, _arg2));
}
public static function getOrdinalSuffix(_arg1:int):String{
if ((((_arg1 >= 10)) && ((_arg1 <= 20)))){
return ("th");
};
switch ((_arg1 % 10)){
case 0:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
return ("th");
case 3:
return ("rd");
case 2:
return ("nd");
case 1:
return ("st");
default:
return ("");
};
}
public static function normalize(_arg1:Number, _arg2:Number, _arg3:Number):Percent{
return (new Percent(((_arg1 - _arg2) / (_arg3 - _arg2))));
}
public static function loopIndex(_arg1:int, _arg2:uint):uint{
if (_arg1 < 0){
_arg1 = (_arg2 + (_arg1 % _arg2));
};
if (_arg1 >= _arg2){
return ((_arg1 % _arg2));
};
return (_arg1);
}
public static function randomWithinRange(_arg1:Number, _arg2:Number):Number{
return ((_arg1 + (Math.random() * (_arg2 - _arg1))));
}
public static function min(_arg1, _arg2):Number{
if (((((isNaN(_arg1)) && (isNaN(_arg2)))) || ((((_arg1 == null)) && ((_arg2 == null)))))){
return (NaN);
};
if ((((_arg1 == null)) || ((_arg2 == null)))){
return (((_arg2)==null) ? _arg1 : _arg2);
};
if (((isNaN(_arg1)) || (isNaN(_arg2)))){
return ((isNaN(_arg2)) ? _arg1 : _arg2);
};
return (Math.min(_arg1, _arg2));
}
public static function isInteger(_arg1:Number):Boolean{
return (((_arg1 % 1) == 0));
}
public static function isPrime(_arg1:Number):Boolean{
if ((((_arg1 == 1)) || ((_arg1 == 2)))){
return (true);
};
if (_slot1.isEven(_arg1)){
return (false);
};
var _local2:Number = Math.sqrt(_arg1);
var _local3:Number = 3;
while (_local3 <= _local2) {
if ((_arg1 % _local3) == 0){
return (false);
};
_local3++;
};
return (true);
}
public static function randomIntegerWithinRange(_arg1:int, _arg2:int):int{
return (Math.round(_slot1.randomWithinRange(_arg1, _arg2)));
}
public static function format(_arg1:Number, _arg2:uint, _arg3:String=null, _arg4:String=null):String{
var _local7:Array;
var _local8:uint;
var _local9:uint;
var _local10:String;
var _local5:String = _arg1.toString();
var _local6:uint = _local5.length;
if (_arg3 != null){
_local7 = _local5.split("");
_local8 = 3;
_local9 = _local7.length;
while (--_local9 > 0) {
--_local8;
if (_local8 == 0){
_local8 = 3;
_local7.splice(_local9, 0, _arg3);
};
};
_local5 = _local7.join("");
};
if (_arg2 != 0){
if (_local6 < _arg2){
_arg2 = (_arg2 - _local6);
_local10 = ((_arg4)==null) ? "0" : _arg4;
while (_arg2--) {
_local5 = (_local10 + _local5);
};
};
};
return (_local5);
}
public static function addLeadingZero(_arg1:Number):String{
return (((_arg1)<10) ? ("0" + _arg1) : _arg1.toString());
}
public static function map(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{
return (_slot1.interpolate(_slot1.normalize(_arg1, _arg2, _arg3), _arg4, _arg5));
}
public static function createStepsBetween(_arg1:Number, _arg2:Number, _arg3:Number):Array{
_arg3++;
var _local4:uint;
var _local5:Array = new Array();
var _local6:Number = ((_arg2 - _arg1) / _arg3);
while (++_local4 < _arg3) {
_local5.push(((_local4 * _local6) + _arg1));
};
return (_local5);
}
public static function isBetween(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{
return (!((((_arg1 < Math.min(_arg2, _arg3))) || ((_arg1 > Math.max(_arg2, _arg3))))));
}
}
}//package org.casalib.util
Section 287
//ObjectUtil (org.casalib.util.ObjectUtil)
package org.casalib.util {
import flash.utils.*;
public class ObjectUtil {
public static function isNull(_arg1:Object):Boolean{
return ((_arg1 === null));
}
public static function isEmpty(_arg1):Boolean{
var _local2:String;
if (_arg1 == undefined){
return (true);
};
if ((_arg1 is Number)){
return (isNaN(_arg1));
};
if ((((_arg1 is Array)) || ((_arg1 is String)))){
return ((_arg1.length == 0));
};
if ((_arg1 is Object)){
for (_local2 in _arg1) {
return (false);
};
return (true);
};
return (false);
}
public static function isUndefined(_arg1:Object):Boolean{
return ((_arg1 is undefined));
}
public static function getKeys(_arg1:Object):Array{
var _local3:String;
var _local2:Array = new Array();
for (_local3 in _arg1) {
_local2.push(_local3);
};
return (_local2);
}
public static function clone(_arg1:Object):Object{
var _local2:ByteArray = new ByteArray();
_local2.writeObject(_arg1);
_local2.position = 0;
return (_local2.readObject());
}
public static function contains(_arg1:Object, _arg2:Object):Boolean{
var _local3:String;
for (_local3 in _arg1) {
if (_arg1[_local3] == _arg2){
return (true);
};
};
return (false);
}
}
}//package org.casalib.util
Section 288
//StageReference (org.casalib.util.StageReference)
package org.casalib.util {
import flash.display.*;
import flash.utils.*;
public class StageReference {
public static const STAGE_DEFAULT:String = "stageDefault";
protected static var _stageMap:Dictionary;
public static function removeStage(_arg1:String="stageDefault"):Boolean{
if (_slot1._getMap()[_arg1] == null){
return (false);
};
_slot1.setStage(null, _arg1);
return (true);
}
public static function getStageId(_arg1:Stage):String{
var _local3:String;
var _local2:Dictionary = _slot1._getMap();
for (_local3 in _local2) {
if (_local2[_local3] == _arg1){
return (_local3);
};
};
return (null);
}
protected static function _getMap():Dictionary{
if (_slot1._stageMap == null){
_slot1._stageMap = new Dictionary();
};
return (_slot1._stageMap);
}
public static function getStage(_arg1:String="stageDefault"):Stage{
if (_slot1._getMap()[_arg1] == null){
throw (new Error((("Cannot get Stage (\"" + _arg1) + "\") before it has been set.")));
};
return (_slot1._getMap()[_arg1]);
}
public static function getIds():Array{
return (ObjectUtil.getKeys(_slot1._getMap()));
}
public static function setStage(_arg1:Stage, _arg2:String="stageDefault"):void{
_slot1._getMap()[_arg2] = _arg1;
}
}
}//package org.casalib.util
Section 289
//StringUtil (org.casalib.util.StringUtil)
package org.casalib.util {
public class StringUtil {
public static var SMALL_WORDS:Array = new Array("a", "an", "and", "as", "at", "but", "by", "en", "for", "if", "in", "of", "on", "or", "the", "to", "v", "via", "vs");
public static function remove(_arg1:String, _arg2:String):String{
return (StringUtil.replace(_arg1, _arg2, ""));
}
public static function isLowerCase(_arg1:String):Boolean{
var _local2:Array = _arg1.split("");
var _local3:Number = _local2.length;
while (_local3--) {
if (_local2[_local3] != _local2[_local3].toLowerCase()){
return (false);
};
};
return (true);
}
public static function indexOfLowerCase(_arg1:String, _arg2:uint=0):int{
var _local3:Array = _arg1.split("");
var _local4:int = (_arg2 - 1);
while (++_local4 < _local3.length) {
if ((((_local3[_local4] == _local3[_local4].toLowerCase())) && (!((_local3[_local4] == _local3[_local4].toUpperCase()))))){
return (_local4);
};
};
return (-1);
}
public static function trimLeft(_arg1:String, _arg2:String="
"):String{
var _local3:RegExp = new RegExp((("^[" + _arg2) + "]+"), "");
return (_arg1.replace(_local3, ""));
}
public static function replaceAt(_arg1:String, _arg2:int, _arg3:String):String{
var _local4:Array = _arg1.split("");
_local4.splice(_arg2, 1, _arg3);
return (_local4.join(""));
}
public static function getNumbersFromString(_arg1:String):String{
var _local2:RegExp = /[^0-9]/g;
return (_arg1.replace(_local2, ""));
}
public static function isPunctuation(_arg1:String, _arg2:Boolean=true):Boolean{
if (((!((StringUtil.getNumbersFromString(_arg1).length == 0))) || (!((StringUtil.getLettersFromString(_arg1).length == 0))))){
return (false);
};
if (!_arg2){
return ((_arg1.split(" ").length == 1));
};
return (true);
}
public static function getUniqueCharacters(_arg1:String):String{
var _local4:String;
var _local2 = "";
var _local3:uint;
while (_local3 < _arg1.length) {
_local4 = _arg1.charAt(_local3);
if (_local2.indexOf(_local4) == -1){
_local2 = (_local2 + _local4);
};
_local3++;
};
return (_local2);
}
public static function getLettersFromString(_arg1:String):String{
var _local2:RegExp = /[^A-Z^a-z]/g;
return (_arg1.replace(_local2, ""));
}
public static function removeAt(_arg1:String, _arg2:int):String{
return (StringUtil.replaceAt(_arg1, _arg2, ""));
}
public static function trimRight(_arg1:String, _arg2:String="
"):String{
var _local3:RegExp = new RegExp((("[" + _arg2) + "]+$"), "");
return (_arg1.replace(_local3, ""));
}
public static function contains(_arg1:String, _arg2:String):uint{
var _local3:RegExp = new RegExp(_arg2, "g");
return (_arg1.match(_local3).length);
}
protected static function _checkWords(_arg1:String, _arg2:String, _arg3:Boolean=false, _arg4:Boolean=false):String{
var _local7:String;
var _local5:Array = _arg1.split(_arg2);
var _local6:int = _local5.length;
while (_local6--) {
_local7 = _local5[_local6];
_local5[_local6] = StringUtil._checkWord(_local7, _arg3, _arg4);
};
return (_local5.join(_arg2));
}
public static function removeWhitespace(_arg1:String):String{
var _local2:RegExp = new RegExp("[ \n\t\r]", "g");
return (_arg1.replace(_local2, ""));
}
protected static function _isSmallWord(_arg1:String):Boolean{
var _local2:int = StringUtil.SMALL_WORDS.length;
_arg1 = StringUtil.getLettersFromString(_arg1);
while (_local2--) {
if (_arg1.toLowerCase() == StringUtil.SMALL_WORDS[_local2]){
return (true);
};
};
return (false);
}
public static function trim(_arg1:String, _arg2:String="
"):String{
var _local3:RegExp = new RegExp((((("^[" + _arg2) + "]+|[") + _arg2) + "]+$"), "g");
return (_arg1.replace(_local3, ""));
}
protected static function _capitalizeFirstLetter(_arg1:String):String{
var _local2 = -1;
while (++_local2 < _arg1.length) {
if (!StringUtil.isPunctuation(_arg1.charAt(_local2))){
return (StringUtil.replaceAt(_arg1, _local2, _arg1.charAt(_local2).toUpperCase()));
};
};
return (_arg1);
}
public static function toTitleCase(_arg1:String, _arg2:Boolean=true):String{
var _local5:int;
_arg1 = StringUtil._checkWords(_arg1, " ", true, _arg2);
var _local3:Array = _arg1.split(" ");
var _local4:int = (_local3.length - 1);
if (!StringUtil._isIgnoredWord(_local3[0])){
_local3[0] = StringUtil._capitalizeFirstLetter(_local3[0]);
};
if (!StringUtil._isIgnoredWord(_local3[_local4])){
_local3[_local4] = StringUtil._capitalizeFirstLetter(_local3[_local4]);
};
_arg1 = _local3.join(" ");
if (StringUtil.contains(_arg1, ": ")){
_local5 = -1;
_local3 = _arg1.split(": ");
while (++_local5 < _local3.length) {
_local3[_local5] = StringUtil._capitalizeFirstLetter(_local3[_local5]);
};
_arg1 = _local3.join(": ");
};
return (_arg1);
}
public static function isUpperCase(_arg1:String):Boolean{
var _local2:Array = _arg1.split("");
var _local3:Number = _local2.length;
while (_local3--) {
if (_local2[_local3] != _local2[_local3].toUpperCase()){
return (false);
};
};
return (true);
}
public static function indexOfUpperCase(_arg1:String, _arg2:uint=0):int{
var _local3:Array = _arg1.split("");
var _local4:int = (_arg2 - 1);
while (++_local4 < _local3.length) {
if ((((_local3[_local4] == _local3[_local4].toUpperCase())) && (!((_local3[_local4] == _local3[_local4].toLowerCase()))))){
return (_local4);
};
};
return (-1);
}
protected static function _checkWord(_arg1:String, _arg2:Boolean, _arg3:Boolean):String{
var _local4:Array;
var _local5:int;
var _local6:Boolean;
if (StringUtil._isIgnoredWord(_arg1)){
return (_arg1);
};
if (_arg3){
if (StringUtil._isSmallWord(_arg1)){
return (_arg1.toLowerCase());
};
};
if (_arg2){
_local4 = new Array("-", "–", "—");
_local5 = -1;
while (++_local5 < _local4.length) {
if (StringUtil.contains(_arg1, _local4[_local5]) != 0){
_arg1 = StringUtil._checkWords(_arg1, _local4[_local5], false, true);
_local6 = true;
};
};
if (_local6){
return (_arg1);
};
};
return (StringUtil._capitalizeFirstLetter(_arg1));
}
public static function replace(_arg1:String, _arg2:String, _arg3:String):String{
var _local4:RegExp = new RegExp(_arg2, "g");
return (_arg1.replace(_local4, _arg3));
}
public static function removeExtraSpaces(_arg1:String):String{
var _local2:RegExp = /( )+/g;
return (StringUtil.trim(_arg1.replace(_local2, " "), " "));
}
protected static function _isIgnoredWord(_arg1:String):Boolean{
var _local2:int = _arg1.indexOf(".");
var _local3:int = StringUtil.indexOfUpperCase(_arg1);
if (((((!((_local2 == -1))) && (!((_local2 == (_arg1.length - 1)))))) || (((!((_local3 == -1))) && (!((_local3 == 0))))))){
return (true);
};
return (false);
}
public static function addAt(_arg1:String, _arg2:int, _arg3:String):String{
var _local4:Array = _arg1.split("");
_local4.splice(_arg2, 0, _arg3);
return (_local4.join(""));
}
}
}//package org.casalib.util
Section 290
//BasePage (pages.BasePage)
package pages {
import flash.display.*;
import console.*;
import gs.*;
import org.casalib.display.*;
import game.interfaces.*;
public class BasePage extends CasaSprite implements IConsoleSection {
protected var m_ui:MovieClip;
public function hide():void{
}
public function transitionIn_COMPLETE():void{
dispatchEvent(new ConsoleEvent(ConsoleEvents.TRANSITION_COMPLETE));
}
public function doPause():void{
}
protected function center():void{
m_ui.x = int((Constants.STAGE_WIDTH * 0.5));
m_ui.y = int((Constants.STAGE_HEIGHT * 0.5));
}
public function doResume():void{
}
public function transitionOut():void{
TweenMax.to(m_ui, 0.75, {alpha:0});
}
public function transitionIn():void{
TweenMax.to(m_ui, 0.75, {alpha:1, onComplete:transitionIn_COMPLETE});
}
override public function destroy():void{
if (m_ui){
TweenMax.killTweensOf(m_ui);
removeChild(m_ui);
m_ui = null;
};
super.destroy();
}
}
}//package pages
Section 291
//Credits (pages.Credits)
package pages {
import assets.pages.*;
public class Credits extends BasePage {
public function Credits(){
m_ui = new CreditsUI();
addChild(m_ui);
m_ui.alpha = 0;
center();
}
}
}//package pages
Section 292
//Help (pages.Help)
package pages {
import assets.pages.*;
public class Help extends BasePage {
public function Help(){
m_ui = new HelpUI();
addChild(m_ui);
m_ui.alpha = 0;
center();
}
}
}//package pages
Section 293
//MarvelLogin (pages.MarvelLogin)
package pages {
import flash.events.*;
import events.*;
import net.*;
import gs.*;
import flash.system.*;
import assets.*;
import com.malee.net.*;
import com.malee.events.*;
public class MarvelLogin extends BasePage {
private var _loader:URLDataLoader;
private var _username:String;
private var _password:String;
private var _errorMessage:String;
private static const LOGIN_URL:String = "http://marvelkids.marvel.com/soap/armored_assault/login.php?action=login";
public function MarvelLogin(){
initialize();
initializeComponent();
}
private function onRegister(_arg1:LoginEvent):void{
var _local2:String;
var _local3:String;
if (((FlashVars.data) && (FlashVars.data.ref))){
_local2 = FlashVars.data.ref;
} else {
_local2 = "none";
};
trace(("urlReferrer: " + _local2));
_local3 = (("javascript:loadSignup('" + _local2) + "')");
trace(_local3);
getURL(_local3, "_self");
}
private function onLoginComplete(_arg1:Event):void{
var _local7:Array;
var _local8:String;
var _local9:String;
var _local2:String = _loader.data;
var _local3:String = _local2.substr(1, (_local2.length - 2));
var _local4:Array = _local3.split("&");
var _local5:Object = {};
var _local6:int;
while (_local6 < _local4.length) {
_local7 = _local4[_local6].split("=");
_local8 = _local7[0];
_local9 = _local7[1];
_local5[_local8] = _local9;
_local6++;
};
if (_local5.user_id.length > 0){
User.getInstance().createUser(_local5.user_id, _local5.member_name, _local5.country_id);
m_ui.gotoAndPlay("success");
} else {
_errorMessage = "User not found.";
m_ui.gotoAndPlay("error");
};
}
private function onLoginError(_arg1:ErrorEvent):void{
trace("login error", _arg1.text);
_errorMessage = _arg1.text;
m_ui.gotoAndPlay("error");
}
private function onTransitionOut():void{
destroy();
}
private function onLoginSuccess(_arg1:LoginEvent):void{
transitionOut();
dispatchEvent(_arg1);
}
override public function transitionIn():void{
TweenMax.to(m_ui, 0.3, {alpha:1});
}
private function onSkipLogin(_arg1:LoginEvent):void{
transitionOut();
dispatchEvent(new LoginEvent(LoginEvent.LOGIN_CANCEL));
}
private function initializeComponent():void{
m_ui.addEventListener(LoginEvent.INITIALIZE, onLoginInitalize);
m_ui.addEventListener(LoginEvent.LOGIN, onAttemptLogin);
m_ui.addEventListener(LoginEvent.SKIP, onSkipLogin);
m_ui.addEventListener(LoginEvent.REGISTER, onRegister);
m_ui.addEventListener(LoginEvent.LOGIN_SUCCESS, onLoginSuccess);
m_ui.addEventListener(LoginEvent.LOGIN_ERROR, onLoginUIError);
m_ui.addEventListener(LoginEvent.TRY_AGAIN, onLoginTryAgain);
}
private function onLoginInitalize(_arg1:LoginEvent):void{
if (_username != null){
m_ui.nameEntry.input.text = _username;
};
if (_password != null){
m_ui.passEntry.input.text = _password;
};
}
private function initialize():void{
Security.allowDomain("http://marvelkids.marvel.com");
Security.allowInsecureDomain("http://marvelkids.marvel.com");
m_ui = new MarvelLoginUI();
m_ui.alpha = 0;
addChild(m_ui);
_loader = new URLDataLoader();
_loader.addEventListener(Event.COMPLETE, onLoginComplete, false, 0, true);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onLoginError, false, 0, true);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onLoginError, false, 0, true);
_loader.addEventListener(TimeoutErrorEvent.TIMEOUT, onLoginError, false, 0, true);
center();
}
private function onLoginUIError(_arg1:LoginEvent):void{
m_ui.errorMessage.text = _errorMessage;
}
private function onLoginTryAgain(_arg1:LoginEvent):void{
m_ui.gotoAndPlay("main");
}
override public function transitionOut():void{
TweenMax.to(m_ui, 0.3, {alpha:0, onComplete:onTransitionOut});
}
private function onAttemptLogin(_arg1:LoginEvent):void{
var _local2:String = LOGIN_URL;
_username = _arg1.data.username;
_password = _arg1.data.password;
_local2 = (_local2 + ("&user=" + _arg1.data.username));
_local2 = (_local2 + ("&pass=" + _arg1.data.password));
_loader.sendData(_local2, 3);
m_ui.gotoAndPlay("login");
}
}
}//package pages
Section 294
//Medals (pages.Medals)
package pages {
import game.medals.*;
import assets.pages.*;
public class Medals extends BasePage {
private var m_medalPageDisplay:MedalPageDisplay;
public function Medals(){
m_ui = new MedalsUI();
addChild(m_ui);
m_ui.alpha = 0;
center();
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[9], m_ui.medalNinja, m_ui.baseNinja, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[8], m_ui.medalSecret, m_ui.baseSecret, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[7], m_ui.medalIntel, m_ui.baseIntel, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[6], m_ui.medalDestroyer, m_ui.baseDestroyer, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[5], m_ui.medalSaboteur, m_ui.baseSabotuer, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[4], m_ui.medalGenius, m_ui.baseGenius, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[3], m_ui.medalMastermind, m_ui.baseMastermind, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[2], m_ui.medalScrapyard, m_ui.baseScrapyard, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[1], m_ui.medalBest, m_ui.baseBest, m_ui);
m_medalPageDisplay = new MedalPageDisplay(Medal.medalArray[0], m_ui.medalWeaponX, m_ui.baseWeaponx, m_ui);
}
override public function hide():void{
MedalPageDisplay.destroyAll();
}
override public function destroy():void{
removeChild(m_ui);
m_ui = null;
super.destroy();
}
}
}//package pages
Section 295
//MutantButton (pages.MutantButton)
package pages {
import flash.events.*;
import flash.display.*;
import com.markfennell.events.*;
import gs.*;
import flash.filters.*;
public class MutantButton {
private var m_item:MovieClip;
public var id:int;
private var m_enabled:Boolean;
public static var CLICKED:String = "MutantClicked";
public function MutantButton(_arg1:MovieClip, _arg2:int, _arg3:String){
id = _arg2;
m_item = _arg1;
m_item.addEventListener(MouseEvent.CLICK, handleClick);
m_item.addEventListener(MouseEvent.ROLL_OUT, handleRollOut);
m_item.addEventListener(MouseEvent.ROLL_OVER, handleRollOver);
m_item.buttonMode = true;
m_item.useHandCursor = true;
}
private function handleClick(_arg1:MouseEvent):void{
TweenMax.to(m_item, 0.1, {tint:0xFFFFFF});
TweenMax.to(m_item, 0.2, {alpha:1, delay:0.1});
TweenMax.to(m_item, 0.2, {delay:0.2, removeTint:true});
GameBroadcaster.dispatchEvent(new TriggerEvent(CLICKED, id));
}
private function handleRollOver(_arg1:MouseEvent):void{
m_item.filters = [new GlowFilter(4294967295, 1, 4, 4, 3)];
}
public function enable():void{
m_enabled = true;
}
public function disable():void{
m_enabled = false;
}
private function handleRollOut(_arg1:MouseEvent):void{
m_item.filters = [];
TweenMax.to(m_item, 0.25, {delay:0.5, removeTint:true});
}
}
}//package pages
Section 296
//Mutants (pages.Mutants)
package pages {
import flash.events.*;
import flash.display.*;
import com.markfennell.sound.*;
import com.markfennell.events.*;
import gs.*;
import org.casalib.util.*;
import assets.pages.*;
public class Mutants extends BasePage {
private var m_iconButton_1:MutantButton;
private var m_iconButton_2:MutantButton;
private var m_iconButton_3:MutantButton;
private var m_max:int;// = 4
private var m_iconButton_5:MutantButton;
private var m_currentPage:MovieClip;
private var m_iconButton_4:MutantButton;
private var m_pagesArray:Array;
private var m_current:int;// = 0
private var m_stage:Stage;
private var m_buttons:mutantButtons;
public function Mutants(){
m_ui = new MutantsUI();
addChild(m_ui);
m_ui.alpha = 0;
m_ui.pageWolverine.alpha = 0;
m_ui.pageCyclops.alpha = 0;
m_ui.pageBeast.alpha = 0;
m_ui.pageShadowcat.alpha = 0;
m_ui.pageRogue.alpha = 0;
m_stage = StageReference.getStage();
m_pagesArray = [m_ui.pageWolverine, m_ui.pageCyclops, m_ui.pageBeast, m_ui.pageShadowcat, m_ui.pageRogue];
center();
changePage(m_pagesArray[m_current]);
m_buttons = new mutantButtons();
m_stage.addChild(m_buttons);
m_buttons.alpha = 0;
m_buttons.x = 370;
m_buttons.y = 175;
m_buttons.prev.alpha = 0;
m_buttons.prev.mouseEnabled = false;
m_buttons.prev.mouseChildren = false;
TweenMax.to(m_buttons, 0.25, {delay:0.25, alpha:1});
m_buttons.prev.addEventListener(MouseEvent.CLICK, handlePrev);
m_buttons.next.addEventListener(MouseEvent.CLICK, handleNext);
m_iconButton_1 = new MutantButton(m_buttons.iconWolverine, 0, "");
m_iconButton_2 = new MutantButton(m_buttons.iconCyclops, 1, "");
m_iconButton_3 = new MutantButton(m_buttons.iconBeast, 2, "");
m_iconButton_4 = new MutantButton(m_buttons.iconShadowcat, 3, "");
m_iconButton_5 = new MutantButton(m_buttons.iconRogue, 4, "");
GameBroadcaster.addEventListener(MutantButton.CLICKED, handleIconClick);
}
override public function destroy():void{
m_iconButton_1 = null;
m_iconButton_2 = null;
m_iconButton_3 = null;
m_iconButton_4 = null;
m_iconButton_5 = null;
m_buttons.prev.removeEventListener(MouseEvent.CLICK, handlePrev);
m_buttons.next.removeEventListener(MouseEvent.CLICK, handleNext);
m_stage.removeChild(m_buttons);
m_stage = null;
m_buttons = null;
super.destroy();
}
private function handleNext(_arg1:MouseEvent):void{
if (m_current < m_max){
TweenMax.to(m_buttons.prev, 0.25, {alpha:1});
m_buttons.prev.mouseEnabled = true;
m_buttons.prev.mouseChildren = true;
m_current++;
changePage(m_pagesArray[m_current]);
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_02", 0.3, 1));
if (m_current == m_max){
TweenMax.to(m_buttons.next, 0.25, {alpha:0});
m_buttons.next.mouseEnabled = false;
m_buttons.next.mouseChildren = false;
};
};
}
private function handleIconClick(_arg1:TriggerEvent):void{
if (_arg1.data != m_current){
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_02", 0.5, 1));
m_current = _arg1.data;
changePage(m_pagesArray[m_current]);
TweenMax.to(m_buttons.next, 0.25, {alpha:1});
m_buttons.next.mouseEnabled = true;
m_buttons.next.mouseChildren = true;
TweenMax.to(m_buttons.prev, 0.25, {alpha:1});
m_buttons.prev.mouseEnabled = true;
m_buttons.prev.mouseChildren = true;
if (m_current == 0){
TweenMax.to(m_buttons.prev, 0.25, {alpha:0});
m_buttons.prev.mouseEnabled = false;
m_buttons.prev.mouseChildren = false;
};
if (m_current == m_max){
TweenMax.to(m_buttons.next, 0.25, {alpha:0});
m_buttons.next.mouseEnabled = false;
m_buttons.next.mouseChildren = false;
};
};
}
override public function hide():void{
trace("Hide Buttons Called");
TweenMax.to(m_buttons, 0.25, {alpha:0});
}
public function changePage_COMPLETE(_arg1:MovieClip):void{
_arg1.alpha = 0;
_arg1.visible = true;
TweenMax.to(_arg1, 0.2, {tint:0xFFFFFF});
TweenMax.to(_arg1, 0.25, {alpha:1, delay:0.2});
TweenMax.to(_arg1, 0.25, {delay:0.5, removeTint:true});
m_currentPage = _arg1;
}
public function changePage(_arg1:MovieClip):void{
if (m_currentPage != null){
m_currentPage.visible = false;
};
changePage_COMPLETE(_arg1);
}
private function handlePrev(_arg1:MouseEvent):void{
if (m_current >= 0){
TweenMax.to(m_buttons.next, 0.25, {alpha:1});
m_buttons.next.mouseEnabled = true;
m_buttons.next.mouseChildren = true;
m_current--;
changePage(m_pagesArray[m_current]);
GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets.sfx_machete_normal_02", 0.3, 1));
if (m_current == 0){
TweenMax.to(m_buttons.prev, 0.25, {alpha:0});
m_buttons.prev.mouseEnabled = false;
m_buttons.prev.mouseChildren = false;
};
};
}
}
}//package pages
Section 297
//SubmitScore (pages.SubmitScore)
package pages {
import flash.events.*;
import console.*;
import events.*;
import net.*;
import gs.*;
import flash.text.*;
import assets.pages.*;
import com.electrotank.util.*;
import com.malee.utils.*;
import com.malee.net.*;
public class SubmitScore extends BasePage {
private var _loader:URLDataLoader;
private static const DEFAULT_NAME:String = "ENTER NAME";
public function SubmitScore(){
initialize();
initializeComponent();
}
override public function transitionOut():void{
TweenMax.to(m_ui, 0.5, {alpha:0, onComplete:onTransitionOut});
}
private function checkName(_arg1:String):Boolean{
var _local2 = (_arg1.length > 0);
var _local3 = (FormUtil.isBadLanguage(_arg1, FormUtil.BAD_ALL) == false);
var _local4 = !((_arg1 == DEFAULT_NAME));
if (((((_local2) && (_local3))) && (_local4))){
return (true);
};
return (false);
}
private function onScoreSent(_arg1:Event):void{
m_ui.gotoAndPlay("success");
}
private function onOpenLogin(_arg1:LoginEvent):void{
var _local2:MarvelLogin = new MarvelLogin();
addChild(_local2);
_local2.transitionIn();
_local2.addEventListener(LoginEvent.LOGIN_CANCEL, onLoginEnd);
_local2.addEventListener(LoginEvent.LOGIN_SUCCESS, onLoginEnd);
m_ui.mouseEnabled = (m_ui.mouseChildren = false);
}
override public function transitionIn():void{
TweenMax.to(m_ui, 0.5, {alpha:1});
}
private function onSendScore(_arg1:UIEvent):void{
_loader.sendData("http://stats.soap.com.au/highscore/engine_mofo.php");
}
private function onSubmitSuccess(_arg1:UIEvent):void{
transitionOut();
dispatchEvent(_arg1);
}
private function initializeComponent():void{
if (User.getInstance().loggedIn == false){
m_ui.gotoAndPlay("formSmall");
} else {
m_ui.gotoAndPlay("form");
};
}
private function onTransitionOut():void{
destroy();
}
private function onShowForm(_arg1:UIEvent):void{
m_ui.score.text = TextUtil.formatScoreComma(MemoryCrypto.getValue("score"));
if (User.getInstance().loggedIn == true){
if (User.getInstance().enableLogin == true){
m_ui.nameField.type = TextFieldType.DYNAMIC;
m_ui.nameField.text = User.getInstance().username.toUpperCase();
m_ui.nameField.selectable = false;
} else {
m_ui.nameField.type = TextFieldType.INPUT;
m_ui.nameField.text = DEFAULT_NAME;
m_ui.nameField.selectable = true;
};
};
}
private function initialize():void{
m_ui = new SubmitScoreUI();
addChild(m_ui);
m_ui.alpha = 0;
m_ui.addEventListener(UIEvent.SUBMIT_SCORE_FORM, onShowForm);
m_ui.addEventListener(UIEvent.SUBMIT_SCORE, onSubmitScore);
m_ui.addEventListener(UIEvent.SEND_SCORE, onSendScore);
m_ui.addEventListener(UIEvent.SUBMIT_SCORE_SUCCESS, onSubmitSuccess);
m_ui.addEventListener(UIEvent.SUBMIT_SCORE_AGAIN, onSubmitAgain);
m_ui.addEventListener(UIEvent.CLOSE, onCloseForm);
m_ui.addEventListener(LoginEvent.OPEN_LOGIN, onOpenLogin);
_loader = new URLDataLoader();
_loader.addEventListener(Event.COMPLETE, onScoreSent, false, 0, true);
_loader.addEventListener(IOErrorEvent.IO_ERROR, onScoreSendError, false, 0, true);
_loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onScoreSendError, false, 0, true);
center();
}
private function onLoginEnd(_arg1:LoginEvent):void{
initializeComponent();
m_ui.mouseEnabled = (m_ui.mouseChildren = true);
}
private function onScoreSendError(_arg1:ErrorEvent):void{
trace("score send error", _arg1.text);
m_ui.gotoAndPlay("error");
}
private function onSubmitAgain(_arg1:UIEvent):void{
m_ui.gotoAndPlay("submit");
}
private function onSubmitScore(_arg1:UIEvent):void{
var _local2:String;
if (User.getInstance().enableLogin == true){
_local2 = User.getInstance().username;
} else {
_local2 = m_ui.nameField.text.toUpperCase();
if (checkName(_local2) == false){
return;
};
};
var _local3:int = (Math.random() * 100000);
var _local4:int = (Math.random() * 100000);
var _local5 = (((_local3 + "noemail@www") + _local4) + ".com");
trace(("SUBMIT SCORE : " + MemoryCrypto.getValue("score")));
Console.GoogleAnalytics.trackEvent("MRD_Escape", "submit score", "submitted", Number(MemoryCrypto.getValue("score")));
_loader.clearVariables();
_loader.addVariable("intGameId", 34);
_loader.addVariable("intScore", MemoryCrypto.getValue("score"));
_loader.addVariable("strName", _local2);
_loader.addVariable("strEmail", _local5);
_loader.addVariable("strMisc1", User.getInstance().countryID);
_loader.addVariable("strMisc4", User.getInstance().userID);
m_ui.gotoAndPlay("submit");
}
override public function destroy():void{
dispatchEvent(new UIEvent(UIEvent.CLOSE));
super.destroy();
}
private function onCloseForm(_arg1:UIEvent):void{
transitionOut();
}
}
}//package pages
Section 298
//Title (pages.Title)
package pages {
import flash.events.*;
import com.malee.loaders.*;
import assets.pages.*;
public class Title extends BasePage {
private var _sponsorLoaded:Boolean;
private var _requestPlay:Boolean;
private var _sponsorLogo:AssetLoader;
public function Title(){
m_ui = new TitleUI();
addChild(m_ui);
m_ui.alpha = 0;
m_ui.stop();
m_ui.x = 10;
m_ui.y = 66;
_sponsorLoaded = false;
_requestPlay = false;
_sponsorLogo = new AssetLoader();
_sponsorLogo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSponsorError, false, 0, true);
_sponsorLogo.addEventListener(IOErrorEvent.IO_ERROR, onSponsorError, false, 0, true);
_sponsorLogo.addEventListener(Event.COMPLETE, onSponsorLoaded, false, 0, true);
_sponsorLogo.loadData((Main.SPONSOR_URL + "sponsor.swf"));
trace("Loading ", (Main.SPONSOR_URL + "sponsor.swf"));
}
private function onSponsorLoaded(_arg1:Event):void{
m_ui.sponsor.addChild(_sponsorLogo.content);
_sponsorLoaded = true;
if (_requestPlay == true){
m_ui.gotoAndPlay("intro");
};
}
private function onSponsorError(_arg1:ErrorEvent):void{
_sponsorLoaded = true;
if (_requestPlay == true){
m_ui.gotoAndPlay("intro");
};
}
public function playIntro():void{
_requestPlay = true;
if (_sponsorLoaded == true){
m_ui.gotoAndPlay("intro");
};
}
}
}//package pages
Section 299
//AbstractPreloader (preloader.AbstractPreloader)
package preloader {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class AbstractPreloader extends MovieClip {
private var USE_EXTERNAL:Boolean;// = true
private var m_loadTime:int;
protected var VALID_URL:Array;
private var m_firstEnterFrame:Boolean;
public function AbstractPreloader(){
addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage);
stop();
}
protected function endLoading():void{
}
public function start():void{
trace("start");
m_firstEnterFrame = true;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
protected function updateLoading(_arg1:Number):void{
}
private function handleOnAddedToStage(_arg1:Event):void{
stage.scaleMode = StageScaleMode.EXACT_FIT;
stage.align = StageAlign.TOP_LEFT;
m_loadTime = getTimer();
}
protected function run():void{
var _local4:Class;
var _local5:DisplayObject;
var _local1:String = root.loaderInfo.url;
var _local2:Boolean;
var _local3:int;
while (_local3 < VALID_URL.length) {
if (_local1.indexOf(VALID_URL[_local3]) != -1){
_local2 = true;
break;
};
_local3++;
};
if (_local2){
_local4 = (getDefinitionByName(mainClassName) as Class);
if (_local4 == null){
throw (new Error("AbstractPreloader:initialize. There was no class matching that name. Did you remember to override mainClassName?"));
};
_local5 = (new (_local4) as DisplayObject);
if (_local5 == null){
throw (new Error("AbstractPreloader:initialize. Main class needs to inherit from Sprite or MovieClip."));
};
_local4.loadTime = int(((getTimer() - m_loadTime) / 1000));
_local4.SPONSOR_URL = "http://marvelkids.marvel.com/soap/mrd/";
addChildAt(_local5, 0);
};
}
private function onEnterFrame(_arg1:Event):void{
var _local2:Number;
if (m_firstEnterFrame){
m_firstEnterFrame = false;
if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
run();
} else {
beginLoading();
};
return;
};
if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
run();
endLoading();
} else {
_local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal);
updateLoading(_local2);
};
}
protected function beginLoading():void{
}
protected function get mainClassName():String{
return ("Main");
}
}
}//package preloader
Section 300
//AbstractPreloaderView (preloader.AbstractPreloaderView)
package preloader {
import flash.events.*;
import com.malee.events.*;
import flash.display.*;
import assets.*;
import com.malee.soap.*;
import game.levels.*;
import com.malee.loaders.*;
public class AbstractPreloaderView extends AbstractPreloader {
private var m_ui:Preloader;
private var m_menu:SoapMenu;
private var m_embedded:Boolean;// = true
public function AbstractPreloaderView(){
trace("AbstractPreloaderView");
stop();
VALID_URL = ["lilmofo", "", "http://127.0.0.1", "", "", "file://"];
m_ui = new Preloader();
m_ui.x = 365;
m_ui.y = 236;
addChild(m_ui);
m_menu = new SoapMenu(this);
m_menu.addItem("v 1.0");
super.start();
}
override protected function endLoading():void{
}
private function onDataComplete(_arg1:Event=null):void{
super.start();
}
private function onLevelLoaded(_arg1:LoaderEvent):void{
var _local2:XMLLoader = (_arg1.item as XMLLoader);
var _local3:LevelXML = new LevelXML(_local2.url, _local2.xml);
}
override protected function beginLoading():void{
trace("begin Loading");
}
override protected function run():void{
removeChild(m_ui);
m_ui = null;
super.run();
}
override protected function updateLoading(_arg1:Number):void{
var _local6:Number;
var _local7:Number;
var _local8:Number;
var _local9:Number;
var _local2:int = (104 / 2);
var _local3:Number = (_arg1 * (Math.PI * 2));
var _local4:int = (1 + ((_local3 / Math.PI) * 30));
m_ui.bar.graphics.clear();
m_ui.bar.graphics.lineStyle(6, 0xFF0000, 1, false, "normal", CapsStyle.SQUARE);
m_ui.bar.graphics.moveTo(0, -(_local2));
var _local5:int;
while (_local5 <= _local4) {
_local6 = ((_local5 / _local4) * _local3);
_local7 = (_local6 - (Math.PI / 2));
_local8 = (Math.cos(_local7) * _local2);
_local9 = (Math.sin(_local7) * _local2);
m_ui.bar.graphics.lineTo(_local8, _local9);
_local5++;
};
}
private function onAllLevelsLoaded(_arg1:Event):void{
onDataComplete();
}
}
}//package preloader
Section 301
//Constants (Constants)
package {
import flash.net.*;
public class Constants {
public static const FLOOR_THICKNESS:int = 19;
public static const STAGE_WIDTH:int = 730;
public static const FRAME_RATE:int = 31;
public static const STAGE_HEIGHT:int = 472;
public static const TILE_SIZE:int = 118;
public static const BOUNDS:Boolean = false;
public static var URL_XMEN:URLRequest = new URLRequest("http://marvelkids.marvel.com/shows/Wolverine_and_the_X-Men?utm_source=games&utm_medium=link_marvelkids&utm_content=MRDEscape&utm_campaign=MarvelGames2009");
public static var POINTS_ALARM:int = -500;
public static var URL_MARVELKIDS:URLRequest = new URLRequest("http://marvelkids.marvel.com/?utm_source=games&utm_medium=link_marvelkids&utm_content=MRDEscape&utm_campaign=MarvelGames2009");
public static var VOLUME_MUSIC:Number = 1;
public static var POINTS_TIME:int = 1;
public static var GOOGLE:String = "UA-273913-11";
public static var URL_MOREGAMES:URLRequest = new URLRequest("http://marvelkids.marvel.com/games/?utm_source=games&utm_medium=link_moregames&utm_content=MRDEscape&utm_campaign=MarvelGames2009");
}
}//package
Section 302
//EmbeddedData (EmbeddedData)
package {
import flash.events.*;
import game.levels.*;
public class EmbeddedData {
private var m_levelsXML:XML;
private static var _levels:Array = [];
public function EmbeddedData(){
m_levelsXML = <levels>
<level>
<name>The Escape (Tutorial)</name>
<description>Level 1: Learn how to escape. Use the space bar to access the info panels.</description>
<start x="1" y="2"/>
<time>5000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>20,16,16,16,1,1,1,16,16,16,16,16,21</data>
<data>20,1,1,1,3,12,3,1,1,1,1,16,21</data>
<data>20,2,2,2,13,16,8,13,2,2,8,16,21</data>
<data>20,16,16,16,16,16,16,16,16,16,16,16,21</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,3,1,1,1,1,1,1,1</data>
<data>1,1,3,3,1,1,1,3,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,3,2,3,1,1,1,1,1,1</data>
<data>1,2,2,2,2,1,2,2,2,2,2,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorSingleSteelUI" x="1" y="2" id="0" goto="0" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelExitUI" x="10" y="2" id="1" goto="-1" locked="false" range="25"/>
</doors>
<switches/>
<lasers>
<laser asset="assets.LaserBigUI" x="8" y="2" id="0" isOn="true" range="20" time="1000" move="0" rate="0"/>
</lasers>
<sensors/>
<cameras/>
<guards/>
<keypads>
<keypad asset="assets.TerminalUI" x="6" y="1" id="0" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="250"><![CDATA[Wolverine can jump down through dark platforms. Press the down key to drop down to the platform below.<BR>Use space to close panels.]]></keypad>
<keypad asset="assets.TerminalUI" x="4" y="2" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="250"><![CDATA[Wolverine can jump up through dark platforms. Press the up key to jump to the platform above.]]></keypad>
<keypad asset="assets.TerminalUI" x="7" y="2" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="500"><![CDATA[Along the way, Wolverine will encounter obstacles. Wait until the laser is disabled and run through.]]></keypad>
<keypad asset="assets.TerminalUI" x="9" y="2" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="500"><![CDATA[Doors with a green light are unlocked. Tap SPACE to enter unlocked doors.]]></keypad>
</keypads>
<mutants>
<!-- <mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/> -->
</mutants>
</level>
<level>
<name>Using Skills (Tutorial)</name>
<description>Level 2: Use Wolverine’s skills to finish the level.</description>
<start x="8" y="1"/>
<time>20000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>20,1,1,1,1,16,16,1,1,1,21</data>
<data>20,3,2,2,2,4,4,2,2,2,21</data>
<data>20,8,3,1,1,1,1,1,1,1,21</data>
<data>20,16,2,2,2,2,8,2,2,3,21</data>
<data>20,16,16,16,16,16,2,2,2,10,21</data>
<data>20,16,16,16,16,16,16,16,16,16,21</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,4</data>
<data>1,1,1,3,2,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,2,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,2,2,2,4,4,2,2,2,1</data>
<data>1,2,3,1,1,1,1,1,1,1,1</data>
<data>1,1,2,2,2,2,2,2,2,3,1</data>
<data>1,1,1,1,1,1,2,2,2,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorSingleSteelUI" x="8" y="1" id="0" goto="0" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelExitUI" x="6" y="4" id="1" goto="-1" locked="true" range="25"/>
</doors>
<switches>
<switch asset="assets.SwitchUI" x="7" y="4" id="0" goto="1" type="door" isOn="false" range="15" canToggle="true"/>
</switches>
<lasers>
<laser asset="assets.LaserBigUI" x="2" y="1" id="0" isOn="true" range="20" time="2000" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="4" y="3" id="0" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="5" y="3" id="1" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorTopUI" x="8" y="3" id="2" isOn="true" range="50" time="0" attach="top"/>
<sensor asset="assets.SensorTopUI" x="9" y="3" id="3" isOn="true" range="50" time="0" attach="top"/>
</sensors>
<cameras/>
<guards/>
<keypads>
<keypad asset="assets.TerminalUI" x="7" y="1" id="0" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="200"><![CDATA[Wolverine can crouch and crawl. Press the down key while moving to crawl through the small space to the left.]]></keypad>
<keypad asset="assets.TerminalUI" x="3" y="3" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="200"><![CDATA[Wolverine can use his claws to attach himself to a solid ceiling. Press the up key to perform the move and move past the floor sensors.]]></keypad>
<keypad asset="assets.TerminalUI" x="7" y="3" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="200"><![CDATA[Some sensors will be attached to the ceiling, preventing Wolverine from using his claws.]]></keypad>
<keypad asset="assets.TerminalUI" x="8" y="4" id="3" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="500"><![CDATA[Wolverine can use switches to control different sorts of objects in the game. Press the space bar to flick switches.]]></keypad>
</keypads>
<mutants>
<!-- <mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/> -->
</mutants>
</level>
<level>
<name>Be the Shadows (Tutorial)</name>
<description>Level 3: Disable the security systems to finish the level.</description>
<start x="9" y="4"/>
<time>20000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>20,1,1,1,1,16,16,16,16,16,16,16,16,16,16,21</data>
<data>20,2,2,2,3,16,16,16,16,16,16,16,16,16,16,21</data>
<data>20,16,16,16,3,16,16,16,16,16,16,16,16,16,16,21</data>
<data>20,16,16,16,3,1,1,16,16,16,16,16,16,16,16,21</data>
<data>20,1,1,15,8,2,2,7,2,2,16,16,16,16,16,21</data>
<data>20,13,13,13,13,13,13,9,17,16,16,16,16,16,16,21</data>
<data>20,16,16,16,16,16,16,16,17,1,1,1,1,1,16,21</data>
<data>20,16,16,16,16,16,16,16,13,2,13,13,2,17,16,21</data>
<data>20,16,16,16,16,16,16,16,13,13,11,13,13,13,16,21</data>
<data>20,16,16,16,16,16,16,16,16,13,2,13,13,13,16,21</data>
<data>20,16,16,16,16,16,16,16,16,16,16,16,16,16,16,21</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4</data>
<data>1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,2,1,1,3,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,2,2,2,3,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1</data>
<data>1,2,2,2,2,2,2,2,3,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,2,2,2,2,2,3,1,1</data>
<data>1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1</data>
<data>1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorSingleSteelUI" x="1" y="1" id="0" goto="2" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="9" y="4" id="1" goto="0" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="1" y="5" id="2" goto="0" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="8" y="8" id="3" goto="4" locked="false" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="9" y="9" id="4" goto="3" locked="true" range="25"/>
<door asset="assets.DoorDoubleSteelExitUI" x="11" y="9" id="5" goto="-1" locked="true" range="50"/>
</doors>
<switches>
<switch asset="assets.SwitchUI" x="12" y="8" id="0" goto="1" type="camera" isOn="false" range="15" canToggle="true"/>
</switches>
<lasers>
<laser asset="assets.LaserBigUI" x="4" y="5" id="0" isOn="true" range="20" time="0" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="6" y="4" id="0" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="12" y="9" id="1" isOn="true" range="50" time="0" attach="bottom"/>
</sensors>
<cameras>
<camera asset="assets.CameraRightUI" x="11" y="7" id="0" isOn="true" range="200" time="2000" face="left"/>
<camera asset="assets.CameraLeftUI" x="11" y="8" id="1" isOn="true" range="200" time="0" face="right"/>
</cameras>
<guards/>
<keypads>
<keypad asset="assets.KeypadUI" x="2" y="1" id="0" goto="0" type="door" isOn="false" range="15" miniGame="MiniGameKeypad" correct="1234" canToggle="false" points="200"><![CDATA[Door access granted.]]></keypad>
<keypad asset="assets.TerminalUI" x="3" y="1" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Security is tight, so you might need to use more advanced methods to advance. To use keypads, press the space bar and enter the code you have found. The code for this door is 1234]]></keypad>
<keypad asset="assets.TerminalUI" x="2" y="5" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Wolverine can cut wires to disable certain security systems. Open the wire panel and cut the red wire to disable the laser.]]></keypad>
<keypad asset="assets.WiresUI" x="3" y="5" id="3" goto="0" type="laser" isOn="false" range="15" miniGame="MiniGameWires" correct="red" canToggle="false" points="1000"><![CDATA[Laser shutdown confirmed.]]></keypad>
<keypad asset="assets.TerminalUI" x="10" y="7" id="4" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Wolverine must not be detected by any camera. When a camera is flashing red, avoid its vision cone. Wait until the camera is inactive and run past.]]></keypad>
<keypad asset="assets.TerminalUI" x="13" y="8" id="5" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Some cameras don't turn off. To disable the camera on the left flick the switch.]]></keypad>
<keypad asset="assets.KeypadUI" x="10" y="9" id="6" goto="5" type="door" isOn="false" range="15" miniGame="MiniGameKeypad" correct="4321" canToggle="false" points="1000"><![CDATA[Exit code accepted.]]></keypad>
<keypad asset="assets.TerminalUI" x="13" y="9" id="7" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[The code for the keypad is 4321.]]></keypad>
</keypads>
<mutants>
<!--<mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/>-->
</mutants>
</level>
<!-- LEVEL 4 -->
<level>
<name>The One-Eyed Man (Tutorial)</name>
<description>Level 4: Free Cyclops to finish the level.</description>
<start x="11" y="3"/>
<time>20000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>20,1,1,1,1,16,16,16,16,16,16,16,16,16,16,21</data>
<data>20,18,11,2,13,16,16,16,16,16,16,16,16,16,16,21</data>
<data>20,13,8,13,17,16,16,16,16,1,1,1,16,16,16,21</data>
<data>20,13,13,13,9,16,16,1,1,18,9,13,16,16,16,21</data>
<data>20,1,1,1,1,1,1,13,13,13,2,10,1,1,1,21</data>
<data>20,10,2,13,13,2,24,12,13,2,12,12,4,4,7,21</data>
<data>20,16,16,16,16,16,16,16,16,16,16,16,16,16,16,21</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1</data>
<data>1,1,1,1,2,1,1,1,1,3,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,2,2,2,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,2,2,2,3,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,2,2,2,2,1,1,1,1,3,2,2,1,1,1,1</data>
<data>1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1</data>
<data>1,2,2,2,2,2,2,2,2,2,2,2,4,4,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorSingleSteelUI" x="4" y="1" id="0" goto="3" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="1" y="3" id="1" goto="4" locked="false" range="25"/>
<door asset="assets.DoorDoubleSteelUI" x="11" y="3" id="2" goto="0" locked="true" range="50"/>
<door asset="assets.DoorSingleSteelUI" x="7" y="4" id="3" goto="0" locked="false" range="25"/>
<door asset="assets.DoorSingleSteelUI" x="3" y="5" id="4" goto="1" locked="true" range="25"/>
<door asset="assets.DoorSingleSteelExitUI" x="8" y="5" id="5" goto="-1" locked="true" range="25"/>
</doors>
<switches/>
<lasers>
<laser asset="assets.LaserBigUI" x="2" y="5" id="0" isOn="true" range="20" time="2000" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="12" y="5" id="0" isOn="true" range="50" time="4500" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="13" y="5" id="1" isOn="true" range="50" time="4500" attach="bottom"/>
</sensors>
<cameras>
<camera asset="assets.CameraRightUI" x="11" y="5" id="0" isOn="true" range="200" time="0" face="left"/>
</cameras>
<guards>
<guard asset="assets.RobotUI" x="2" y="3" id="0" range="60" move="100" rate="0.03" type="robot" points="1000"/>
<guard asset="assets.Robot2UI" x="3" y="3" id="1" range="60" move="100" rate="0.01" type="robot" points="2000"/>
<guard asset="assets.RobotUI" x="9" y="4" id="2" range="60" move="240" rate="0.02" type="robot" points="2000"/>
</guards>
<keypads>
<keypad asset="assets.TerminalUI" x="3" y="2" id="0" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Wolverine can hold himself up when attached to the ceiling to avoid being seen. Try getting past the robots below without being seen.]]></keypad>
<keypad asset="assets.TerminalUI" x="9" y="3" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Robots also patrol these areas. Robots can be destroyed by pressing the space bar. A robot cannot see behind itself. If a robot spots you, you’ll have a brief time to escape sight or to destroy it.]]></keypad>
<keypad asset="assets.TerminalUI" x="1" y="5" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Cut the green wire to disable the camera.]]></keypad>
<keypad asset="assets.KeypadUI" x="5" y="5" id="3" goto="0" type="mutant" isOn="false" range="15" miniGame="MiniGameKeypad" correct="1324" canToggle="false" points="2500"><![CDATA[Prisoner cell unlocked.]]></keypad>
<keypad asset="assets.WiresUI" x="7" y="5" id="4" goto="0" type="camera" isOn="false" range="15" miniGame="MiniGameWires" correct="green" canToggle="false" points="2500"><![CDATA[Tunnel security camera disabled.]]></keypad>
<keypad asset="assets.TerminalUI" x="14" y="5" id="5" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[If you encounter any mutants along the way you must try and free them. To save this mutant, enter 1324 into the keypad.]]></keypad>
</keypads>
<mutants>
<mutant asset="assets.Mutant1" x="6" y="5" id="0" goto="5" cutscene="assets.VideoUnlockSequence"/>
</mutants>
</level>
<!-- LEVEL 5 -->
<level>
<name>The Beast Within</name>
<description>Level 5: Beast is trapped somewhere on this level. You must free him to exit.</description>
<!-- 1,4 -->
<start x="1" y="4"/>
<time>100000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>40,40,40,40,40,40,40,40,40,40,40,40,40,40,40</data>
<data>40,34,25,34,25,34,27,26,49,34,34,34,40,40,40</data>
<data>40,32,27,32,30,27,26,36,34,27,26,34,40,40,40</data>
<data>40,34,46,47,48,33,27,33,33,33,52,34,40,40,40</data>
<data>40,26,35,36,26,35,27,34,34,25,34,34,40,25,40</data>
<data>40,34,25,34,25,34,26,28,28,28,28,28,35,35,40</data>
<data>40,40,40,40,40,40,40,40,40,40,40,40,40,40,40</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,7,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,6,1,1,1,1,1,1,1</data>
<data>1,1,7,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,3,2,2,1,1,1,1,1,1</data>
<data>1,2,3,2,6,3,2,2,1,3,2,1,1,1,1</data>
<data>1,1,2,2,2,2,3,2,2,2,1,1,1,1,1</data>
<data>1,2,2,2,2,2,3,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,2,4,4,4,4,4,2,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureUI" x="1" y="4" id="0" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureExitUI" x="6" y="5" id="1" goto="-1" locked="true" range="25"/>
</doors>
<switches>
<switch asset="assets.SwitchFutureUI" x="13" y="5" id="0" goto="0" type="mutant" isOn="false" range="15" canToggle="false"></switch>
</switches>
<lasers>
<laser asset="assets.LaserFutureUI" x="3" y="3" id="0" isOn="true" range="20" time="2000" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="2" y="2" id="0" isOn="true" range="50" time="2000" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="8" y="5" id="1" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="10" y="5" id="2" isOn="true" range="50" time="0" attach="bottom"/>
</sensors>
<cameras>
<camera asset="assets.CameraRightUI" x="5" y="2" id="0" isOn="true" range="200" time="3000" face="left"/>
<camera asset="assets.CameraRightUI" x="5" y="4" id="2" isOn="true" range="200" time="3000" face="left"/>
</cameras>
<guards>
<guard asset="assets.Robot2UI" x="6" y="2" id="0" range="60" move="80" rate="0.01" type="robot" points="2000"/>
<guard asset="assets.RobotUI" x="8" y="3" id="1" range="60" move="80" rate="0.01" type="robot" points="2000"/>
<guard asset="assets.Robot2UI" x="4" y="4" id="2" range="60" move="200" rate="0.01" type="robot" points="2000"/>
</guards>
<keypads>
<keypad asset="assets.TerminalFutureUI" x="6" y="1" id="0" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Terminal access code: 5731]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="1" y="2" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Sentinel-prototype live test commencing in three days.]]></keypad>
<keypad asset="assets.KeypadFutureUI" x="3" y="2" id="2" goto="2" type="sensor" isOn="false" range="15" miniGame="MiniGameKeypad" correct="5731" canToggle="false" points="0"><![CDATA[Tunnel sensor 2 disabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="10" y="2" id="3" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Blue wire on level 2 is faulty.]]></keypad>
<keypad asset="assets.WiresUI" x="5" y="3" id="4" goto="1" type="sensor" isOn="false" range="15" miniGame="MiniGameWires" correct="blue" canToggle="false" points="0"><![CDATA[Tunnel sensor 1 disabled.]]></keypad>
</keypads>
<mutants>
<mutant asset="assets.Mutant2" x="12" y="5" id="0" goto="1" cutscene="assets.VideoUnlockSequence"/>
</mutants>
</level>
<!-- LEVEL 6 -->
<level>
<name>Laser Test Zone</name>
<description>Level 6: Get out any way you can.</description>
<!--17 3-->
<start x="17" y="3"/>
<time>100000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>25,25,40,40,40,40,40,40,40,40,40,40,40,40,25,25,25,25,25,25,40</data>
<data>40,32,32,32,32,33,36,33,36,33,36,33,36,33,36,33,31,31,35,25,40</data>
<data>25,26,36,27,40,25,40,26,31,40,40,40,34,34,40,40,40,40,25,25,40</data>
<data>25,40,25,27,40,40,40,25,25,40,25,40,40,40,40,26,32,26,40,40,40</data>
<data>40,40,34,26,49,50,50,51,26,30,35,27,34,34,34,40,40,40,34,34,34</data>
<data>40,40,25,25,52,34,25,34,52,25,25,46,47,48,33,33,49,50,51,35,34</data>
<data>40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,34,34,34</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,7,1,1,1,1,1,1,1,1,1,7,1,6,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,7,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1</data>
<data>1,2,2,3,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1</data>
<data>1,1,1,2,2,2,2,2,2,6,2,3,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureUI" x="2" y="1" id="0" goto="7" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="9" y="1" id="1" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="1" y="2" id="2" goto="3" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="7" y="2" id="3" goto="2" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="15" y="3" id="4" goto="10" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="17" y="3" id="5" goto="0" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="3" y="4" id="6" goto="8" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="8" y="4" id="7" goto="0" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="10" y="4" id="8" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureExitUI" x="19" y="5" id="9" goto="-1" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="18" y="1" id="10" goto="4" locked="false" range="25"/>
</doors>
<switches>
<switch asset="assets.SwitchFutureUI" x="4" y="1" id="0" goto="0" type="door" isOn="false" range="15" canToggle="false"/>
</switches>
<lasers>
<laser asset="assets.LaserFutureUI" x="3" y="1" id="0" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="5" y="1" id="1" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="10" y="1" id="2" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="12" y="1" id="3" isOn="true" range="20" time="4000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="12" y="5" id="4" isOn="true" range="20" time="1000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="13" y="5" id="5" isOn="true" range="20" time="1100" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="14" y="5" id="6" isOn="true" range="20" time="1200" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="15" y="5" id="7" isOn="true" range="20" time="1300" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="16" y="5" id="8" isOn="true" range="20" time="1200" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="17" y="5" id="9" isOn="true" range="20" time="1100" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="18" y="5" id="10" isOn="true" range="20" time="1000" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="6" y="1" id="0" isOn="true" range="50" time="1500" attach="bottom"/>
<sensor asset="assets.SensorTopUI" x="7" y="1" id="1" isOn="true" range="50" time="1500" attach="top"/>
<sensor asset="assets.SensorBottomUI" x="8" y="1" id="2" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="11" y="1" id="3" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="13" y="1" id="4" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="14" y="1" id="5" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="16" y="1" id="6" isOn="true" range="50" time="2000" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="3" y="2" id="7" isOn="true" range="50" time="2000" attach="bottom"/>
</sensors>
<cameras>
<camera asset="assets.CameraLeftUI" x="5" y="4" id="0" isOn="true" range="200" time="3000" face="right"/>
</cameras>
<guards>
<guard asset="assets.RobotUI" x="16" y="3" id="0" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="6" y="4" id="1" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="11" y="4" id="2" range="60" move="0" rate="0.01" type="robot" points="2500"/>
</guards>
<keypads>
<keypad asset="assets.TerminalFutureUI" x="15" y="1" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Use the ceiling!]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="8" y="2" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Sub level access code: 2366]]></keypad>
<keypad asset="assets.KeypadFutureUI" x="3" y="3" id="3" goto="6" type="door" isOn="false" range="15" miniGame="MiniGameKeypad" correct="2366" canToggle="false" points="0"><![CDATA[Door access code accepted.]]></keypad>
</keypads>
<mutants>
<!--<mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/>-->
</mutants>
</level>
<!-- LEVEL 7 -->
<level>
<name>Trapped</name>
<description>Level 7: Escape the maze of doors.</description>
<!-- 10, 5 -->
<start x="10" y="5"/>
<time>100000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>40,40,40,40,40,40,40,40,40,34,34,25,40,40,40,40,40,40,40</data>
<data>40,25,25,40,25,34,34,25,34,52,27,25,27,52,25,25,34,34,34</data>
<data>25,34,26,35,31,34,35,33,26,35,26,25,26,32,26,26,26,26,34</data>
<data>25,26,36,26,34,25,52,40,25,40,40,34,34,34,40,25,26,26,34</data>
<data>25,25,52,33,27,33,36,33,35,33,27,32,33,36,32,27,26,25,25</data>
<data>40,40,34,34,26,34,34,25,40,25,26,25,40,25,25,26,25,25,40</data>
<data>40,40,40,34,34,34,40,40,40,25,25,34,40,40,25,25,25,40,40</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,7,1,1,1,7,1,1,1,1,1</data>
<data>1,1,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,6,1,7,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,3,1,3,1,1,1,1,1,1</data>
<data>1,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,1</data>
<data>1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1</data>
<data>1,1,1,2,3,2,2,2,2,2,3,2,2,2,2,3,2,1,1</data>
<data>1,1,1,1,2,1,1,1,1,1,2,1,1,1,1,2,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureUI" x="4" y="2" id="0" goto="10" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="6" y="2" id="1" goto="3" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="7" y="2" id="2" goto="17" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="8" y="2" id="3" goto="5" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="14" y="2" id="4" goto="14" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="15" y="2" id="5" goto="16" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="16" y="2" id="6" goto="9" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureExitUI" x="1" y="3" id="7" goto="-1" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="3" y="3" id="8" goto="13" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="16" y="3" id="9" goto="6" locked="false" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="3" y="4" id="10" goto="0" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="4" y="4" id="11" goto="13" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="5" y="4" id="12" goto="13" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="8" y="4" id="13" goto="8" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="12" y="4" id="14" goto="4" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="14" y="4" id="15" goto="14" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="15" y="4" id="16" goto="5" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="16" y="4" id="17" goto="2" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="10" y="5" id="18" goto="0" locked="true" range="50"/>
</doors>
<switches>
<switch asset="assets.SwitchFutureUI" x="3" y="2" id="0" goto="7" type="door" isOn="false" range="15" canToggle="false"/>
<switch asset="assets.SwitchFutureUI" x="10" y="2" id="1" goto="13" type="door" isOn="false" range="15" canToggle="false"/>
<switch asset="assets.SwitchFutureUI" x="12" y="2" id="2" goto="17" type="door" isOn="false" range="15" canToggle="false"/>
<switch asset="assets.SwitchFutureUI" x="11" y="4" id="3" goto="14" type="door" isOn="false" range="15" canToggle="false"/>
</switches>
<lasers>
<laser asset="assets.LaserFutureUI" x="9" y="2" id="0" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="13" y="2" id="1" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="6" y="4" id="2" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="13" y="4" id="3" isOn="true" range="20" time="2000" move="0" rate="0"/>
</lasers>
<sensors/>
<cameras/>
<guards>
<guard asset="assets.RobotUI" x="10" y="4" id="0" range="60" move="80" rate="0.01" type="robot" points="2500"/>
</guards>
<keypads>
<keypad asset="assets.TerminalFutureUI" x="10" y="1" id="0" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Please do not feed the robots.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="12" y="1" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Standard issue cells cannot hold Magneto.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="2" y="2" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Administration: Door access is becoming a problem. Productivity down 50%.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="17" y="2" id="3" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Spillage on level 4.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="17" y="3" id="4" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Science Department: Robots are severely lacking intelligence.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="4" y="5" id="5" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Administration: Morale needs significant boost. Suggest addition of plants on certain levels.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="15" y="5" id="6" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Robot on level 1 may not be able to see.]]></keypad>
</keypads>
<mutants>
<!-- <mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/> -->
</mutants>
</level>
<!-- LEVEL 8 -->
<level>
<name>Cat’s Shadow</name>
<description>Level 8: Escape the ventilation system.</description>
<!--15 7-->
<start x="15" y="7"/>
<time>1000500</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40</data>
<data>40,27,35,27,40,40,34,34,40,40,40,40,40,40,40,40,40</data>
<data>25,27,34,26,26,27,49,34,25,25,40,40,40,40,40,40,40</data>
<data>25,27,40,25,25,51,28,36,27,25,27,40,34,25,40,40,40</data>
<data>25,27,26,40,40,25,40,34,36,26,26,40,34,27,26,25,40</data>
<data>40,27,34,35,26,27,32,34,52,34,33,26,27,33,25,34,34</data>
<data>40,35,25,34,31,27,40,34,35,34,34,52,46,47,48,27,34</data>
<data>40,40,40,40,25,32,32,26,32,26,26,34,40,34,34,35,40</data>
<data>40,40,40,40,40,40,34,25,25,25,40,40,40,40,40,40,40</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,6,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,6,1,1,1,1,1,1,1</data>
<data>1,1,1,1,7,1,1,1,1,1,1,1,7,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1</data>
<data>1,1,1,1,1,1,6,7,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,1,2,2,3,2,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,1,1,1,2,4,2,3,1,3,1,1,1,1,1,1</data>
<data>1,3,2,1,1,1,1,1,2,2,2,1,1,3,2,1,1</data>
<data>1,3,1,2,2,3,2,1,1,1,2,2,3,2,1,1,1</data>
<data>1,2,1,1,2,3,1,1,1,1,1,1,2,2,2,3,1</data>
<data>1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureUI" x="8" y="3" id="0" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="13" y="4" id="1" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="3" y="5" id="2" goto="0" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="1" y="6" id="3" goto="2" locked="false" range="25"/>
<door asset="assets.DoorDoubleFutureExitUI" x="9" y="7" id="4" goto="-1" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="10" y="3" id="5" goto="6" locked="false" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="3" y="1" id="6" goto="5" locked="true" range="50"/>
</doors>
<switches>
<switch asset="assets.SwitchFutureUI" x="10" y="4" id="0" goto="0" type="sensor" isOn="false" range="15" canToggle="false"/>
<switch asset="assets.SwitchFutureUI" x="5" y="5" id="1" goto="3" type="camera" isOn="false" range="15" canToggle="true"/>
<switch asset="assets.SwitchFutureUI" x="5" y="6" id="2" goto="2" type="laser" isOn="false" range="15" canToggle="true"/>
<switch asset="assets.SwitchFutureUI" x="5" y="7" id="3" goto="5" type="camera" isOn="false" range="15" canToggle="true"/>
<switch asset="assets.SwitchFutureUI" x="10" y="7" id="4" goto="0" type="mutant" isOn="false" range="15" canToggle="false"/>
</switches>
<lasers>
<laser asset="assets.LaserFutureUI" x="7" y="3" id="0" isOn="true" range="20" time="800" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="14" y="6" id="1" isOn="true" range="20" time="1000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="8" y="7" id="2" isOn="true" range="20" time="0" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorBottomUI" x="1" y="3" id="0" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="6" y="3" id="1" isOn="true" range="50" time="4000" attach="bottom"/>
<sensor asset="assets.SensorTopUI" x="1" y="5" id="2" isOn="true" range="50" time="0" attach="top"/>
</sensors>
<cameras>
<camera asset="assets.CameraRightUI" x="1" y="1" id="0" isOn="true" range="200" time="3000" face="left"/>
<camera asset="assets.CameraRightUI" x="9" y="4" id="1" isOn="true" range="200" time="0" face="left"/>
<camera asset="assets.CameraLeftUI" x="13" y="5" id="2" isOn="true" range="200" time="3000" face="right"/>
<camera asset="assets.CameraLeftUI" x="6" y="5" id="3" isOn="false" range="200" time="0" face="right"/>
<camera asset="assets.CameraRightUI" x="4" y="6" id="4" isOn="false" range="200" time="0" face="left"/>
<camera asset="assets.CameraLeftUI" x="6" y="7" id="5" isOn="false" range="200" time="0" face="right"/>
</cameras>
<guards>
<guard asset="assets.RobotUI" x="2" y="1" id="0" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="4" y="2" id="1" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="5" y="2" id="2" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="12" y="5" id="3" range="60" move="80" rate="0.1" type="robot" points="2500"/>
</guards>
<keypads>
<keypad asset="assets.KeypadFutureUI" x="1" y="2" id="0" goto="1" type="camera" isOn="false" range="15" miniGame="MiniGameKeypad" correct="7511" canToggle="false" points="0"><![CDATA[Switch Camera Disabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="3" y="2" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Camera override code: 7511]]></keypad>
<keypad asset="assets.KeypadFutureUI" x="1" y="4" id="2" goto="2" type="sensor" isOn="false" range="15" miniGame="MiniGameKeypad" correct="1157" canToggle="false" points="0"><![CDATA[Manual override accepted.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="2" y="4" id="3" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance report: Please change basement access code to reverse of camera access code.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="14" y="4" id="4" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance report: Wires have been cross-patched. Red is blue, and green is red.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="11" y="5" id="5" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance report: Red wire is faulty on level 2.]]></keypad>
<keypad asset="assets.WiresUI" x="12" y="6" id="6" goto="1" type="door" isOn="false" range="15" miniGame="MiniGameWires" correct="blue" canToggle="false" points="0"><![CDATA[Door security disabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="7" y="7" id="7" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance report: Camera 2 is faulty.]]></keypad>
</keypads>
<mutants>
<mutant asset="assets.Mutant3" x="8" y="6" id="0" goto="4" cutscene="assets.VideoUnlockSequence"/>
</mutants>
</level>
<!-- LEVEL 9 -->
<level>
<name>The Lost Robots</name>
<description>Level 9: Send your regards to administration.</description>
<!-- 11, 3 -->
<start x="11" y="3"/>
<time>100000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>25,40,40,40,40,40,52,25,25,25,25,40,40</data>
<data>34,27,33,33,33,36,33,36,33,35,25,40,40</data>
<data>52,32,36,31,32,31,46,47,48,27,34,52,40</data>
<data>34,27,32,32,36,32,32,26,26,31,34,27,25</data>
<data>34,26,33,32,33,36,33,26,33,36,33,32,25</data>
<data>34,34,34,40,40,25,40,25,40,40,34,34,34</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,1,1,1,7,1,1,6,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,6,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,6,1,1,1,1,1</data>
<data>1,7,7,1,1,1,1,6,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,3,2,2,2,2,2,2,2,2,1,1,1</data>
<data>1,2,2,2,2,2,2,2,2,3,1,1,1</data>
<data>1,3,2,2,2,2,2,2,2,2,1,3,1</data>
<data>1,2,2,2,2,2,2,2,2,2,2,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureExitUI" x="9" y="1" id="0" goto="-1" locked="true" range="25"/>
<door asset="assets.DoorDoubleFutureUI" x="11" y="3" id="1" goto="0" locked="true" range="25"/>
</doors>
<switches/>
<lasers>
<laser asset="assets.LaserFutureUI" x="2" y="2" id="0" isOn="true" range="20" time="800" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="7" y="2" id="1" isOn="true" range="20" time="800" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="6" y="3" id="2" isOn="true" range="20" time="800" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="9" y="4" id="3" isOn="true" range="20" time="800" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorTopUI" x="3" y="1" id="0" isOn="true" range="50" time="900" attach="top"/>
<sensor asset="assets.SensorBottomUI" x="4" y="1" id="1" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="6" y="2" id="2" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="5" y="3" id="3" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="3" y="4" id="4" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorTopUI" x="4" y="4" id="5" isOn="true" range="50" time="900" attach="top"/>
</sensors>
<cameras/>
<guards>
<guard asset="assets.Robot2UI" x="2" y="1" id="0" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="5" y="1" id="1" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="8" y="1" id="2" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="4" y="2" id="3" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="8" y="2" id="4" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="4" y="3" id="5" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.Robot2UI" x="8" y="3" id="6" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="4" y="4" id="7" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="7" y="4" id="8" range="60" move="80" rate="0.01" type="robot" points="2500"/>
</guards>
<keypads>
<keypad asset="assets.KeypadFutureUI" x="3" y="3" id="0" goto="0" type="door" isOn="false" range="15" miniGame="MiniGameKeypad" correct="2449" canToggle="false" points="0"><![CDATA[Administration access granted.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="6" y="4" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Notify Administration about the status of all robots on all decks. Send code 244 and the amount.]]></keypad>
</keypads>
<mutants>
<!--<mutant asset="assets.CharacterMagnetoUI" x="1" y="1" id="0" goto="0" cutscene="assets.VideoUnlockSequence"/>-->
</mutants>
</level>
<!-- LEVEL 10 -->
<level>
<name>Going Rogue</name>
<description>Level 10: Free Rogue. Escape to the surface.</description>
<!-- 13 5 -->
<start x="13" y="5"/>
<time>200000</time>
<map tileSize="118">
<background tileset="assets.tilesBackground" blank="19">
<data>25,25,25,40,40,34,52,40,34,34,34,40,52,34,34</data>
<data>34,26,49,51,27,35,46,47,27,26,28,32,36,26,34</data>
<data>34,26,28,28,26,29,32,26,26,31,31,26,31,26,34</data>
<data>25,27,35,27,52,40,34,26,31,28,26,26,52,40,40</data>
<data>52,27,30,26,28,26,36,28,26,34,34,40,34,25,25</data>
<data>25,33,36,33,36,33,36,33,28,26,49,50,51,26,25</data>
<data>25,25,25,40,40,40,40,34,25,25,25,34,40,34,34</data>
</background>
<foreground tileset="assets.tilesForeground" blank="1">
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,7,1,1,1,1,1,1,6,1,1,1,1,1,1</data>
<data>1,1,1,1,7,1,1,1,6,7,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,6,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,6,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,6,1,1,1,1,1,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</foreground>
<collision>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
<data>1,2,2,2,3,2,2,2,3,2,4,2,2,2,1</data>
<data>1,2,4,4,2,5,2,2,2,2,2,2,2,2,1</data>
<data>1,3,2,3,1,1,1,2,2,4,2,2,1,1,1</data>
<data>1,3,6,2,4,2,2,4,2,1,1,1,1,1,1</data>
<data>1,2,2,2,2,2,2,2,4,2,2,2,2,2,1</data>
<data>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1</data>
</collision>
</map>
<doors>
<door asset="assets.DoorDoubleFutureUI" x="1" y="1" id="0" goto="1" locked="false" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="1" y="3" id="1" goto="0" locked="true" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="7" y="3" id="2" goto="4" locked="false" range="50"/>
<door asset="assets.DoorDoubleFutureExitUI" x="1" y="4" id="3" goto="-1" locked="true" range="50"/> <!-- LOCK -->
<door asset="assets.DoorDoubleFutureUI" x="8" y="4" id="4" goto="2" locked="false" range="50"/>
<door asset="assets.DoorDoubleFutureUI" x="13" y="5" id="5" goto="0" locked="true" range="50"/>
</doors>
<switches>
<switch asset="assets.SwitchFutureUI" x="7" y="1" id="0" goto="2" type="sensor" isOn="false" range="15" canToggle="false"/>
</switches>
<lasers>
<laser asset="assets.LaserFutureUI" x="2" y="1" id="0" isOn="true" range="20" time="1000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="3" y="1" id="1" isOn="true" range="20" time="1000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="12" y="2" id="2" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="10" y="3" id="3" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="3" y="5" id="4" isOn="true" range="20" time="900" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="5" y="5" id="5" isOn="true" range="20" time="900" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="9" y="5" id="6" isOn="true" range="20" time="2000" move="0" rate="0"/>
<laser asset="assets.LaserFutureUI" x="12" y="5" id="7" isOn="true" range="20" time="2000" move="0" rate="0"/>
</lasers>
<sensors>
<sensor asset="assets.SensorTopUI" x="4" y="1" id="0" isOn="true" range="50" time="0" attach="top"/>
<sensor asset="assets.SensorBottomUI" x="9" y="1" id="1" isOn="true" range="50" time="2000" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="10" y="1" id="2" isOn="true" range="50" time="0" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="8" y="2" id="3" isOn="true" range="50" time="2000" attach="bottom"/>
<sensor asset="assets.SensorBottomUI" x="4" y="5" id="4" isOn="true" range="50" time="0" attach="bottom"/>
</sensors>
<cameras>
<camera asset="assets.CameraLeftUI" x="9" y="2" id="0" isOn="true" range="200" time="0" face="right"/>
<camera asset="assets.CameraRightUI" x="10" y="2" id="1" isOn="true" range="200" time="3000" face="left"/>
<camera asset="assets.CameraLeftUI" x="3" y="3" id="2" isOn="true" range="200" time="3000" face="right"/>
<camera asset="assets.CameraRightUI" x="10" y="5" id="3" isOn="true" range="200" time="2000" face="left"/>
</cameras>
<guards>
<guard asset="assets.RobotUI" x="5" y="1" id="0" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="7" y="2" id="1" range="60" move="80" rate="0.01" type="robot" points="2500"/>
<guard asset="assets.RobotUI" x="6" y="4" id="2" range="60" move="80" rate="0.01" type="robot" points="2500"/>
</guards>
<keypads>
<keypad asset="assets.WiresUI" x="11" y="1" id="0" goto="0" type="camera" isOn="false" range="15" miniGame="MiniGameWires" correct="green" canToggle="false" points="500"><![CDATA[Prisoner camera security disabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="13" y="1" id="1" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Weather Report: Partly cloudy with a chance of rain.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="1" y="2" id="2" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Maintenance: Red and blue wires are working at 150% capacity.]]></keypad>
<keypad asset="assets.KeypadUI" x="6" y="2" id="3" goto="0" type="mutant" isOn="false" range="15" miniGame="MiniGameKeypad" correct="9177" canToggle="false" points="1000"><![CDATA[Prisioner cell access code accepted. Level 2 exit door access enabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="13" y="2" id="4" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="1000"><![CDATA[Exit access code: 9177]]></keypad>
<keypad asset="assets.KeypadFutureUI" x="11" y="3" id="5" goto="1" type="door" isOn="false" range="15" miniGame="MiniGameKeypad" correct="5555" canToggle="false" points="1000"><![CDATA[Western top level access door enabled.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="3" y="4" id="6" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="0"><![CDATA[Mind your head.]]></keypad>
<keypad asset="assets.TerminalFutureUI" x="5" y="4" id="7" goto="0" type="null" isOn="false" range="15" miniGame="MiniGameTerminal" canToggle="true" correct="" points="1000"><![CDATA[Top level access code: 5555.]]></keypad>
</keypads>
<mutants>
<mutant asset="assets.Mutant4" x="7" y="2" id="0" goto="3" cutscene="assets.VideoUnlockSequence"/>
</mutants>
</level>
</levels>
;
super();
var _local1:int;
while (_local1 < m_levelsXML.level.length()) {
_levels.push(new LevelXML("", m_levelsXML.level[_local1]));
_local1++;
};
}
public static function get levelNum():int{
return (_levels.length);
}
public static function addLevel(_arg1:LevelXML):void{
if (_levels == null){
_levels = new Array();
};
_levels.push(_arg1);
}
public static function reloadLevel(_arg1:String, _arg2:int, _arg3:Function):void{
var _local4:LevelLoader = new LevelLoader();
_local4.load(_arg1, _arg2, _arg3);
_local4.addEventListener(Event.COMPLETE, onLevelReloaded);
}
private static function onLevelReloaded(_arg1:Event):void{
var _local2:LevelLoader = (_arg1.currentTarget as LevelLoader);
_levels.splice(_local2.index, 0, _local2.level);
_local2.onComplete();
}
public static function getLevel(_arg1:int):LevelXML{
return (_levels[_arg1]);
}
}
}//package
import flash.events.*;
import game.levels.*;
import com.malee.loaders.*;
class LevelLoader extends EventDispatcher {
private var _level:LevelXML;
private var _xmlLoader:XMLLoader;
private var _url:String;
private var onComplete:Function;
private var _index:int;
private function LevelLoader(){
_xmlLoader = new XMLLoader();
}
private function onLoadError(_arg1:IOErrorEvent):void{
trace(("cannot load" + _url));
}
public function get level():LevelXML{
return (_level);
}
private function load(_arg1:String, _arg2:int, _arg3:Function):void{
_url = _arg1;
_index = _arg2;
this.onComplete = _arg3;
_xmlLoader.loadData(_arg1);
_xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
_xmlLoader.addEventListener(Event.COMPLETE, onLevelReloaded, false, 0, true);
}
public function get index():int{
return (_index);
}
private function onLevelReloaded(_arg1:Event):void{
_level = new LevelXML(_url, _xmlLoader.xml);
dispatchEvent(_arg1);
}
}
Section 303
//GameBroadcaster (GameBroadcaster)
package {
import flash.events.*;
public class GameBroadcaster {
private static var eventDispatcher:EventDispatcher;
private static var m_alarm:Boolean = false;
public static function dispatchEvent(_arg1:Event):void{
if (!m_alarm){
if (eventDispatcher){
eventDispatcher.dispatchEvent(_arg1);
};
};
}
public static function set alarm(_arg1:Boolean):void{
m_alarm = _arg1;
}
public static function broadcast(_arg1:Event):void{
trace(("Event Broadcast " + _arg1.type));
dispatchEvent(_arg1);
}
public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{
if (eventDispatcher){
eventDispatcher.removeEventListener(_arg1, _arg2, _arg3);
};
}
public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=true):void{
if (!eventDispatcher){
eventDispatcher = new EventDispatcher();
};
eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
}
}//package
Section 304
//Main (Main)
package {
import flash.events.*;
import flash.display.*;
import console.*;
import net.*;
import org.casalib.util.*;
import com.malee.net.clearspring.*;
public class Main extends Sprite {
private var m_console:Console;
public static var SPONSOR_URL:String;
public static var loadTime:int;
public static var ClearSpring:ClearSpringInterface;
public function Main(){
var _local1:EmbeddedData = new EmbeddedData();
addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage);
}
private function handleOnAddedToStage(_arg1:Event):void{
ClearSpring = new ClearSpringInterface(this);
removeEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage);
StageReference.setStage(stage);
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.quality = StageQuality.MEDIUM;
stage.stageFocusRect = false;
FlashVars.initializeVariables(root);
User.getInstance().createFlashVarsUser(root, true);
m_console = new Console();
addChild(m_console);
Console.GoogleAnalytics.trackEvent("MRD_Escape", "loadGame", "index", loadTime);
}
public function destroy():void{
m_console.destroy();
}
}
}//package
Section 305
//NavButtonUI (NavButtonUI)
package {
import buttons.*;
public dynamic class NavButtonUI extends NavButton {
}
}//package