Section 1
//IScrollBar (basement_core.display.scroll.IScrollBar)
package basement_core.display.scroll {
import flash.display.*;
import flash.events.*;
public interface IScrollBar extends IEventDispatcher {
function setHeight(:Number):void;
function hide():void;
function setPercent(:Number):void;
function setScrollDelta(:int):void;
function getHandle():MovieClip;
function getPercent():Number;
}
}//package basement_core.display.scroll
Section 2
//ScrollEvent (basement_core.display.scroll.ScrollEvent)
package basement_core.display.scroll {
import flash.events.*;
public class ScrollEvent extends Event {
public var percent:Number;
public static const SCROLL:String = "SCROLL";
public function ScrollEvent(type:String="SCROLL", bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package basement_core.display.scroll
Section 3
//ScrollPanel (basement_core.display.scroll.ScrollPanel)
package basement_core.display.scroll {
import flash.display.*;
import flash.events.*;
import gs.*;
public class ScrollPanel extends MovieClip {
private var scrollBar:IScrollBar;
private var initY:Number;
private var currentPercent:Number;// = 0
private var updatePosition:Boolean;
private var autoFocus:Boolean;
private var enabledArrows:Boolean;
private var viewableArea:DisplayObject;
private var initYDiff:Number;
private var content:DisplayObject;
private var scrollableDistance:Number;
private static const KEY_DOWN:int = 40;
private static const KEY_DELTA:int = 5;
private static const KEY_UP:int = 38;
public function ScrollPanel(objectToScroll:DisplayObject, objectMask:DisplayObject, scrollBar:IScrollBar, updatePositionOnRefresh:Boolean=false){
super();
this.autoFocus = true;
this.enabledArrows = false;
this.updatePosition = updatePositionOnRefresh;
this.content = objectToScroll;
this.initY = objectMask.y;
updateDifference();
this.content.mask = objectMask;
this.viewableArea = objectMask;
this.content.addEventListener(MouseEvent.CLICK, onMouseClick);
this.scrollBar = scrollBar;
this.scrollBar.addEventListener(ScrollEvent.SCROLL, onScrollHandler);
this.scrollBar.getHandle().addEventListener(MouseEvent.MOUSE_DOWN, onScrollHandleClick);
this.addEventListener(FocusEvent.FOCUS_IN, onFocusIn);
this.addEventListener(FocusEvent.FOCUS_OUT, onFocusOut);
this.refresh();
}
public function getScrollableDistance():Number{
return (this.scrollableDistance);
}
protected function log(msg:String):void{
trace(("[ScrollPanel] " + msg));
}
private function onScrollHandleClick(e:MouseEvent):void{
setFocus();
}
private function onFocusOut(e:FocusEvent):void{
if (((this.content) && (this.content.stage))){
this.content.stage.removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
if (this.enabledArrows){
this.content.stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
};
};
}
public function refresh(fadeInTime:Number=0, delayIn:Number=0, fadeOutTime:Number=0, delayOut:Number=0, scrollMargin:Number=8, scrollPadding:Number=30):void{
var adjContent:Number;
var adjDist:Number;
if (updatePosition){
this.initY = viewableArea.y;
updateDifference();
};
var adj:Number = this.initYDiff;
if (initY > this.content.y){
adj = 0;
};
this.scrollableDistance = (((this.content.height - this.viewableArea.height) - adj) + scrollMargin);
if (scrollable()){
scrollableDistance = (scrollableDistance + scrollPadding);
this.currentPercent = (-1 * (((this.content.y + this.initYDiff) - this.initY) / this.scrollableDistance));
if (currentPercent > 1){
adjContent = (currentPercent - 1);
adjDist = (this.scrollableDistance * adjContent);
this.content.y = (this.content.y + adjDist);
};
this.scrollBar.setPercent(this.currentPercent);
TweenLite.to(this.scrollBar, fadeInTime, {autoAlpha:1, delay:delayIn});
} else {
TweenLite.to(this.scrollBar, fadeOutTime, {autoAlpha:0, delay:delayOut});
};
}
public function setFocus():void{
this.content.stage.focus = this;
}
private function onScrollHandler(e:ScrollEvent):void{
scrollTo(e.percent);
}
private function onMouseClick(e:MouseEvent):void{
if (this.autoFocus){
e.stopImmediatePropagation();
setFocus();
};
}
private function updateDifference():void{
this.initYDiff = (initY - this.content.y);
}
public function setAutoFocus(flag:Boolean):void{
this.autoFocus = flag;
}
private function scrollTo(percent:Number):void{
if (scrollable()){
this.currentPercent = percent;
this.content.y = (((-(this.scrollableDistance) * percent) + this.initY) - this.initYDiff);
};
}
public function enableArrows(flag:Boolean):void{
this.enabledArrows = flag;
}
private function onKeyDownHandler(e:KeyboardEvent):void{
if (this.scrollable()){
if (e.keyCode == KEY_DOWN){
this.scrollBar.setScrollDelta(-(KEY_DELTA));
} else {
if (e.keyCode == KEY_UP){
this.scrollBar.setScrollDelta(KEY_DELTA);
};
};
};
}
private function onMouseWheel(e:MouseEvent):void{
if (this.scrollable()){
this.scrollBar.setScrollDelta(e.delta);
};
}
public function setScrollPercent(percent:Number):void{
this.scrollBar.setPercent(percent);
this.scrollTo(percent);
}
private function onFocusIn(e:FocusEvent):void{
if (((this.content) && (this.content.stage))){
this.content.stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel);
if (this.enabledArrows){
this.content.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownHandler);
};
};
}
private function scrollable():Boolean{
if (scrollableDistance > 0){
return (true);
};
this.currentPercent = 0;
this.content.y = (this.initY - this.initYDiff);
return (false);
}
}
}//package basement_core.display.scroll
Section 4
//Box (basement_core.display.Box)
package basement_core.display {
import flash.display.*;
public class Box extends MovieClip {
private var borderAlpha:Number;
private var height_Box:Number;
private var borderColor:uint;
private var useBorder:Boolean;
public var fillAlpha:Number;
public var fillColor:uint;
private var borderThickness:Number;
private var width_Box:Number;
public function Box(width:Number=100, height:Number=50){
super();
initVars();
this.width_Box = width;
this.height_Box = height;
this.setBorder(false);
}
public function setEventBlocker(flag:Boolean):void{
this.mouseEnabled = flag;
}
public function draw():void{
this.graphics.clear();
if (this.useBorder){
this.graphics.lineStyle(this.borderThickness, this.borderColor, this.borderAlpha);
};
this.graphics.beginFill(this.fillColor, this.fillAlpha);
this.graphics.drawRect(0, 0, this.width_Box, this.height_Box);
}
override public function get width():Number{
return (this.width_Box);
}
override public function set width(w:Number):void{
this.width_Box = w;
}
override public function set height(h:Number):void{
this.height_Box = h;
}
private function initVars():void{
this.fillColor = 0;
this.fillAlpha = 1;
}
override public function get height():Number{
return (this.height_Box);
}
public function setBorder(flag:Boolean, thickness:Number=NaN, color:uint=0, alpha:Number=1):void{
this.useBorder = flag;
this.borderAlpha = alpha;
this.borderColor = color;
this.borderThickness = thickness;
}
}
}//package basement_core.display
Section 5
//HiScoreServerCalls (classes.zoneout.attract.server.HiScoreServerCalls)
package classes.zoneout.attract.server {
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class HiScoreServerCalls extends EventDispatcher {
private var savedName:String;
private var _mode:String;
private var savedMode:String;
private var savedScore:int;
private var authKey:int;
private var sessionId:int;
private var returnedData:Array;
private var phpURL:String;// = "http://www.knozone.com/game/data-score_"
private var callBack:Function;
private var submitURL:String;// = "http://www.knozone.com/game/izo_addScore.php"
private var main:Main;
private var stage:Stage;
private static const SESSION_MAX:int = 10000;
public function HiScoreServerCalls(){
super();
main = Main.getInstance();
stage = main.getStage();
}
private function getCacheBreaker():String{
return (("&cacheBreaker=" + Math.round((Math.random() * 9999999999)).toString()));
}
private function onRequestKeyFail(e:ErrorEvent):void{
log(("Request Key Fail: " + e.text));
fail();
}
private function reset():void{
this.authKey = -1;
this.sessionId = -2;
this.savedMode = null;
this.savedName = null;
this.savedScore = -1;
}
private function log(msg:String):void{
}
public function submitHiScore(name:String, score:int, mode:String, callBackArg:Function):void{
callBack = callBackArg;
savedName = name;
savedScore = score;
savedMode = mode.toLowerCase();
sessionId = (Math.ceil((Math.random() * (SESSION_MAX - 1))) + 1);
var fullURL:String = submitURL;
var ldr:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest();
req.method = URLRequestMethod.POST;
var data:URLVariables = new URLVariables();
data["session_id"] = sessionId;
req.data = data;
ldr.addEventListener(IOErrorEvent.IO_ERROR, onRequestKeyFail);
ldr.addEventListener(Event.COMPLETE, onRequestKeyComplete);
log(((("Trying URL: " + fullURL) + " with id: ") + sessionId));
req.url = fullURL;
ldr.load(req);
}
private function onLoadError(e:IOErrorEvent):void{
log("Error submitting");
fail();
}
private function submitHiScoreHelper():void{
var fullURL:String = submitURL;
var data:URLVariables = new URLVariables();
data["difficulty"] = savedMode;
data["session_id"] = sessionId;
data["name"] = savedName;
data["score"] = savedScore;
data["authKey"] = authKey;
var ldr:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest();
req.method = URLRequestMethod.POST;
req.data = data;
ldr.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
ldr.addEventListener(Event.COMPLETE, onSubmitComplete);
req.url = fullURL;
log(("SUBMITTING : " + req.url));
ldr.load(req);
}
private function onRequestKeyComplete(e:Event):void{
log("Got Key!");
log(("Data: " + XML(e.target.data).toXMLString()));
log(("Data: " + XML(e.target.data)));
if (((!(e.target.data)) || ((e.target.data == "")))){
log("E DATA WAS NADA.. FAIL");
fail();
return;
};
authKey = int(XML(e.target.data).toString());
log(("INT KEY: " + authKey));
authKey = Math.ceil((((authKey / 3) * 2) + 7));
log(("NEW AUTH KEY: " + authKey));
submitHiScoreHelper();
}
private function onCompleteHandler(e:Event):void{
var name:String;
var score:String;
var xml:XML = XML(e.target.data);
var scoreList:XMLList = xml.score;
returnedData = new Array();
var i:int;
while (i < scoreList.length()) {
name = scoreList[i].name.toString();
score = scoreList[i].child([("score_" + _mode)]).toString();
returnedData.push([name, score]);
i++;
};
log(("RETURNED: " + returnedData));
log(("LENGHT: " + returnedData.length));
callBack(true);
}
override public function toString():String{
return ("HiScoreServerCalls");
}
private function fail():void{
reset();
callBack(false);
}
private function onSubmitComplete(e:Event):void{
log(("What returned? " + e.target.data));
var message:String = e.target.data.toString();
log(("message: " + message));
if (message.indexOf("Unauthorised:") > -1){
callBack(false);
return;
};
callBack(true);
}
public function requestHiScores(mode:String, timeFrame:String, callBackArg:Function):void{
_mode = mode;
var req:URLRequest = new URLRequest();
var scoreVars:URLVariables = new URLVariables();
var fullURL:String = (((phpURL + mode) + ".php?option=") + timeFrame);
req.url = ((fullURL + "&limit=10") + getCacheBreaker());
var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onCompleteHandler);
ldr.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler);
log(("Requesting: " + req.url));
ldr.load(req);
callBack = callBackArg;
}
public function getHiScoreData():Array{
return (returnedData);
}
private function errorEventHandler(e:ErrorEvent):void{
log(e.type);
}
}
}//package classes.zoneout.attract.server
Section 6
//Attract (classes.zoneout.attract.Attract)
package classes.zoneout.attract {
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
import gs.*;
import basement_core.display.scroll.*;
import classes.zoneout.attract.server.*;
import flash.text.*;
import basement_core.display.*;
import gs.plugins.*;
public class Attract {
private var tip2Counter:MovieClip;
private var scrollBar:EmbedScrollBar;
private var sendToAFriendButton:MovieClip;
private var mainMenuButton:MovieClip;
private var genericCnt:int;
private var playerName:String;
private var Slots:MovieClip;
private var stage:Stage;
private var beginLevelOneButton:MovieClip;
private var trackMC:Class;
private var bgTopBar:Sprite;
private var levelOneTipThree:MovieClip;
private var hiScoresButtonXPos:Number;// = 281.15
private var instructionsMask:MovieClip;
private var stepThree:MovieClip;
private var level1Tip1Assets:Sprite;
private var instructionsButton:MovieClip;
private var soundHandler:SoundHandler;
private var scrollPanel:ScrollPanel;
private var button:Sprite;
private var attractMode:MovieClip;
private var playButton_hazardXPos:Number;// = 203
private var buttonMC:Class;
private var track:Sprite;
private var frontLogoXPos:Number;// = 199.7
private var hiScoresButton:MovieClip;
private var transition:Transition;
private var hiScorePlotter:HiScorePlotter;
private var overlay:Box;
private var targetFrame:int;
private var clientLink:MovieClip;
private var submitButton:MovieClip;
private var callBack:Function;
private var challengeFriendButton:MovieClip;
private var frontLogo:MovieClip;
private var hiScoreServerCalls:HiScoreServerCalls;
private var beginLevelTwoButton:MovieClip;
private var attractMask:Sprite;
private var instructionsButtonXPos:Number;// = 277
private var masker:Sprite;
private var levelOneTipTwo:MovieClip;
private var tip:TextField;
private var playButton_normalXPos:Number;// = 168
private var lockedIcon:MovieClip;
private var clientURL:String;// = "http://www.cleanairmatters.org/"
private var instructions:MovieClip;
private var levelOneTipOne:MovieClip;
private var masker1:Sprite;
private var continueButton:MovieClip;
private var sendToAFriend:SendToAFriend;
private var playButton_normal:MovieClip;
private var clientLinkXPos:Number;// = 202
private var unlockedStatusFlag:Boolean;// = false
private var tipOne:Sprite;
private var titleAssetsMC:Class;
private var attractModeMC:Class;
private var sendToAFriendButton_gameComplete:MovieClip;
private var stepTwo:MovieClip;
private var attractMaskMC:Class;
private var sendToAFriendButtonXPos:Number;// = 244
private var playButton_hazard:MovieClip;
private var levelTwoInstructions:MovieClip;
private var airTip:Sprite;
private var main:Main;
private var mainMovie:DisplayObject;
private var stepOne:MovieClip;
private var counter:MovieClip;
private var lockedIconXPos:Number;// = 398
private static const MAX_CHARS:int = 16;
private static const RESTRICT:String = "A-Za-z 0-9";
public function Attract(){
titleAssetsMC = Attract_titleAssetsMC;
attractModeMC = Attract_attractModeMC;
trackMC = Attract_trackMC;
buttonMC = Attract_buttonMC;
attractMaskMC = Attract_attractMaskMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
attractMode = new attractModeMC();
attractMode.gotoAndStop("start");
track = new trackMC();
track.scaleY = 0.8;
button = new buttonMC();
button.x = -2;
this.scrollBar = new EmbedScrollBar();
this.scrollBar.x = 633;
this.scrollBar.y = 115;
this.scrollBar.init(button, track);
this.attractMask = new attractMaskMC();
attractMask.x = 6;
attractMask.y = 8;
playerName = main.getInitObj().getCookies().name;
transition = new Transition();
var titleAssets:Sprite = new titleAssetsMC();
playButton_normal = titleAssets["playButton_normal"];
playButton_normal.gotoAndStop("_up");
playButton_hazard = titleAssets["playButton_hazard"];
playButton_hazard.gotoAndStop(1);
instructionsButton = titleAssets["instructions"];
instructionsButton.gotoAndStop(1);
hiScoresButton = titleAssets["highScores"];
hiScoresButton.gotoAndStop(1);
sendToAFriendButton = titleAssets["challengeFriend"];
sendToAFriendButton.gotoAndStop(1);
clientLink = titleAssets["learnMore"];
clientLink.gotoAndStop(1);
lockedIcon = titleAssets["lock"];
lockedIcon.gotoAndStop(1);
frontLogo = titleAssets["frontLogo"];
}
private function hsNameSelected(e:FocusEvent):void{
var hsName:String = attractMode["hsName"].text;
if (hsName == "NAME"){
attractMode["hsName"].text = "";
};
}
private function scoresSubmited(success:Boolean):void{
killButton(continueButton, continueButton_gameComplete_Pressed);
killButton(sendToAFriendButton_gameComplete, sendToAFriendButton_gameCompletePressed);
if (success == true){
submitButtonPress_init();
} else {
soundHandler.play_rowLost();
};
}
private function attract_kill():void{
houseKeeping();
}
public function restart():void{
transition.transitionRemove(attractMode);
attractMode.gotoAndStop("start");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = titleButtons_init;
initializeFrame();
}
public function init():void{
attractMode.gotoAndStop("start");
attractMode.y = -13;
stage.addChild(attractMode);
stage.addChild(this.attractMask);
attractMode.mask = this.attractMask;
this.overlay = new Box(713, 468);
this.overlay.fillAlpha = 1;
this.overlay.fillColor = 6671615;
this.overlay.draw();
this.overlay.y = -13;
stage.addChild(overlay);
TweenLite.to(overlay, 1, {delay:0.25, autoAlpha:0});
targetFrame = attractMode.currentFrame;
callBack = titleButtons_init;
initializeFrame();
}
private function buttonRollOut(e:MouseEvent):void{
e.target.gotoAndStop("_up");
}
private function continueButton_beginOne_init():void{
mainMenuButton = attractMode["mainMenuButton"];
initButton(mainMenuButton, mainMenu_Pressed);
continueButton = attractMode["continueButton"];
initButton(continueButton, beginLevelOneButton_Pressed);
bgTopBar = attractMode["bgTopBar"];
bgTopBar.alpha = 0;
if (bgTopBar.alpha == 0){
bgTopBar.x = 5.75;
bgTopBar.y = 0;
TweenLite.to(bgTopBar, 0.8, {x:5.75, y:20.45, alpha:1, delay:0.8});
};
}
private function continueButton_gameOver_kill():void{
killButton(continueButton, continueButton_gameOver_Pressed);
}
private function continueButtonPressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
continueButton_levelComplete_kill();
attract_kill();
main.getInitObj().getGameController().nextLevelInit();
}
private function clientLinkButtonPressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
Web.getURL(clientURL, "_blank");
}
private function hiScoresButtonPressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
titleButtons_kill();
attractMode.gotoAndStop("hiScores");
attractMode.x = 700;
transition.transitionAppear(attractMode);
stage.addChild(attractMode);
targetFrame = attractMode.currentFrame;
callBack = hiScorePlotter.init;
initializeFrame();
}
private function sendToAFriendButtonPressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
titleButtons_kill();
attractMode.gotoAndStop("sendToAFriend");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = sendToAFriend.init;
initializeFrame();
}
private function waitOneFrame(e:Event):void{
if (attractMode.currentFrame == targetFrame){
attractMode.removeEventListener(Event.ENTER_FRAME, waitOneFrame);
callBack();
};
}
private function killButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = false;
buttonArg.buttonMode = false;
buttonArg.gotoAndStop(1);
buttonArg.removeEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function buttonRollOver(e:MouseEvent):void{
e.target.gotoAndStop("_over");
}
private function playButton_normalPressed(e:MouseEvent=null):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
titleButtons_kill();
attractMode.gotoAndStop("beginOne");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = continueButton_beginOne_init;
initializeFrame();
}
private function instructionsButtonPressed(e:MouseEvent=null):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
titleButtons_kill();
attractMode.gotoAndStop("help");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = init_instructions;
initializeFrame();
}
public function initTitles():void{
attractMode.gotoAndStop("start");
stage.addChild(attractMode);
targetFrame = attractMode.currentFrame;
callBack = titleButtonsRestart_init;
initializeFrame();
}
public function preInit():void{
hiScoreServerCalls = new HiScoreServerCalls();
hiScorePlotter = new HiScorePlotter(attractMode, transition, hiScoreServerCalls);
sendToAFriend = new SendToAFriend(attractMode, transition);
soundHandler = main.getInitObj().getSoundHandler();
init();
}
private function submitButtonPressed(e:MouseEvent):void{
var hsName:String = attractMode["hsName"].text;
if (hsName == "NAME"){
submitButton.visible = true;
return;
};
submitButton.visible = false;
attractMode["hsName"].removeEventListener(FocusEvent.FOCUS_IN, hsNameSelected);
attractMode["hsName"].removeEventListener(FocusEvent.FOCUS_OUT, hsNameDeselected);
killButton(submitButton, submitButtonPressed);
soundHandler.play_buttonClick();
playerName = hsName;
main.getInitObj().getCookies().name = playerName;
main.getInitObj().getCookies().saveAll();
var mode:String = main.getInitObj().getGameController().gameMode;
hiScoreServerCalls.submitHiScore(playerName, main.getInitObj().getGameController().getScore(), mode, scoresSubmited);
}
private function waitingForLockedIconToDie(e:Event):void{
if (++genericCnt < 50){
return;
};
if (genericCnt == 50){
lockedIcon.gotoAndPlay(1);
};
if (lockedIcon.currentFrame == lockedIcon.totalFrames){
lockedIcon.removeEventListener(Event.ENTER_FRAME, waitingForLockedIconToDie);
attractMode.removeChild(lockedIcon);
lockedIcon.gotoAndStop(1);
initButton(playButton_hazard, playButton_hazardPressed);
};
if (playButton_hazard.alpha < 1){
playButton_hazard.alpha = (playButton_hazard.alpha + 0.1);
};
}
public function gameComplete():void{
attractMode.gotoAndStop("Complete");
transition.transitionLevelAppear(attractMode);
stage.addChild(attractMode);
targetFrame = attractMode.currentFrame;
callBack = continueButton_gameComplete_init;
initializeFrame();
}
private function log(msg:String):void{
trace("[Attract] ", msg);
}
private function initButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = true;
buttonArg.buttonMode = true;
buttonArg.enabled = true;
buttonArg.mouseChildren = true;
buttonArg.gotoAndStop("_up");
buttonArg.addEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function continueButton_gameOver_Pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
continueButton_gameOver_kill();
transition.transitionRemove(attractMode);
restart();
}
public function toString():String{
return ("Attract");
}
private function continueButton_gameComplete_init():void{
continueButton = attractMode["mainMenuButton"];
initButton(continueButton, continueButton_gameComplete_Pressed);
submitButton = attractMode["submitButton"];
initButton(submitButton, submitButtonPressed);
inputTextHandler_init();
sendToAFriendButton_gameComplete = attractMode["sendToAFriendButton_gameComplete"];
initButton(sendToAFriendButton_gameComplete, sendToAFriendButton_gameCompletePressed);
var score:int = main.getInitObj().getGameController().getScore();
var scoreString:String = score.toString();
var leadingZeros:String = "";
var cnt:int = (7 - scoreString.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
attractMode["score"].text = (leadingZeros + scoreString);
}
private function continueButton_levelComplete_init():void{
continueButton = attractMode["continueButton"];
initButton(continueButton, continueButtonPressed);
mainMenuButton = attractMode["mainMenuButton"];
initButton(mainMenuButton, mainMenu_Pressed);
airTip = attractMode["airTip"];
tip = airTip["tip"];
var callouts:Array = new Array();
callouts.push("Leave early to avoid rush hour traffic.");
callouts.push("Take a Sunday walk – not a Sunday drive.");
callouts.push("Install a programmable thermostat.");
callouts.push("Carpool to work, lunch or school.");
callouts.push("Use public transportation.");
callouts.push("Don’t wait at long drive-thru lines.");
callouts.push("Don’t burn trash or leaves.");
callouts.push("Bring your lunch to work or school.");
callouts.push("Turn off lights that aren’t being used");
var n:int = callouts.length;
var r:int = (Math.random() * n);
tip.text = callouts[r].toString();
var levelScore:int = main.getInitObj().getGameController().getLevelScore();
var scoreString:String = levelScore.toString();
var leadingZeros:String = "";
var cnt:int = (7 - scoreString.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
attractMode["score"].text = (leadingZeros + scoreString);
}
private function titleButtons_init():void{
attractMode.addChild(playButton_normal);
initButton(playButton_normal, playButton_normalPressed);
attractMode.addChild(playButton_hazard);
if (main.getInitObj().getGameController().hazardModeUnlockedFlag == true){
if (unlockedStatusFlag == false){
unlockedStatusFlag = true;
playButton_hazard.alpha = 0.5;
genericCnt = 0;
attractMode.addChild(lockedIcon);
lockedIcon.addEventListener(Event.ENTER_FRAME, waitingForLockedIconToDie);
} else {
playButton_hazard.alpha = 1;
initButton(playButton_hazard, playButton_hazardPressed);
};
} else {
playButton_hazard.alpha = 0.5;
attractMode.addChild(lockedIcon);
lockedIcon.gotoAndStop(1);
};
attractMode.addChild(instructionsButton);
initButton(instructionsButton, instructionsButtonPressed);
attractMode.addChild(hiScoresButton);
initButton(hiScoresButton, hiScoresButtonPressed);
attractMode.addChild(sendToAFriendButton);
initButton(sendToAFriendButton, sendToAFriendButtonPressed);
attractMode.addChild(clientLink);
initButton(clientLink, clientLinkButtonPressed);
attractMode.addChild(frontLogo);
}
private function mainMenu_Pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
if (this.mainMenuButton){
killButton(this.mainMenuButton, mainMenu_Pressed);
};
if (continueButton){
killButton(continueButton, beginLevelOneButton_Pressed);
killButton(continueButton, continueButton_gameComplete_Pressed);
};
if (((scrollBar) && (attractMode.contains(scrollBar)))){
attractMode.removeChild(scrollBar);
};
restart();
}
private function init_instructions():void{
mainMenuButton = attractMode["mainMenuButton"];
bgTopBar = attractMode["bgTopBar"];
bgTopBar.alpha = 0;
if (bgTopBar.alpha == 0){
bgTopBar.x = 5.75;
bgTopBar.y = 0;
TweenLite.to(bgTopBar, 0.8, {x:5.75, y:20.45, alpha:1, delay:0.8});
};
attractMode.addChild(scrollBar);
instructionsMask = attractMode["instructionsMask"];
instructions = attractMode["instructions"];
initButton(mainMenuButton, mainMenu_Pressed);
instructions.mask = instructionsMask;
instructions.cacheAsBitmap = true;
instructionsMask.cacheAsBitmap = true;
scrollPanel = new ScrollPanel(instructions, instructionsMask, scrollBar);
this.scrollPanel.enableArrows(true);
scrollPanel.setAutoFocus(false);
scrollPanel.refresh(0, 0, 0, 0, 8, -1100);
attractMode.addChild(scrollPanel);
}
private function sendToAFriendButton_gameCompletePressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
log("send ");
killButton(continueButton, continueButton_gameComplete_Pressed);
killButton(submitButton, submitButtonPressed);
killButton(sendToAFriendButton_gameComplete, sendToAFriendButton_gameCompletePressed);
attractMode["hsName"].removeEventListener(FocusEvent.FOCUS_IN, hsNameSelected);
attractMode["hsName"].removeEventListener(FocusEvent.FOCUS_OUT, hsNameDeselected);
sendtoAFriend_publicCall();
}
private function inputTextHandler_init():void{
var hsName:TextField = attractMode["hsName"];
hsName.restrict = RESTRICT;
hsName.maxChars = MAX_CHARS;
hsName.addEventListener(FocusEvent.FOCUS_IN, hsNameSelected);
hsName.addEventListener(FocusEvent.FOCUS_OUT, hsNameDeselected);
attractMode["hsName"].text = playerName;
}
private function waitTwoFrame(e:Event):void{
if (attractMode.currentFrame == targetFrame){
attractMode.removeEventListener(Event.ENTER_FRAME, waitTwoFrame);
attractMode.addEventListener(Event.ENTER_FRAME, waitOneFrame);
};
}
private function submitButtonPress_init():void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
attractMode.gotoAndStop("hiScores");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = hiScorePlotter.init;
initializeFrame();
}
public function sendtoAFriend_publicCall():void{
attractMode.gotoAndStop("sendToAFriend");
attractMode.x = 700;
transition.transitionAppear(attractMode);
targetFrame = attractMode.currentFrame;
callBack = sendToAFriend.init;
initializeFrame();
}
private function playButton_hazardPressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
titleButtons_kill();
attract_kill();
main.getInitObj().getGameController().startGame("hazard");
}
private function initializeFrame():void{
attractMode.addEventListener(Event.ENTER_FRAME, waitTwoFrame);
}
private function continueButton_gameOver_init():void{
continueButton = attractMode["mainMenuButton"];
initButton(continueButton, continueButton_gameOver_Pressed);
submitButton = attractMode["submitButton"];
initButton(submitButton, submitButtonPressed);
inputTextHandler_init();
sendToAFriendButton_gameComplete = attractMode["sendToAFriendButton_gameComplete"];
initButton(sendToAFriendButton_gameComplete, sendToAFriendButton_gameCompletePressed);
var score:int = main.getInitObj().getGameController().getScore();
var scoreString:String = score.toString();
var leadingZeros:String = "";
var cnt:int = (7 - scoreString.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
attractMode["score"].text = (leadingZeros + scoreString);
}
private function continueButton_gameComplete_kill():void{
killButton(continueButton, continueButton_gameComplete_Pressed);
}
private function continueButton_levelComplete_kill():void{
killButton(continueButton, continueButtonPressed);
}
public function levelComplete(levelArg:int):void{
if (levelArg == 2){
attractMode.gotoAndStop("level2");
transition.transitionLevelAppear(attractMode);
stage.addChild(attractMode);
} else {
if (levelArg == 3){
attractMode.gotoAndStop("level3");
transition.transitionLevelAppear(attractMode);
stage.addChild(attractMode);
} else {
attractMode.gotoAndStop("level4");
transition.transitionLevelAppear(attractMode);
stage.addChild(attractMode);
};
};
targetFrame = attractMode.currentFrame;
callBack = continueButton_levelComplete_init;
initializeFrame();
}
private function beginLevelOneButton_Pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
killButton(mainMenuButton, mainMenu_Pressed);
killButton(continueButton, beginLevelOneButton_Pressed);
attract_kill();
main.getInitObj().getGameController().startGame("normal");
}
private function titleButtonsRestart_init():void{
transition.transtionsTitlesAppear(playButton_normal, playButton_normalXPos);
attractMode.addChild(playButton_normal);
initButton(playButton_normal, playButton_normalPressed);
transition.transtionsTitlesAppear(playButton_hazard, playButton_hazardXPos);
attractMode.addChild(playButton_hazard);
if (main.getInitObj().getGameController().hazardModeUnlockedFlag == true){
if (unlockedStatusFlag == false){
unlockedStatusFlag = true;
playButton_hazard.alpha = 0.5;
genericCnt = 0;
transition.transtionsTitlesAppear(lockedIcon, lockedIconXPos);
attractMode.addChild(lockedIcon);
lockedIcon.addEventListener(Event.ENTER_FRAME, waitingForLockedIconToDie);
} else {
playButton_hazard.alpha = 1;
initButton(playButton_hazard, playButton_hazardPressed);
};
} else {
playButton_hazard.alpha = 0.5;
transition.transtionsTitlesAppear(lockedIcon, lockedIconXPos);
attractMode.addChild(lockedIcon);
lockedIcon.gotoAndStop(1);
};
transition.transtionsTitlesAppear(instructionsButton, instructionsButtonXPos);
attractMode.addChild(instructionsButton);
initButton(instructionsButton, instructionsButtonPressed);
transition.transtionsTitlesAppear(hiScoresButton, hiScoresButtonXPos);
attractMode.addChild(hiScoresButton);
initButton(hiScoresButton, hiScoresButtonPressed);
transition.transtionsTitlesAppear(sendToAFriendButton, sendToAFriendButtonXPos);
attractMode.addChild(sendToAFriendButton);
initButton(sendToAFriendButton, sendToAFriendButtonPressed);
transition.transtionsTitlesAppear(clientLink, clientLinkXPos);
attractMode.addChild(clientLink);
initButton(clientLink, clientLinkButtonPressed);
transition.transtionsTitlesAppear(frontLogo, frontLogoXPos);
attractMode.addChild(frontLogo);
}
private function titleButtons_kill():void{
killButton(playButton_normal, playButton_normalPressed);
attractMode.removeChild(playButton_normal);
killButton(playButton_hazard, playButton_hazardPressed);
attractMode.removeChild(playButton_hazard);
killButton(instructionsButton, instructionsButtonPressed);
attractMode.removeChild(instructionsButton);
killButton(hiScoresButton, hiScoresButtonPressed);
attractMode.removeChild(hiScoresButton);
killButton(sendToAFriendButton, sendToAFriendButtonPressed);
attractMode.removeChild(sendToAFriendButton);
killButton(clientLink, clientLinkButtonPressed);
attractMode.removeChild(clientLink);
attractMode.removeChild(frontLogo);
if (lockedIcon.parent != null){
attractMode.removeChild(lockedIcon);
lockedIcon.removeEventListener(Event.ENTER_FRAME, waitingForLockedIconToDie);
};
}
public function gameOver():void{
attractMode.gotoAndStop("GameOver");
attractMode.x = 700;
transition.transitionLevelAppear(attractMode);
stage.addChild(attractMode);
targetFrame = attractMode.currentFrame;
callBack = continueButton_gameOver_init;
initializeFrame();
}
private function continueButton_gameComplete_Pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
continueButton_gameComplete_kill();
restart();
}
private function hsNameDeselected(e:FocusEvent):void{
var hsName:String = attractMode["hsName"].text;
if (hsName == ""){
attractMode["hsName"].text = "NAME";
};
}
public function houseKeeping():void{
stage.removeChild(attractMode);
}
TweenPlugin.activate([FrameLabelPlugin]);
}
}//package classes.zoneout.attract
Section 7
//Attract_attractMaskMC (classes.zoneout.attract.Attract_attractMaskMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class Attract_attractMaskMC extends SpriteAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout.attract
Section 8
//Attract_attractModeMC (classes.zoneout.attract.Attract_attractModeMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class Attract_attractModeMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_hazard:DisplayObject;
public var cell:DisplayObject;
public var stepOne:DisplayObject;
public var mainMenuButton:DisplayObject;
public var frontLogo:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var bgTopBar:DisplayObject;
public var instructions:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var three:DisplayObject;
public var instructionsMask:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var friendsNameTF:DisplayObject;
public var hsName:DisplayObject;
public var learnMore:DisplayObject;
public var playButton_normal:DisplayObject;
public var yourNameTF:DisplayObject;
public var Masker:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var submitButton:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var two:DisplayObject;
public var airTip:DisplayObject;
public var yourEmailTF:DisplayObject;
public var stepThree:DisplayObject;
public var highScores:DisplayObject;
}
}//package classes.zoneout.attract
Section 9
//Attract_buttonMC (classes.zoneout.attract.Attract_buttonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class Attract_buttonMC extends SpriteAsset {
public var playButton_normal:DisplayObject;
public var five:DisplayObject;
public var Masker:DisplayObject;
public var two:DisplayObject;
public var cloud1:DisplayObject;
public var cloud3:DisplayObject;
public var challengeFriend:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var instructions:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var playButton_hazard:DisplayObject;
public var cloud2:DisplayObject;
public var progressAnim:DisplayObject;
public var lock:DisplayObject;
public var frontLogo:DisplayObject;
public var three:DisplayObject;
public var learnMore:DisplayObject;
public var four:DisplayObject;
}
}//package classes.zoneout.attract
Section 10
//Attract_titleAssetsMC (classes.zoneout.attract.Attract_titleAssetsMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class Attract_titleAssetsMC extends SpriteAsset {
public var playButton_normal:DisplayObject;
public var five:DisplayObject;
public var Masker:DisplayObject;
public var two:DisplayObject;
public var cloud1:DisplayObject;
public var cloud3:DisplayObject;
public var challengeFriend:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var instructions:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var playButton_hazard:DisplayObject;
public var cloud2:DisplayObject;
public var progressAnim:DisplayObject;
public var lock:DisplayObject;
public var frontLogo:DisplayObject;
public var three:DisplayObject;
public var learnMore:DisplayObject;
public var four:DisplayObject;
}
}//package classes.zoneout.attract
Section 11
//Attract_trackMC (classes.zoneout.attract.Attract_trackMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class Attract_trackMC extends SpriteAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout.attract
Section 12
//HiScorePlotter (classes.zoneout.attract.HiScorePlotter)
package classes.zoneout.attract {
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
import gs.*;
import classes.zoneout.attract.server.*;
public class HiScorePlotter {
private var buttonCoverMC:Class;
private var mainMenuButton:MovieClip;
private var allTimeScoreButtonMC:Class;
private var sendToAFriendButton:MovieClip;
private var hiScoreServerCalls:HiScoreServerCalls;
private var mainMenuButtonMC:Class;
private var bgTopBar:Sprite;
private var buttonCover:Sprite;
private var mode:String;// = "normal"
private var gameMode:String;
private var main:Main;
private var soundHandler:SoundHandler;
private var localScoreMC:Class;
private var attractMode:MovieClip;
private var hs_normalModeButtonMC:Class;
private var todaysScoreButtonMC:Class;
private var weekButton:MovieClip;
private var hiScoreTextBoxesMC:Class;
private var monthButton:MovieClip;
private var todayButton:MovieClip;
private var monthScoreButtonMC:Class;
private var transition:Transition;
private var allTimeButton:MovieClip;
private var challengeAFriendButtonMC:Class;
private var callBack:Function;
private var weekScoreButtonMC:Class;
private var hazardModeButton:MovieClip;
private var localScore:Sprite;
private var hs_hazardModeButtonMC:Class;
private var mainMovie:DisplayObject;
private var hiScoreTextBoxes:Sprite;
private var normalModeButton:MovieClip;
private var timeScale:String;// = "all-time"
private var stage:Stage;
public function HiScorePlotter(attractModeArg:MovieClip, transitionArg:Transition, hiScoreServerCallsArg:HiScoreServerCalls){
mainMenuButtonMC = HiScorePlotter_mainMenuButtonMC;
hs_hazardModeButtonMC = HiScorePlotter_hs_hazardModeButtonMC;
hs_normalModeButtonMC = HiScorePlotter_hs_normalModeButtonMC;
buttonCoverMC = HiScorePlotter_buttonCoverMC;
hiScoreTextBoxesMC = HiScorePlotter_hiScoreTextBoxesMC;
allTimeScoreButtonMC = HiScorePlotter_allTimeScoreButtonMC;
monthScoreButtonMC = HiScorePlotter_monthScoreButtonMC;
weekScoreButtonMC = HiScorePlotter_weekScoreButtonMC;
todaysScoreButtonMC = HiScorePlotter_todaysScoreButtonMC;
localScoreMC = HiScorePlotter_localScoreMC;
challengeAFriendButtonMC = HiScorePlotter_challengeAFriendButtonMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
transition = transitionArg;
hiScoreServerCalls = hiScoreServerCallsArg;
soundHandler = main.getInitObj().getSoundHandler();
attractMode = attractModeArg;
buttonCover = new buttonCoverMC();
buttonCover.useHandCursor = false;
buttonCover.buttonMode = true;
hiScoreTextBoxes = new hiScoreTextBoxesMC();
hiScoreTextBoxes.x = 312;
hiScoreTextBoxes.y = 187;
localScore = new localScoreMC();
localScore.x = 400;
localScore.y = 131;
normalModeButton = new hs_normalModeButtonMC();
normalModeButton.x = 264;
normalModeButton.y = 109;
normalModeButton.scaleX = (normalModeButton.scaleY = 1.04);
normalModeButton.gotoAndStop(1);
hazardModeButton = new hs_hazardModeButtonMC();
hazardModeButton.x = 477;
hazardModeButton.y = 109;
hazardModeButton.scaleX = (hazardModeButton.scaleY = 0.85);
hazardModeButton.gotoAndStop(1);
allTimeButton = new allTimeScoreButtonMC();
allTimeButton.x = 156;
allTimeButton.y = 282;
allTimeButton.gotoAndStop(1);
monthButton = new monthScoreButtonMC();
monthButton.x = 156;
monthButton.y = 244;
monthButton.gotoAndStop(1);
weekButton = new weekScoreButtonMC();
weekButton.x = 156;
weekButton.y = 210;
weekButton.gotoAndStop(1);
todayButton = new todaysScoreButtonMC();
todayButton.x = 156;
todayButton.y = 175;
todayButton.gotoAndStop(1);
sendToAFriendButton = new challengeAFriendButtonMC();
sendToAFriendButton.x = 138;
sendToAFriendButton.y = 185;
sendToAFriendButton.gotoAndStop(1);
mainMenuButton = new mainMenuButtonMC();
mainMenuButton.x = 16;
mainMenuButton.y = 30;
mainMenuButton.scaleX = (mainMenuButton.scaleY = 1.5);
mainMenuButton.gotoAndStop(1);
}
private function sendToAFriendButton_pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
houseKeeping();
main.getInitObj().getAttract().sendtoAFriend_publicCall();
}
public function houseKeeping():void{
killButton(mainMenuButton, mainMenuButton_pressed);
attractMode.removeChild(mainMenuButton);
killButton(sendToAFriendButton, sendToAFriendButton_pressed);
attractMode.removeChild(sendToAFriendButton);
attractMode.removeChild(normalModeButton);
attractMode.removeChild(hazardModeButton);
attractMode.removeChild(allTimeButton);
attractMode.removeChild(monthButton);
attractMode.removeChild(weekButton);
attractMode.removeChild(todayButton);
attractMode.removeChild(localScore);
attractMode.removeChild(hiScoreTextBoxes);
killButton(normalModeButton, normalButtonPressed);
killButton(hazardModeButton, hazardButtonPressed);
killButton(allTimeButton, allTimeButtonPressed);
killButton(monthButton, monthlyButtonPressed);
killButton(weekButton, weeklyButtonPressed);
killButton(todayButton, todayButtonPressed);
}
private function populateTable():void{
var hsData:Array = hiScoreServerCalls.getHiScoreData();
var cnt:int;
while (++cnt != 11) {
if ((((((hsData[(cnt - 1)] == null)) || ((hsData[(cnt - 1)][1] == null)))) || ((hsData[(cnt - 1)][1].toString().length == 0)))){
hsData[(cnt - 1)] = ["empty", 0];
};
hiScoreTextBoxes[("name" + cnt)].text = hsData[(cnt - 1)][0];
hiScoreTextBoxes[("score" + cnt)].text = insertLeadingZeros(hsData[(cnt - 1)][1]);
};
}
private function weeklyButtonPressed(e:MouseEvent):void{
killButton(weekButton, weeklyButtonPressed);
soundHandler.play_buttonClick();
TweenLite.to(weekButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:weeklyButtonPressedFinished});
if (timeScale == "all-time"){
allTimeButton.gotoAndStop(1);
TweenLite.to(allTimeButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(allTimeButton, allTimeButtonPressed);
} else {
if (timeScale == "month"){
monthButton.gotoAndStop(1);
TweenLite.to(monthButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(monthButton, monthlyButtonPressed);
} else {
if (timeScale == "today"){
todayButton.gotoAndStop(1);
TweenLite.to(todayButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(todayButton, todayButtonPressed);
};
};
};
timeScale = "week";
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function monthlyButtonPressed(e:MouseEvent):void{
killButton(monthButton, monthlyButtonPressed);
soundHandler.play_buttonClick();
TweenLite.to(monthButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:monthlyButtonPressedFinished});
if (timeScale == "all-time"){
allTimeButton.gotoAndStop(1);
TweenLite.to(allTimeButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(allTimeButton, allTimeButtonPressed);
} else {
if (timeScale == "week"){
weekButton.gotoAndStop(1);
TweenLite.to(weekButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(weekButton, weeklyButtonPressed);
} else {
if (timeScale == "today"){
todayButton.gotoAndStop(1);
TweenLite.to(todayButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(todayButton, todayButtonPressed);
};
};
};
timeScale = "month";
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function todayButtonPressed(e:MouseEvent):void{
killButton(todayButton, todayButtonPressed);
soundHandler.play_buttonClick();
TweenLite.to(todayButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:todayButtonPressedFinished});
if (timeScale == "all-time"){
allTimeButton.gotoAndStop(1);
TweenLite.to(allTimeButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(allTimeButton, allTimeButtonPressed);
} else {
if (timeScale == "month"){
monthButton.gotoAndStop(1);
TweenLite.to(monthButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(monthButton, monthlyButtonPressed);
} else {
if (timeScale == "week"){
weekButton.gotoAndStop(1);
TweenLite.to(weekButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(weekButton, weeklyButtonPressed);
};
};
};
timeScale = "today";
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
public function init():void{
attractMode.addChild(mainMenuButton);
initButton(mainMenuButton, mainMenuButton_pressed);
attractMode.addChild(sendToAFriendButton);
initButton(sendToAFriendButton, sendToAFriendButton_pressed);
attractMode.addChild(hazardModeButton);
attractMode.addChild(normalModeButton);
attractMode.addChild(allTimeButton);
attractMode.addChild(monthButton);
attractMode.addChild(weekButton);
attractMode.addChild(todayButton);
attractMode.addChild(localScore);
localScore.alpha = 0;
attractMode.addChild(hiScoreTextBoxes);
bgTopBar = attractMode["bgTopBar"];
bgTopBar = attractMode["bgTopBar"];
bgTopBar.alpha = 0;
if (bgTopBar.alpha == 0){
bgTopBar.x = 0;
bgTopBar.y = 0;
TweenLite.to(bgTopBar, 0.8, {x:5.95, y:20.45, alpha:1, delay:0.8});
};
setupButtons();
buttonCover.alpha = 0;
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function hazardButtonPressed(e:MouseEvent):void{
killButton(hazardModeButton, hazardButtonPressed);
soundHandler.play_buttonClick();
mode = "hazard";
var savedScore:String = main.getInitObj().getCookies().hazardmode_hiscore.toString();
var leadingZeros:String = "";
var cnt:int = (7 - savedScore.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
localScore["score"].text = (leadingZeros + savedScore);
TweenLite.to(hazardModeButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:hazardPressedFinished});
normalModeButton.gotoAndStop(1);
TweenLite.to(normalModeButton, 0.2, {scaleX:0.85, scaleY:0.85});
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function weeklyButtonPressedFinished():void{
weekButton.gotoAndStop(2);
}
private function allTimeButtonPressedFinished():void{
allTimeButton.gotoAndStop(2);
}
private function allTimeButtonPressed(e:MouseEvent):void{
killButton(allTimeButton, allTimeButtonPressed);
soundHandler.play_buttonClick();
TweenLite.to(allTimeButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:allTimeButtonPressedFinished});
if (timeScale == "week"){
weekButton.gotoAndStop(1);
TweenLite.to(weekButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(weekButton, weeklyButtonPressed);
} else {
if (timeScale == "month"){
monthButton.gotoAndStop(1);
TweenLite.to(monthButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(monthButton, monthlyButtonPressed);
} else {
if (timeScale == "today"){
todayButton.gotoAndStop(1);
TweenLite.to(todayButton, 0.2, {scaleX:0.85, scaleY:0.85});
initButton(todayButton, todayButtonPressed);
};
};
};
timeScale = "all-time";
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function monthlyButtonPressedFinished():void{
monthButton.gotoAndStop(2);
}
private function killButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = false;
buttonArg.buttonMode = false;
buttonArg.gotoAndStop(1);
buttonArg.removeEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function log(msg:String):void{
trace("[HiScorePlotter] ", msg);
}
private function waitOneFrame(e:Event):void{
attractMode.removeEventListener(Event.ENTER_FRAME, waitOneFrame);
callBack();
}
private function insertLeadingZeros(scoreString:String):String{
var leadingZeros:String = "";
var cnt:int = (7 - scoreString.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
return ((leadingZeros + scoreString));
}
private function hazardPressedFinished():void{
hazardModeButton.gotoAndStop(2);
var depth:int = attractMode.getChildIndex(hazardModeButton);
var depth2:int = attractMode.getChildIndex(normalModeButton);
attractMode.setChildIndex(hazardModeButton, depth2);
attractMode.setChildIndex(normalModeButton, depth);
initButton(normalModeButton, normalButtonPressed);
}
private function buttonRollOver(e:MouseEvent):void{
e.target.gotoAndStop(2);
}
private function setupButtons():void{
var depth:int;
var depth2:int;
var savedScore:String;
mode = main.getInitObj().getGameController().gameMode.toString();
if (timeScale == "all-time"){
allTimeButton.scaleX = (allTimeButton.scaleY = 1.04);
allTimeButton.gotoAndStop(2);
monthButton.scaleX = (monthButton.scaleY = 0.85);
weekButton.scaleX = (weekButton.scaleY = 0.85);
todayButton.scaleX = (todayButton.scaleY = 0.85);
initButton(todayButton, todayButtonPressed);
initButton(weekButton, weeklyButtonPressed);
initButton(monthButton, monthlyButtonPressed);
} else {
if (timeScale == "month"){
allTimeButton.scaleX = (allTimeButton.scaleY = 0.85);
monthButton.scaleX = (monthButton.scaleY = 1.04);
monthButton.gotoAndStop(2);
weekButton.scaleX = (weekButton.scaleY = 0.85);
todayButton.scaleX = (todayButton.scaleY = 0.85);
initButton(allTimeButton, allTimeButtonPressed);
initButton(weekButton, weeklyButtonPressed);
initButton(todayButton, todayButtonPressed);
} else {
if (timeScale == "week"){
allTimeButton.scaleX = (allTimeButton.scaleY = 0.85);
monthButton.scaleX = (monthButton.scaleY = 0.85);
weekButton.scaleX = (weekButton.scaleY = 1.04);
weekButton.gotoAndStop(2);
todayButton.scaleX = (todayButton.scaleY = 0.85);
initButton(allTimeButton, allTimeButtonPressed);
initButton(monthButton, monthlyButtonPressed);
initButton(todayButton, todayButtonPressed);
} else {
allTimeButton.scaleX = (allTimeButton.scaleY = 0.85);
monthButton.scaleX = (monthButton.scaleY = 0.85);
weekButton.scaleX = (weekButton.scaleY = 0.85);
todayButton.scaleX = (todayButton.scaleY = 1.04);
todayButton.gotoAndStop(2);
initButton(allTimeButton, allTimeButtonPressed);
initButton(monthButton, monthlyButtonPressed);
initButton(weekButton, weeklyButtonPressed);
};
};
};
if (mode == "normal"){
normalModeButton.scaleX = (normalModeButton.scaleY = 1.04);
hazardModeButton.scaleX = (hazardModeButton.scaleY = 0.85);
initButton(hazardModeButton, hazardButtonPressed);
normalModeButton.gotoAndStop(2);
depth = attractMode.getChildIndex(hazardModeButton);
depth2 = attractMode.getChildIndex(normalModeButton);
if (depth > depth2){
attractMode.setChildIndex(hazardModeButton, depth2);
attractMode.setChildIndex(normalModeButton, depth);
};
savedScore = main.getInitObj().getCookies().normalmode_hiscore.toString();
} else {
if (mode == "hazard"){
normalModeButton.scaleX = (normalModeButton.scaleY = 0.85);
hazardModeButton.scaleX = (hazardModeButton.scaleY = 1.04);
initButton(normalModeButton, normalButtonPressed);
hazardModeButton.gotoAndStop(2);
depth = attractMode.getChildIndex(hazardModeButton);
depth2 = attractMode.getChildIndex(normalModeButton);
if (depth < depth2){
attractMode.setChildIndex(hazardModeButton, depth2);
attractMode.setChildIndex(normalModeButton, depth);
};
savedScore = main.getInitObj().getCookies().hazardmode_hiscore.toString();
};
};
var leadingZeros:String = "";
var cnt:int = (7 - savedScore.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
localScore["score"].text = (leadingZeros + savedScore);
}
private function normalPressedFinished():void{
normalModeButton.gotoAndStop(2);
var depth:int = attractMode.getChildIndex(hazardModeButton);
var depth2:int = attractMode.getChildIndex(normalModeButton);
attractMode.setChildIndex(hazardModeButton, depth2);
attractMode.setChildIndex(normalModeButton, depth);
initButton(hazardModeButton, hazardButtonPressed);
}
private function dataLoaded(success:Boolean):void{
if (buttonCover.parent != null){
attractMode.removeChild(buttonCover);
buttonCover.alpha = 0.8;
};
if (success == true){
populateTable();
} else {
trace(success);
};
}
private function todayButtonPressedFinished():void{
todayButton.gotoAndStop(2);
}
private function initButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = true;
buttonArg.buttonMode = true;
buttonArg.enabled = true;
buttonArg.mouseChildren = true;
buttonArg.gotoAndStop(1);
buttonArg.addEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
public function toString():String{
return ("HiScorePlotter");
}
private function mainMenuButton_pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
houseKeeping();
main.getInitObj().getAttract().restart();
}
private function normalButtonPressed(e:MouseEvent):void{
killButton(normalModeButton, normalButtonPressed);
soundHandler.play_buttonClick();
mode = "normal";
var savedScore:String = main.getInitObj().getCookies().normalmode_hiscore.toString();
var leadingZeros:String = "";
var cnt:int = (7 - savedScore.length);
while (--cnt > -1) {
leadingZeros = (leadingZeros + "0");
};
localScore["score"].text = (leadingZeros + savedScore);
TweenLite.to(normalModeButton, 0.2, {scaleX:1.04, scaleY:1.04, onComplete:normalPressedFinished});
hazardModeButton.gotoAndStop(1);
TweenLite.to(hazardModeButton, 0.2, {scaleX:0.85, scaleY:0.85});
attractMode.addChild(buttonCover);
hiScoreServerCalls.requestHiScores(mode, timeScale, dataLoaded);
}
private function buttonRollOut(e:MouseEvent):void{
e.target.gotoAndStop(1);
}
}
}//package classes.zoneout.attract
Section 13
//HiScorePlotter_allTimeScoreButtonMC (classes.zoneout.attract.HiScorePlotter_allTimeScoreButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_allTimeScoreButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 14
//HiScorePlotter_buttonCoverMC (classes.zoneout.attract.HiScorePlotter_buttonCoverMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_buttonCoverMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 15
//HiScorePlotter_challengeAFriendButtonMC (classes.zoneout.attract.HiScorePlotter_challengeAFriendButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_challengeAFriendButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 16
//HiScorePlotter_hiScoreTextBoxesMC (classes.zoneout.attract.HiScorePlotter_hiScoreTextBoxesMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_hiScoreTextBoxesMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 17
//HiScorePlotter_hs_hazardModeButtonMC (classes.zoneout.attract.HiScorePlotter_hs_hazardModeButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_hs_hazardModeButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 18
//HiScorePlotter_hs_normalModeButtonMC (classes.zoneout.attract.HiScorePlotter_hs_normalModeButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_hs_normalModeButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 19
//HiScorePlotter_localScoreMC (classes.zoneout.attract.HiScorePlotter_localScoreMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_localScoreMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 20
//HiScorePlotter_mainMenuButtonMC (classes.zoneout.attract.HiScorePlotter_mainMenuButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_mainMenuButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 21
//HiScorePlotter_monthScoreButtonMC (classes.zoneout.attract.HiScorePlotter_monthScoreButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_monthScoreButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 22
//HiScorePlotter_todaysScoreButtonMC (classes.zoneout.attract.HiScorePlotter_todaysScoreButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_todaysScoreButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 23
//HiScorePlotter_weekScoreButtonMC (classes.zoneout.attract.HiScorePlotter_weekScoreButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class HiScorePlotter_weekScoreButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name3:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 24
//SendToAFriend (classes.zoneout.attract.SendToAFriend)
package classes.zoneout.attract {
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
import gs.*;
import flash.net.*;
import flash.text.*;
public class SendToAFriend {
private var submitChallengeMC:Class;
private var addFriendButtonMC:Class;
private var mainMenuButton:MovieClip;
private var cookies:Cookies;
private var invalidEmailAddressTF:TextField;
private var mainMenuButtonMC:Class;
private var bgTopBar:Sprite;
private var emailAddressTF:TextField;
private var challengeArray:Array;
private var addFriendButton:MovieClip;
private var main:Main;
private var soundHandler:SoundHandler;
private var friendsNameTF:TextField;
private var attractMode:MovieClip;
private var friendsEmailTF:TextField;
private var submitChallengeButton:MovieClip;
private var yourNameTF:TextField;
private var transition:Transition;
private var invalidFriendEmailTF:TextField;
private var yourEmailTF:TextField;
private var mainMovie:DisplayObject;
private var stage:Stage;
public function SendToAFriend(attractModeArg:MovieClip, transitionArg:Transition){
mainMenuButtonMC = SendToAFriend_mainMenuButtonMC;
submitChallengeMC = SendToAFriend_submitChallengeMC;
addFriendButtonMC = SendToAFriend_addFriendButtonMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
cookies = main.getInitObj().getCookies();
transition = transitionArg;
soundHandler = main.getInitObj().getSoundHandler();
attractMode = attractModeArg;
mainMenuButton = new mainMenuButtonMC();
mainMenuButton.x = 16;
mainMenuButton.y = 30;
mainMenuButton.scaleX = (mainMenuButton.scaleY = 1.5);
mainMenuButton.gotoAndStop("_up");
submitChallengeButton = new submitChallengeMC();
submitChallengeButton.x = 285;
submitChallengeButton.y = 340;
submitChallengeButton.gotoAndStop("_up");
addFriendButton = new addFriendButtonMC();
addFriendButton.x = 610;
addFriendButton.y = 217;
addFriendButton.gotoAndStop("_up");
challengeArray = new Array();
}
private function addFriendsToList(name:String, email:String):void{
emailAddressTF.appendText((((((name + " ") + "[") + email) + "]") + ", "));
}
public function init():void{
attractMode.addChild(mainMenuButton);
initButton(mainMenuButton, mainMenuButton_pressed);
attractMode.addChild(submitChallengeButton);
initButton(submitChallengeButton, submitChallengeButton_pressed);
attractMode.addChild(addFriendButton);
initButton(addFriendButton, addFriendButton_pressed);
friendsEmailTF = attractMode["friendsEmailTF"];
yourEmailTF = attractMode["yourEmailTF"];
friendsNameTF = attractMode["friendsNameTF"];
yourNameTF = attractMode["yourNameTF"];
emailAddressTF = attractMode["emailAddressTF"];
invalidFriendEmailTF = attractMode["invalidFriendEmailTF"];
invalidEmailAddressTF = attractMode["invalidEmailAddressTF"];
bgTopBar = attractMode["bgTopBar"];
bgTopBar = attractMode["bgTopBar"];
bgTopBar.alpha = 0;
if (bgTopBar.alpha == 0){
bgTopBar.x = 5.75;
bgTopBar.y = 0;
TweenLite.to(bgTopBar, 0.8, {x:5.75, y:20.45, alpha:1, delay:0.8});
};
invalidEmailAddressTF.visible = false;
invalidFriendEmailTF.visible = false;
}
private function securityErrorHandler(e:Event):void{
log(("YOU HAVE AN ERROR " + e.type));
}
private function addFriendButton_pressed(e:MouseEvent):void{
var friendEmail:String = friendsEmailTF.text;
if (!invalidEmail(friendEmail)){
log("INVALID FRIEND EMAIL");
invalidFriendEmailTF.visible = true;
} else {
addFriendsToList(friendsNameTF.text, friendsEmailTF.text);
challengeArray.push([friendsNameTF.text, friendsEmailTF.text]);
friendsNameTF.text = "";
friendsEmailTF.text = "";
invalidFriendEmailTF.visible = false;
};
}
private function onCompleteHandler(e:Event):void{
log(("Complete " + e.currentTarget.data));
}
private function submitChallengeButton_pressed(e:MouseEvent):void{
var req:URLRequest;
var unloadRequest:URLRequest;
var fieldForSenderName:String;
var fieldForSenderNormalScore:String;
var fieldForSenderHazardScore:String;
var fieldForChanllegedEmail:String;
var fieldForChallengedName:String;
var phpURL:String;
var endURL:String;
var unloadPhpURL:String;
var unloadPhpURLEnd:String;
var i:int;
var name:String;
var email:String;
var unloadLoader:URLLoader;
var ldr:URLLoader;
var friendEmail:String = friendsEmailTF.text;
var yourEmail:String = yourEmailTF.text;
var yourName:String = yourNameTF.text;
var hiScoreNormal:String = cookies.normalmode_hiscore.toString();
var highScoreNormal:String = main.getInitObj().getGameController().getScore().toString();
log(("This is the HighScore Normal " + hiScoreNormal));
var hiScoreHazard:String = cookies.hazardmode_hiscore.toString();
if (((((((friendsEmailTF.text) && (!((friendsEmailTF.text == ""))))) && (friendsNameTF.text))) && (!((friendsNameTF.text == ""))))){
challengeArray.push([friendsNameTF.text, friendsEmailTF.text]);
};
if (!invalidEmail(yourEmail)){
log("INVALID EMAIL");
invalidEmailAddressTF.visible = true;
if (invalidEmail(friendEmail)){
invalidFriendEmailTF.visible = false;
};
} else {
if (((!(invalidEmail(friendEmail))) && (!((friendEmail.length == 0))))){
log("INVALID FRIEND EMAIL");
invalidFriendEmailTF.visible = true;
if (invalidEmail(yourEmail)){
invalidEmailAddressTF.visible = false;
};
} else {
log("THIS IS A VALID EMAIL");
invalidEmailAddressTF.visible = false;
invalidFriendEmailTF.visible = false;
req = new URLRequest();
unloadRequest = new URLRequest();
fieldForSenderName = "&field[463,0]=";
fieldForSenderNormalScore = "&field[464,0]=";
fieldForSenderHazardScore = "&field[465,0]=";
fieldForChanllegedEmail = "email=&";
fieldForChallengedName = "&name=";
phpURL = "http://server.fatatom.com/12all/box.php?email=";
endURL = "&funcml=add&p=154&nlbox[1]=167";
unloadPhpURL = "http://server.fatatom.com/12all/box.php?email=";
unloadPhpURLEnd = "&funcml=unsub2&p=154&nlbox[1]=167";
while (i < challengeArray.length) {
name = challengeArray[i][0];
email = challengeArray[i][1];
unloadRequest.url = ((unloadPhpURL + email) + unloadPhpURLEnd);
unloadLoader = new URLLoader();
unloadLoader.load(unloadRequest);
req.url = ((((((((((phpURL + email) + fieldForChallengedName) + name) + fieldForSenderName) + yourName) + fieldForSenderNormalScore) + hiScoreNormal) + fieldForSenderHazardScore) + hiScoreHazard) + endURL);
ldr = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onCompleteHandler);
ldr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
ldr.load(req);
i++;
};
challengeArray = [];
friendsEmailTF.text = "";
friendsNameTF.text = "";
yourNameTF.text = "";
yourEmailTF.text = "";
emailAddressTF.text = "";
};
};
}
private function killButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = false;
buttonArg.buttonMode = false;
buttonArg.gotoAndStop(1);
buttonArg.removeEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function buttonRollOver(e:MouseEvent):void{
e.target.gotoAndStop("_over");
}
private function log(msg:String):void{
trace("[SendToAFriend] ", msg);
}
private function invalidEmail(email:String):Boolean{
var regExp:RegExp = /(.+)@(.+)\.(.{3})/;
if (regExp.test(email)){
return (true);
};
regExp = /(.+)@(.+)\.(.{2})/;
if (regExp.test(email)){
return (true);
};
return (false);
}
private function initButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = true;
buttonArg.buttonMode = true;
buttonArg.enabled = true;
buttonArg.mouseChildren = true;
buttonArg.gotoAndStop(1);
buttonArg.addEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
public function toString():String{
return ("SendToAFriend");
}
private function mainMenuButton_pressed(e:MouseEvent):void{
soundHandler.play_buttonClick();
transition.transitionRemove(attractMode);
houseKeeping();
main.getInitObj().getAttract().restart();
}
public function houseKeeping():void{
killButton(mainMenuButton, mainMenuButton_pressed);
attractMode.removeChild(mainMenuButton);
killButton(submitChallengeButton, submitChallengeButton_pressed);
attractMode.removeChild(submitChallengeButton);
killButton(addFriendButton, addFriendButton_pressed);
attractMode.removeChild(addFriendButton);
}
private function buttonRollOut(e:MouseEvent):void{
e.target.gotoAndStop("_up");
}
}
}//package classes.zoneout.attract
Section 25
//SendToAFriend_addFriendButtonMC (classes.zoneout.attract.SendToAFriend_addFriendButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class SendToAFriend_addFriendButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var helpMask:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 26
//SendToAFriend_mainMenuButtonMC (classes.zoneout.attract.SendToAFriend_mainMenuButtonMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class SendToAFriend_mainMenuButtonMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var helpMask:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 27
//SendToAFriend_submitChallengeMC (classes.zoneout.attract.SendToAFriend_submitChallengeMC)
package classes.zoneout.attract {
import flash.display.*;
import mx.core.*;
public class SendToAFriend_submitChallengeMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var helpMask:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout.attract
Section 28
//Card (classes.zoneout.cards.Card)
package classes.zoneout.cards {
import flash.display.*;
public class Card {
public var tempSprite:MovieClip;
public var sprite:MovieClip;
public var pickedUpFlag:Boolean;
private var stage:Stage;
private var cardHandler:CardHandler;
public var numID:int;
private var playField:Sprite;
private var cardMC:Class;
private var main:Main;
private var mainMovie:DisplayObject;
public function Card(playFieldArg:Sprite, numArg:int):void{
cardMC = Card_cardMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
cardHandler = main.getInitObj().getGameController().getCardHandler();
numID = numArg;
playField = playFieldArg;
sprite = new cardMC();
sprite.y = 5;
sprite.gotoAndStop(1);
}
private function log(msg:String):void{
trace(("[Card] " + msg));
}
public function init(xpos:int, weightedColourCards:Array):void{
var pos:int;
var rnd:int = int((Math.random() * 10));
if (rnd > 4.5){
pos = Math.round(((weightedColourCards.length - 1) * Math.random()));
rnd = weightedColourCards[pos];
} else {
rnd = (Math.round((Math.random() * (sprite.totalFrames - 1))) + 1);
};
sprite.gotoAndStop(rnd);
sprite.x = xpos;
if (sprite.parent == null){
playField.addChild(sprite);
};
sprite.visible = true;
pickedUpFlag = false;
}
public function toString():String{
return ("Card");
}
public function collisionCheck(mousePointer:MovieClip):Boolean{
if (sprite.visible == false){
return (false);
};
if (pickedUpFlag == true){
return (false);
};
if (mousePointer.currentFrame != 1){
return (false);
};
if (mousePointer["clickHitAreaMC"].hitTestObject(sprite)){
cardHandler.cardPickedUp(this);
pickedUpFlag = true;
return (true);
};
return (false);
}
public function pickedUpOk():void{
sprite.visible = false;
pickedUpFlag = true;
}
public function houseKeeping():void{
if (sprite.parent != null){
playField.removeChild(sprite);
};
}
public function cardReturned():void{
sprite.visible = true;
pickedUpFlag = false;
}
}
}//package classes.zoneout.cards
Section 29
//Card_cardMC (classes.zoneout.cards.Card_cardMC)
package classes.zoneout.cards {
import flash.display.*;
import mx.core.*;
public class Card_cardMC extends MovieClipAsset {
public var stepOne:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var warning1:DisplayObject;
public var warning2:DisplayObject;
public var warning3:DisplayObject;
public var completedText:DisplayObject;
public var warning5:DisplayObject;
public var warning6:DisplayObject;
public var quitText:DisplayObject;
public var bgImage:DisplayObject;
public var warning4:DisplayObject;
public var score10:DisplayObject;
public var orange:DisplayObject;
public var graphicsContainer:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var fillAnim:DisplayObject;
public var stepThree:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var hitAreaMC:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var yellow:DisplayObject;
public var levelProgressBar:DisplayObject;
public var legendGhost:DisplayObject;
public var timerBar:DisplayObject;
public var red:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var insideBoxTop:DisplayObject;
public var outsideBoxShadow:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var Masker:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var levelText:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var airTip:DisplayObject;
public var branding:DisplayObject;
public var invalidEmailAddressTF:DisplayObject;
public var green:DisplayObject;
public var name1:DisplayObject;
public var name2:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var name8:DisplayObject;
public var name9:DisplayObject;
public var name3:DisplayObject;
public var card:DisplayObject;
public var name6:DisplayObject;
public var name7:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var bgTopBar:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var insideBoxBottom:DisplayObject;
public var darkRed:DisplayObject;
public var timer:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var button_window:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var learnMore:DisplayObject;
public var purple:DisplayObject;
public var backgroundBox:DisplayObject;
public var playButton_normal:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var helpMask:DisplayObject;
public var helpButton:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var score4:DisplayObject;
public var name10:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var outsideBoxYellow:DisplayObject;
}
}//package classes.zoneout.cards
Section 30
//CardHandler (classes.zoneout.cards.CardHandler)
package classes.zoneout.cards {
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
import classes.zoneout.slots.*;
import flash.utils.*;
public class CardHandler {
public var pauseFlag:Boolean;
private var level:int;
private var cardScrollerMaskMC:Class;
private var activeCards:Array;
private var gutter:int;// = 69
private var mainFunc:Function;
private var playField:Sprite;
private var currentCard:Card;
private var gameController:GameController;
private var levelSpeeds:Array;
private var scrollingPlayField:Sprite;
private var main:Main;
private var _speed:int;
private var difficultyTimer:Timer;
private var currentXPos:int;
private var scrollCnt:int;
private var player:Player;
private var cardScroller:Sprite;
private var slotHandler:SlotHandler;
private var mainMovie:DisplayObject;
private var cardScrollerMask:Sprite;
private var stage:Stage;
private static const MIN_SPEED:int = 4;
private static const MAX_SPEED:int = 11;
private static const DIFFICULTY_UP:int = 120000;
public function CardHandler():void{
cardScrollerMaskMC = CardHandler_cardScrollerMaskMC;
levelSpeeds = new Array(3, 3, 4, 4);
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
gameController = main.getInitObj().getGameController();
playField = main.getInitObj().getPlayFieldHandler().cardHolder;
cardScrollerMask = new cardScrollerMaskMC();
cardScrollerMask.x = 8;
cardScrollerMask.y = 364;
cardScrollerMask.cacheAsBitmap = true;
playField.addChild(cardScrollerMask);
scrollingPlayField = new Sprite();
scrollingPlayField.x = 8;
scrollingPlayField.y = cardScrollerMask.y;
scrollingPlayField.cacheAsBitmap = true;
playField.addChild(scrollingPlayField);
scrollingPlayField.mask = cardScrollerMask;
playField.visible = false;
}
private function killTimer():void{
if (difficultyTimer){
this.difficultyTimer.removeEventListener(TimerEvent.TIMER, increaseDifficulty);
this.difficultyTimer.stop();
};
}
private function mainloop_normal():void{
scroll();
}
public function set speed(newSpeed:int):void{
this._speed = newSpeed;
if (speed == 3){
gutter = 69;
} else {
if (speed == 4){
gutter = 68;
} else {
if (speed == 5){
gutter = 70;
} else {
if (speed == 6){
gutter = 72;
} else {
if (speed == 7){
gutter = 77;
} else {
if (speed == 8){
gutter = 80;
} else {
if (speed == 9){
gutter = 81;
} else {
if (speed == 10){
gutter = 80;
} else {
gutter = (speed * 8);
};
};
};
};
};
};
};
};
}
public function init(levelArg:int):void{
if (player == null){
player = gameController.getPlayer();
slotHandler = gameController.getSlotHandler();
};
level = levelArg;
createCards();
resetCards();
speed = levelSpeeds[(level - 1)];
this.difficultyTimer = new Timer(DIFFICULTY_UP);
if (gameController.gameMode == "hazard"){
speed = MIN_SPEED;
this.difficultyTimer.addEventListener(TimerEvent.TIMER, increaseDifficulty);
this.difficultyTimer.start();
};
scrollingPlayField.x = 690;
scrollCnt = ((scrollingPlayField.x + gutter) / speed);
playField.visible = true;
pauseFlag = false;
mainFunc = mainloop_normal;
}
public function houseKeeping():void{
var card:Card;
var len:int = activeCards.length;
var cnt = -1;
while (++cnt != len) {
card = activeCards[cnt];
card.houseKeeping();
};
killTimer();
}
private function increaseDifficulty(e:TimerEvent):void{
if (this.speed < MAX_SPEED){
this.speed++;
log(("INC DEF " + speed));
} else {
log("KILL");
killTimer();
};
}
private function log(msg:String):void{
trace(("[CardHandler] " + msg));
}
public function get speed():int{
return (_speed);
}
private function scroll():void{
var firstCard:Card;
scrollingPlayField.x = (scrollingPlayField.x - speed);
if (--scrollCnt == 0){
scrollCnt = (gutter / speed);
firstCard = activeCards.shift();
firstCard.init(currentXPos, slotHandler.weightedCardColours);
currentXPos = (currentXPos + gutter);
activeCards.push(firstCard);
};
}
private function createCards():void{
var card:Card;
activeCards = new Array();
var cnt = -1;
while (++cnt != 11) {
card = new Card(scrollingPlayField, cnt);
activeCards.push(card);
};
}
private function nop():void{
}
private function resetCards():void{
var card:Card;
var xpos = 8;
var len:int = activeCards.length;
var cnt = -1;
while (++cnt != len) {
card = activeCards[cnt];
card.init(xpos, slotHandler.weightedCardColours);
xpos = (xpos + gutter);
};
currentXPos = xpos;
}
public function mainloop():void{
mainFunc();
}
public function cardPickedUp(cardArg:Card):void{
currentCard = cardArg;
if (player.cardPickedUp(cardArg) == true){
currentCard.pickedUpOk();
};
}
public function collisionCheck(mousePointer:MovieClip):Boolean{
var card:Card;
if (pauseFlag == true){
return (false);
};
var len:int = activeCards.length;
var cnt = -1;
while (++cnt != len) {
card = activeCards[cnt];
if (card.collisionCheck(mousePointer) == true){
return (true);
};
};
return (false);
}
public function toString():String{
return ("CardHandler");
}
}
}//package classes.zoneout.cards
Section 31
//CardHandler_cardScrollerMaskMC (classes.zoneout.cards.CardHandler_cardScrollerMaskMC)
package classes.zoneout.cards {
import flash.display.*;
import mx.core.*;
public class CardHandler_cardScrollerMaskMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_hazard:DisplayObject;
public var cell:DisplayObject;
public var stepOne:DisplayObject;
public var mainMenuButton:DisplayObject;
public var frontLogo:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var bgTopBar:DisplayObject;
public var instructions:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var three:DisplayObject;
public var instructionsMask:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var friendsNameTF:DisplayObject;
public var hsName:DisplayObject;
public var learnMore:DisplayObject;
public var playButton_normal:DisplayObject;
public var yourNameTF:DisplayObject;
public var Masker:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var submitButton:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var two:DisplayObject;
public var airTip:DisplayObject;
public var yourEmailTF:DisplayObject;
public var stepThree:DisplayObject;
public var highScores:DisplayObject;
}
}//package classes.zoneout.cards
Section 32
//CloudHandler (classes.zoneout.effects.CloudHandler)
package classes.zoneout.effects {
import flash.display.*;
import flash.events.*;
public class CloudHandler {
private var stage:Stage;
private var stageWidth:int;
private var cloud3Speed:Number;// = 0.5
private var cloud2Speed:Number;// = 0.3
private var cloud1Speed:Number;// = 0.7
private var mainMovie:DisplayObject;
private var main:Main;
private var cloud1:Sprite;
private var cloud2:Sprite;
private var cloud3:Sprite;
public function CloudHandler(){
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
stageWidth = stage.width;
var background:Sprite = main.getInitObj().getPlayFieldHandler().background;
cloud1 = background["cloud1"];
cloud2 = background["cloud2"];
cloud3 = background["cloud3"];
cloud1.addEventListener(Event.ENTER_FRAME, mainloop);
}
private function mainloop(e:Event):void{
cloud1.x = (cloud1.x - cloud1Speed);
if (cloud1.x < -(cloud1.width)){
cloud1.x = stageWidth;
};
cloud2.x = (cloud2.x - cloud2Speed);
if (cloud2.x < -(cloud2.width)){
cloud2.x = stageWidth;
};
cloud3.x = (cloud3.x - cloud3Speed);
if (cloud3.x < -(cloud3.width)){
cloud3.x = stageWidth;
};
}
public function toString():String{
return ("CloudHandler");
}
}
}//package classes.zoneout.effects
Section 33
//Particle (classes.zoneout.effects.Particle)
package classes.zoneout.effects {
import flash.display.*;
import flash.geom.*;
public class Particle {
private var main:Main;
private var rotSin:Number;
private var sprite:Sprite;
private var gravity:Number;
private var velocityX:Number;
private var velocityY:Number;
private var playField:Sprite;
private var particleMC:Class;
private var rotCos:Number;
private var speedX:Number;
private var speedY:Number;
private var mainMovie:DisplayObject;
private var stage:Stage;
public function Particle(holderSprite:Sprite, pos:Point):void{
particleMC = Particle_particleMC;
super();
playField = holderSprite;
sprite = new particleMC();
playField.addChild(sprite);
sprite.x = pos.x;
sprite.y = pos.y;
speedX = (speedY = ((Math.random() * 10) + 4));
var rndRot:int = (Math.random() * 360);
var rot:Number = ((rndRot / 180) * Math.PI);
rotSin = Math.sin(rot);
rotCos = Math.cos(rot);
velocityX = (rotSin * speedX);
velocityY = (rotCos * speedY);
gravity = 0.6;
}
public function mainloop():String{
sprite.x = (sprite.x + velocityX);
sprite.y = (sprite.y + velocityY);
velocityY = (velocityY + gravity);
sprite.alpha = (sprite.alpha - 0.05);
if (sprite.alpha <= 0){
houseKeeping();
return ("dead");
};
return ("cool");
}
public function toString():String{
return ("Particle");
}
public function houseKeeping():void{
if (sprite.parent != null){
playField.removeChild(sprite);
};
}
}
}//package classes.zoneout.effects
Section 34
//Particle_particleMC (classes.zoneout.effects.Particle_particleMC)
package classes.zoneout.effects {
import flash.display.*;
import mx.core.*;
public class Particle_particleMC extends SpriteAsset {
public var stepOne:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var warning1:DisplayObject;
public var warning2:DisplayObject;
public var warning3:DisplayObject;
public var completedText:DisplayObject;
public var warning5:DisplayObject;
public var warning6:DisplayObject;
public var quitText:DisplayObject;
public var bgImage:DisplayObject;
public var warning4:DisplayObject;
public var score10:DisplayObject;
public var orange:DisplayObject;
public var graphicsContainer:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var fillAnim:DisplayObject;
public var stepThree:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var hitAreaMC:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var yellow:DisplayObject;
public var levelProgressBar:DisplayObject;
public var legendGhost:DisplayObject;
public var timerBar:DisplayObject;
public var red:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var insideBoxTop:DisplayObject;
public var outsideBoxShadow:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var Masker:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var levelText:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var airTip:DisplayObject;
public var branding:DisplayObject;
public var invalidEmailAddressTF:DisplayObject;
public var green:DisplayObject;
public var name1:DisplayObject;
public var name2:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var name8:DisplayObject;
public var name9:DisplayObject;
public var name3:DisplayObject;
public var card:DisplayObject;
public var name6:DisplayObject;
public var name7:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var bgTopBar:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var insideBoxBottom:DisplayObject;
public var darkRed:DisplayObject;
public var timer:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var button_window:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var learnMore:DisplayObject;
public var purple:DisplayObject;
public var backgroundBox:DisplayObject;
public var playButton_normal:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var helpMask:DisplayObject;
public var helpButton:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var score4:DisplayObject;
public var name10:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var outsideBoxYellow:DisplayObject;
}
}//package classes.zoneout.effects
Section 35
//ParticleHandler (classes.zoneout.effects.ParticleHandler)
package classes.zoneout.effects {
import flash.display.*;
import flash.geom.*;
public class ParticleHandler {
private var timerPointsTweenMC:Class;
private var activeParticles:Array;
private var activeSprites:Array;
private var mainMovie:DisplayObject;
private var main:Main;
private var stage:Stage;
public function ParticleHandler():void{
timerPointsTweenMC = ParticleHandler_timerPointsTweenMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
}
public function requestParticle(holderSprite:Sprite, pos:Point):void{
var particle:Particle = new Particle(holderSprite, pos);
activeParticles.push(particle);
}
public function houseKeeping():void{
var mc:MovieClip;
var particle:Particle;
var parent:DisplayObjectContainer;
var cnt = -1;
var len:int = activeSprites.length;
while (++cnt != len) {
mc = activeSprites[cnt];
if (mc.currentFrame == mc.totalFrames){
parent = mc.parent;
parent.removeChild(mc);
};
};
cnt = -1;
len = activeParticles.length;
while (++cnt != len) {
particle = activeParticles[cnt];
particle.houseKeeping();
};
}
public function toString():String{
return ("Player");
}
public function requestPointsTween(holderSprite:Sprite, pos:Point):void{
var particle:Particle;
var tmpSprite:MovieClip = new timerPointsTweenMC();
tmpSprite.x = pos.x;
tmpSprite.y = pos.y;
holderSprite.addChild(tmpSprite);
activeSprites.push(tmpSprite);
var cnt = -1;
while (++cnt != 6) {
particle = new Particle(holderSprite, pos);
activeParticles.push(particle);
};
}
public function mainloop():void{
var mc:MovieClip;
var particle:Particle;
var parent:DisplayObjectContainer;
var cnt = -1;
var len:int = activeSprites.length;
while (++cnt != len) {
mc = activeSprites[cnt];
if (mc.currentFrame == mc.totalFrames){
parent = mc.parent;
parent.removeChild(mc);
activeSprites.splice(cnt, 1);
cnt--;
len--;
};
};
cnt = -1;
len = activeParticles.length;
while (++cnt != len) {
particle = activeParticles[cnt];
if (particle.mainloop() == "dead"){
activeParticles.splice(cnt, 1);
cnt--;
len--;
};
};
}
public function init():void{
activeSprites = new Array();
activeParticles = new Array();
}
}
}//package classes.zoneout.effects
Section 36
//ParticleHandler_timerPointsTweenMC (classes.zoneout.effects.ParticleHandler_timerPointsTweenMC)
package classes.zoneout.effects {
import flash.display.*;
import mx.core.*;
public class ParticleHandler_timerPointsTweenMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_hazard:DisplayObject;
public var cell:DisplayObject;
public var stepOne:DisplayObject;
public var mainMenuButton:DisplayObject;
public var frontLogo:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var bgTopBar:DisplayObject;
public var instructions:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var three:DisplayObject;
public var instructionsMask:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var friendsNameTF:DisplayObject;
public var hsName:DisplayObject;
public var learnMore:DisplayObject;
public var playButton_normal:DisplayObject;
public var yourNameTF:DisplayObject;
public var Masker:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var submitButton:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var two:DisplayObject;
public var airTip:DisplayObject;
public var yourEmailTF:DisplayObject;
public var stepThree:DisplayObject;
public var highScores:DisplayObject;
}
}//package classes.zoneout.effects
Section 37
//Slot (classes.zoneout.slots.Slot)
package classes.zoneout.slots {
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
import gs.*;
import flash.geom.*;
public class Slot {
private var green:MovieClip;
private var mcStorage:Array;
private var amountToAddToTimer:int;
private var unfill_row_num:Number;
private var colourValues:Array;
private var slotMC:Class;
private var stage:Stage;
private var mainFunc:Function;
public var numID:int;
private var playField:Sprite;
private var orange:MovieClip;
private var anim_3row_noneLit:int;// = 9
private var warningFlashDir:String;
private var darkRed:MovieClip;
private var mapXPos:int;
private var warningFlashFlag:Boolean;
private var amountToAddWhenLosingACellInHazardMode:int;// = 30
private var soundHandler:SoundHandler;
private var amountToAddWhenFillingACellInHazardMode:int;// = 40
private var gasFill_startFrame:int;
private var completedFlag:Boolean;
private var gameController:GameController;
private var tickMaster:int;// = 3
private var map:Array;
private var isActiveFlag:Boolean;
private var lowestColourNeeded:int;
private var yellow:MovieClip;
private var anim_1row_noneLit:int;// = 2
private var warningHighlight:Sprite;
private var anim_3row_allLit:int;// = 6
private var level:int;
private var timerBar:MovieClip;
private var gasFill_stopLabel:String;
private var anim_2cell_gasFill_Two:int;// = 51
private var red:MovieClip;
private var vertSpeed:Number;
private var mapYPos:int;
private var animatingSprite_unfill:MovieClip;
private var map_row1:Array;
private var anim_3row_oneLit:int;// = 8
private var tick:int;
private var anim_3cell_gasFill_Two:int;// = 102
private var timerReachedZeroFlag:Boolean;
private var map_row2:Array;
private var map_row3:Array;
private var anim_3cell_gasFill_One:int;// = 76
private var anim_2cell_gasFill_One:int;// = 26
private var gasRemoving_endFrame:int;
private var main:Main;
private var anim_3cell_gasFill_Three:int;// = 127
private var purple:MovieClip;
private var anim_2row_allLit:int;// = 3
private var animatingSprite:MovieClip;
public var sprite:MovieClip;
private var notRunYetFlag:Boolean;
private var collisionMap:Array;
private var currentColourValue:int;
private var internalScore:int;
private var anim_2row_noneLit:int;// = 5
private var rows:int;
private var anim_2row_oneLit:int;// = 4
private var currentHitAreaMC:Sprite;
private var anim_3row_twoLit:int;// = 7
private var mainMovie:DisplayObject;
private var anim_1row_allLit:int;// = 1
public function Slot(playFieldArg:Sprite, numArg:int, levelArg:int):void{
slotMC = Slot_slotMC;
map_row1 = new Array([0], [0], [0], [0], [0], [0]);
map_row2 = new Array([0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]);
map_row3 = new Array([0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]);
colourValues = new Array(1, 2, 3, 4, 5, 6, 6, 6);
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
this.unfill_row_num = -1;
level = levelArg;
gameController = main.getInitObj().getGameController();
soundHandler = main.getInitObj().getSoundHandler();
numID = numArg;
playField = playFieldArg;
sprite = new slotMC();
sprite.y = 60;
sprite.x = (50 + (160 * (numID - 1)));
if (gameController.gameMode == "normal"){
sprite.gotoAndStop(1);
} else {
sprite.gotoAndStop(2);
};
timerBar = sprite["timer"].timerBar;
timerBar.gotoAndStop(1);
darkRed = sprite["darkRed"];
purple = sprite["purple"];
red = sprite["red"];
orange = sprite["orange"];
yellow = sprite["yellow"];
green = sprite["green"];
}
private function findCurrentColourMC(rowArg:int):MovieClip{
switch (rowArg){
case 0:
return (darkRed);
case 1:
return (purple);
case 2:
return (red);
case 3:
return (orange);
case 4:
return (yellow);
default:
break;
};
return (green);
}
public function houseKeeping():void{
mainFunc = nop;
if (sprite.parent != null){
playField.removeChild(sprite);
};
}
public function init(rowsArg:int):void{
var startFrame:int;
rows = rowsArg;
if (rows == 1){
startFrame = anim_1row_noneLit;
map = map_row1;
gasFill_stopLabel = "stop";
if (level == 4){
tickMaster = 2;
};
} else {
if (gameController.gameMode == "hazard"){
if (gameController.completedCnt == 10){
gameController.getHUD().startLevelUpTween();
tickMaster = 2;
} else {
if (gameController.completedCnt == 15){
gameController.getHUD().startLevelUpTween();
tickMaster = 1;
};
};
if (gameController.completedCnt > 10){
if (gameController.completedCnt > 15){
tickMaster = 1;
} else {
tickMaster = 2;
};
};
};
if (rows == 2){
startFrame = anim_2row_noneLit;
map = map_row2;
} else {
startFrame = anim_3row_noneLit;
map = map_row3;
};
};
darkRed.gotoAndStop(startFrame);
purple.gotoAndStop(startFrame);
red.gotoAndStop(startFrame);
orange.gotoAndStop(startFrame);
yellow.gotoAndStop(startFrame);
green.gotoAndStop(startFrame);
sprite["warning1"].alpha = 0;
sprite["warning2"].alpha = 0;
sprite["warning3"].alpha = 0;
sprite["warning4"].alpha = 0;
sprite["warning5"].alpha = 0;
sprite["warning6"].alpha = 0;
animatingSprite = null;
mcStorage = new Array();
mcStorage.push(darkRed["hitAreaMC"], purple["hitAreaMC"], red["hitAreaMC"], orange["hitAreaMC"], yellow["hitAreaMC"], green["hitAreaMC"]);
mapYPos = (mapXPos = 0);
lowestColourNeeded = mapYPos;
currentColourValue = colourValues[mapYPos];
internalScore = (rows * 6);
completedFlag = false;
timerReachedZeroFlag = false;
warningFlashFlag = false;
tick = (amountToAddToTimer = 0);
vertSpeed = 2;
notRunYetFlag = true;
}
public function collisionCheck_droppedCard(cardSprite:MovieClip):Boolean{
var value:int;
var xOffset:int;
var innerCnt:int;
var total:int;
var hitArea:Sprite;
var ypos:int;
var filledRows:int;
var total2:int;
if (completedFlag == true){
return (false);
};
var tempArray:Array = new Array();
var len:int = map.length;
var cnt = -1;
var prevTotal = -1;
while (++cnt != len) {
total = 0;
xOffset = total;
innerCnt = -1;
while (++innerCnt != rows) {
total = (total + map[cnt][xOffset]);
xOffset++;
};
if (total != rows){
if (total == 0){
if (prevTotal == 0){
break;
} else {
tempArray.push([(mcStorage[cnt] as Sprite), (cnt + 1), cnt, total]);
};
} else {
tempArray.push([(mcStorage[cnt] as Sprite), (cnt + 1), cnt, total]);
};
};
prevTotal = total;
};
var cHitArea:Sprite = cardSprite["hitAreaMC"];
len = tempArray.length;
cnt = -1;
while (++cnt != len) {
hitArea = tempArray[cnt][0];
ypos = tempArray[cnt][2];
filledRows = tempArray[cnt][3];
if (cHitArea.hitTestObject(hitArea)){
if (cardSprite["card"].currentFrame == tempArray[cnt][1]){
if (ypos == 0){
cardCorrectlyPlaced(ypos);
updateLowest(ypos, filledRows);
return (true);
};
total = 0;
cnt = -1;
while (++cnt != rows) {
total = (total + map[(ypos - 1)][cnt]);
};
total2 = 0;
cnt = -1;
while (++cnt != rows) {
total2 = (total2 + map[ypos][cnt]);
};
if (total > total2){
cardCorrectlyPlaced(ypos);
updateLowest(ypos, filledRows);
return (true);
};
break;
};
} else {
if (this.lowestColourNeeded > ypos){
this.lowestColourNeeded = ypos;
};
};
};
return (false);
}
public function precompleteThisOneToUseAsALegend():void{
var finalFrame:int;
if (rows == 1){
finalFrame = anim_1row_allLit;
} else {
if (rows == 2){
finalFrame = anim_2row_allLit;
} else {
finalFrame = anim_3row_allLit;
};
};
darkRed.gotoAndStop(finalFrame);
purple.gotoAndStop(finalFrame);
red.gotoAndStop(finalFrame);
orange.gotoAndStop(finalFrame);
yellow.gotoAndStop(finalFrame);
green.gotoAndStop(finalFrame);
darkRed.addEventListener(Event.ENTER_FRAME, waitingForAllGasFillAnimsToFinish);
sprite["legendGhost"].alpha = 0.7;
sprite["timer"].visible = false;
completedFlag = true;
mainFunc = nop;
}
private function mainloop_timerPoints():void{
if (timerBar.currentFrame < (timerBar.totalFrames - 10)){
timerBar.gotoAndStop((timerBar.currentFrame + 10));
gameController.incScore(100);
} else {
gameController.incScore(((timerBar.totalFrames - timerBar.currentFrame) * 100));
timerBar.gotoAndStop(timerBar.totalFrames);
TweenLite.to(sprite, 0.5, {y:stage.height, alpha:0, onComplete:houseKeeping});
main.getInitObj().getGameController().getSlotHandler().slotCompleted(this);
};
}
private function log(msg:String):void{
trace(((("[ Slot ] " + sprite.name) + " ") + msg));
}
public function getNextCardAndTimeRemaining():Object{
if (completedFlag == true){
currentColourValue = -1;
lowestColourNeeded = 0;
return (null);
};
var obj:Object = {timer:timerBar.currentFrame, colour:colourValues[lowestColourNeeded]};
return (obj);
}
private function waitForGasUnFillToFinish(e:Event):void{
if (animatingSprite_unfill != null){
if (animatingSprite_unfill["fillAnim"] != undefined){
if (animatingSprite_unfill["fillAnim"].currentLabel == gasFill_stopLabel){
animatingSprite_unfill.gotoAndStop(gasRemoving_endFrame);
animatingSprite_unfill.removeEventListener(Event.ENTER_FRAME, waitForGasUnFillToFinish);
animatingSprite_unfill = null;
unfill_row_num = -1;
};
};
};
}
private function oneFramePauseBeforeTriggeringGasFillAnim(e:Event):void{
if (animatingSprite != null){
if (animatingSprite["fillAnim"] != undefined){
if (animatingSprite["fillAnim"].currentFrame != gasFill_startFrame){
animatingSprite["fillAnim"].gotoAndPlay(gasFill_startFrame);
} else {
animatingSprite.removeEventListener(Event.ENTER_FRAME, oneFramePauseBeforeTriggeringGasFillAnim);
animatingSprite.addEventListener(Event.ENTER_FRAME, waitForGasFillToFinish);
};
};
};
}
private function waitingForAllGasFillAnimsToFinish(e:Event):void{
if (darkRed["fillAnim"] != undefined){
if (darkRed["fillAnim"].currentLabel == gasFill_stopLabel){
darkRed["fillAnim"].gotoAndStop(gasFill_stopLabel);
purple["fillAnim"].gotoAndStop(gasFill_stopLabel);
red["fillAnim"].gotoAndStop(gasFill_stopLabel);
orange["fillAnim"].gotoAndStop(gasFill_stopLabel);
yellow["fillAnim"].gotoAndStop(gasFill_stopLabel);
green["fillAnim"].gotoAndStop(gasFill_stopLabel);
darkRed.removeEventListener(Event.ENTER_FRAME, waitingForAllGasFillAnimsToFinish);
};
};
}
private function waitForGasFillToFinish(e:Event):void{
if (animatingSprite != null){
if (animatingSprite["fillAnim"] != undefined){
if (animatingSprite["fillAnim"].currentLabel == gasFill_stopLabel){
animatingSprite["fillAnim"].gotoAndStop(gasFill_stopLabel);
animatingSprite.removeEventListener(Event.ENTER_FRAME, waitForGasFillToFinish);
animatingSprite = null;
};
};
};
}
private function cardCorrectlyPlaced(rowCardPlaced:int):void{
if (animatingSprite_unfill != null){
if (unfill_row_num != rowCardPlaced){
animatingSprite_unfill.gotoAndStop(gasRemoving_endFrame);
};
unfill_row_num = -1;
animatingSprite_unfill.removeEventListener(Event.ENTER_FRAME, waitForGasUnFillToFinish);
animatingSprite_unfill = null;
};
var xOffset:int;
var cnt = -1;
while (++cnt != rows) {
if (map[rowCardPlaced][xOffset] == 0){
break;
} else {
xOffset++;
};
};
map[rowCardPlaced][xOffset] = 1;
currentColourValue = colourValues[(rowCardPlaced + 1)];
var currentMC:MovieClip = findCurrentColourMC(rowCardPlaced);
if (animatingSprite != null){
animatingSprite["fillAnim"].gotoAndStop(gasFill_stopLabel);
};
animatingSprite = currentMC;
if (rows == 1){
currentMC.gotoAndStop(anim_1row_allLit);
gasFill_startFrame = 1;
gasFill_stopLabel = "stop";
} else {
if (rows == 2){
if (xOffset == 0){
currentMC.gotoAndStop(anim_2row_oneLit);
gasFill_startFrame = anim_2cell_gasFill_One;
gasFill_stopLabel = "stop2";
} else {
currentMC.gotoAndStop(anim_2row_allLit);
gasFill_startFrame = anim_2cell_gasFill_Two;
gasFill_stopLabel = "stop3";
};
} else {
if (xOffset == 0){
currentMC.gotoAndStop(anim_3row_oneLit);
gasFill_startFrame = anim_3cell_gasFill_One;
gasFill_stopLabel = "stop4";
} else {
if (xOffset == 1){
currentMC.gotoAndStop(anim_3row_twoLit);
gasFill_startFrame = anim_3cell_gasFill_Two;
gasFill_stopLabel = "stop5";
} else {
currentMC.gotoAndStop(anim_3row_allLit);
gasFill_startFrame = anim_3cell_gasFill_Three;
gasFill_stopLabel = "stop6";
};
};
};
};
soundHandler.play_cellFilled();
if (--internalScore == 0){
completedFlag = true;
mainFunc = mainloop_timerPoints;
return;
};
if (gameController.gameMode == "normal"){
amountToAddToTimer = (amountToAddToTimer + 80);
} else {
amountToAddToTimer = (amountToAddToTimer + amountToAddWhenFillingACellInHazardMode);
};
gameController.getParticleHandler().requestPointsTween(sprite, new Point(68, -16));
animatingSprite.addEventListener(Event.ENTER_FRAME, oneFramePauseBeforeTriggeringGasFillAnim);
}
public function toString():String{
return ("Slot");
}
private function loseARow():void{
var total:int;
var innerCnt:int;
mapYPos = -1;
var cnt:int = map.length;
while (--cnt > -1) {
innerCnt = -1;
total = 0;
while (++innerCnt != rows) {
total = (total + map[cnt][innerCnt]);
if (total > 0){
mapYPos = cnt;
};
};
if (mapYPos != -1){
break;
};
};
if (mapYPos == -1){
gameController.gameOver();
return;
};
currentColourValue = colourValues[mapYPos];
this.updateLowest(mapYPos);
var currentMC:MovieClip = findCurrentColourMC(mapYPos);
unfill_row_num = mapYPos;
if (animatingSprite_unfill != null){
animatingSprite_unfill["fillAnim"].gotoAndStop(gasFill_stopLabel);
};
animatingSprite_unfill = currentMC;
if (rows == 1){
gasRemoving_endFrame = anim_1row_noneLit;
gasFill_startFrame = 152;
gasFill_stopLabel = "stop7";
map[mapYPos][0] = 0;
internalScore++;
} else {
mapXPos = 0;
cnt = -1;
while (++cnt != rows) {
mapXPos = (mapXPos + map[mapYPos][cnt]);
};
if (rows == 2){
gasRemoving_endFrame = anim_2row_noneLit;
if (mapXPos == 1){
gasFill_startFrame = 173;
gasFill_stopLabel = "stop8";
map[mapYPos][0] = 0;
internalScore++;
} else {
gasFill_startFrame = 152;
gasFill_stopLabel = "stop7";
map[mapYPos][0] = 0;
map[mapYPos][1] = 0;
internalScore = (internalScore + 2);
};
} else {
gasRemoving_endFrame = anim_3row_noneLit;
if (mapXPos == 1){
gasFill_startFrame = 194;
gasFill_stopLabel = "stop9";
map[mapYPos][0] = 0;
internalScore++;
} else {
if (mapXPos == 2){
gasFill_startFrame = 215;
gasFill_stopLabel = "stop10";
map[mapYPos][0] = 0;
map[mapYPos][1] = 0;
internalScore = (internalScore + 2);
} else {
gasFill_startFrame = 152;
gasFill_stopLabel = "stop7";
map[mapYPos][0] = 0;
map[mapYPos][1] = 0;
map[mapYPos][2] = 0;
internalScore = (internalScore + 3);
};
};
};
};
animatingSprite_unfill["fillAnim"].gotoAndPlay(gasFill_startFrame);
animatingSprite_unfill.addEventListener(Event.ENTER_FRAME, waitForGasUnFillToFinish);
soundHandler.play_rowLost();
if (mapYPos == 0){
gameController.gameOver();
return;
};
if (gameController.gameMode == "normal"){
amountToAddToTimer = (amountToAddToTimer + 50);
main.getInitObj().getGameController().reduceTimer();
} else {
amountToAddToTimer = (amountToAddToTimer + amountToAddWhenLosingACellInHazardMode);
};
}
public function repositionSlot(pos:int):void{
if (isActiveFlag == true){
TweenLite.to(sprite, 1, {x:pos});
} else {
isActiveFlag = true;
notRunYetFlag = false;
mainFunc = mainloop_normal;
sprite.x = stage.width;
playField.addChild(sprite);
TweenLite.to(sprite, 1, {x:pos});
};
}
private function mainloop_normal():void{
var tempYPos:int;
var total:int;
var innerCnt:int;
var cnt:int;
if (amountToAddToTimer > 0){
if (warningFlashFlag == true){
timerBar.alpha = 1;
warningFlashFlag = false;
warningHighlight.alpha = 0;
};
amountToAddToTimer--;
if (timerBar.currentFrame > 1){
timerBar.gotoAndStop((timerBar.currentFrame - 1));
} else {
amountToAddToTimer = 0;
};
tick = 0;
timerReachedZeroFlag = false;
return;
};
if (++tick == tickMaster){
tick = 0;
if (timerBar.currentFrame == timerBar.totalFrames){
if (timerReachedZeroFlag == false){
timerReachedZeroFlag = true;
loseARow();
};
} else {
timerBar.gotoAndStop((timerBar.currentFrame + 1));
if (timerBar.currentFrame > 160){
if (warningFlashFlag == true){
if (warningFlashDir == "down"){
timerBar.alpha = (timerBar.alpha - 0.2);
warningHighlight.alpha = (warningHighlight.alpha + 0.2);
if (timerBar.alpha <= 0.2){
warningFlashDir = "up";
};
} else {
timerBar.alpha = (timerBar.alpha + 0.25);
warningHighlight.alpha = (warningHighlight.alpha - 0.25);
if (timerBar.alpha >= 1){
warningFlashDir = "down";
};
};
} else {
warningFlashFlag = true;
warningFlashDir = "down";
tempYPos = 0;
cnt = map.length;
while (--cnt > -1) {
innerCnt = -1;
total = 0;
while (++innerCnt != rows) {
total = (total + map[cnt][innerCnt]);
if (total > 0){
tempYPos = cnt;
break;
};
};
if (tempYPos == cnt){
break;
};
};
warningHighlight = sprite[("warning" + (tempYPos + 1))];
};
};
};
};
}
public function removeLegend():void{
TweenLite.to(sprite, 0.5, {y:stage.height, alpha:0, onComplete:houseKeeping});
}
public function positionSlot(pos:int):void{
if (pos != -1){
isActiveFlag = true;
notRunYetFlag = false;
mainFunc = mainloop_normal;
sprite.x = pos;
playField.addChild(sprite);
} else {
isActiveFlag = false;
mainFunc = nop;
};
}
private function nop():void{
}
private function updateLowest(yPos:int, filledRows:int=-1):void{
if (this.lowestColourNeeded >= yPos){
if (filledRows >= (rows - 1)){
this.lowestColourNeeded = (yPos + 1);
} else {
this.lowestColourNeeded = yPos;
};
};
}
public function mainloop():void{
mainFunc();
}
public function activate():Boolean{
if (notRunYetFlag == true){
notRunYetFlag = false;
return (true);
};
return (false);
}
public function collisionCheck(cardSprite:MovieClip):Boolean{
var value:int;
var xOffset:int;
var innerCnt:int;
var total:int;
var hitArea:Sprite;
var ypos:int;
var filledRows:int;
var total2:int;
if (completedFlag == true){
return (false);
};
var tempArray:Array = new Array();
var len:int = map.length;
var cnt = -1;
var prevTotal = -1;
while (++cnt != len) {
total = 0;
xOffset = total;
innerCnt = -1;
while (++innerCnt != rows) {
total = (total + map[cnt][xOffset]);
xOffset++;
};
if (total != rows){
if (total == 0){
if (prevTotal == 0){
break;
} else {
tempArray.push([(mcStorage[cnt] as Sprite), (cnt + 1), cnt, total]);
};
} else {
tempArray.push([(mcStorage[cnt] as Sprite), (cnt + 1), cnt, total]);
};
};
prevTotal = total;
};
var cHitArea:Sprite = cardSprite["hitAreaMC"];
len = tempArray.length;
cnt = -1;
while (++cnt != len) {
hitArea = tempArray[cnt][0];
ypos = tempArray[cnt][2];
filledRows = tempArray[cnt][3];
if (cHitArea.hitTestObject(hitArea)){
if (cardSprite.currentFrame == tempArray[cnt][1]){
if (ypos == 0){
cardCorrectlyPlaced(ypos);
updateLowest(ypos, filledRows);
return (true);
};
total = 0;
cnt = -1;
while (++cnt != rows) {
total = (total + map[(ypos - 1)][cnt]);
};
total2 = 0;
cnt = -1;
while (++cnt != rows) {
total2 = (total2 + map[ypos][cnt]);
};
if (total > total2){
cardCorrectlyPlaced(ypos);
updateLowest(ypos, filledRows);
return (true);
};
break;
};
} else {
if (this.lowestColourNeeded > ypos){
this.lowestColourNeeded = ypos;
};
};
};
return (false);
}
}
}//package classes.zoneout.slots
Section 38
//Slot_slotMC (classes.zoneout.slots.Slot_slotMC)
package classes.zoneout.slots {
import flash.display.*;
import mx.core.*;
public class Slot_slotMC extends MovieClipAsset {
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var warning1:DisplayObject;
public var warning2:DisplayObject;
public var warning3:DisplayObject;
public var warning5:DisplayObject;
public var warning6:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var warning4:DisplayObject;
public var score10:DisplayObject;
public var orange:DisplayObject;
public var hsName:DisplayObject;
public var fillAnim:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var hitAreaMC:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var yellow:DisplayObject;
public var levelProgressBar:DisplayObject;
public var legendGhost:DisplayObject;
public var timerBar:DisplayObject;
public var red:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var Masker:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var levelText:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var airTip:DisplayObject;
public var branding:DisplayObject;
public var invalidEmailAddressTF:DisplayObject;
public var green:DisplayObject;
public var name1:DisplayObject;
public var name2:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var name8:DisplayObject;
public var name9:DisplayObject;
public var name3:DisplayObject;
public var card:DisplayObject;
public var name6:DisplayObject;
public var name7:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var bgTopBar:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var darkRed:DisplayObject;
public var timer:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var button_window:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var learnMore:DisplayObject;
public var purple:DisplayObject;
public var playButton_normal:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var helpMask:DisplayObject;
public var helpButton:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var score4:DisplayObject;
public var name10:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var stepOne:DisplayObject;
}
}//package classes.zoneout.slots
Section 39
//SlotHandler (classes.zoneout.slots.SlotHandler)
package classes.zoneout.slots {
import flash.display.*;
import classes.zoneout.*;
import classes.zoneout.cards.*;
public class SlotHandler {
private var slotCompletedFlag:Boolean;
private var totalNumberOfCellsToComplete:int;
private var level:int;
private var legendStillActiveFlag:Boolean;
private var numberOfCellsCompleted:int;
private var mainFunc:Function;
private var playField:Sprite;
private var gameController:GameController;
private var totalNumberOfSlots:int;
private var gameMode:String;
private var runningSlots:Array;
private var main:Main;
private var soundHandler:SoundHandler;
private var numberOfCompletedSlots:int;
private var levelStructure:Array;
private var activeSlots:Array;
public var weightedCardColours:Array;
private var player:Player;
private var completedSlot:Slot;
private var positions:Array;
private var mainMovie:DisplayObject;
private var numberOfRows:int;
private var stage:Stage;
public function SlotHandler():void{
levelStructure = new Array([8, 1], [8, 2], [8, 3], [12, -1]);
weightedCardColours = [1];
positions = new Array([278], [190, 367], [110, 278, 447], [26, 195, 363, 533]);
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
gameController = main.getInitObj().getGameController();
soundHandler = main.getInitObj().getSoundHandler();
playField = main.getInitObj().getPlayFieldHandler().slotHolder;
}
private function mainloop_normal():void{
var slot:Slot;
var lowestTime:int;
var returnedObject:Object;
if (slotCompletedFlag == true){
slotCompletedFlag = false;
if (handleCompletedSlot(completedSlot) == true){
return;
};
};
var weightedObject:Object = {timer:1, colour:1};
var len:int = runningSlots.length;
var cnt = -1;
weightedCardColours = new Array();
while (++cnt != len) {
slot = runningSlots[cnt][1];
slot.mainloop();
returnedObject = slot.getNextCardAndTimeRemaining();
if (!returnedObject){
} else {
weightedCardColours.push(returnedObject.colour);
};
};
if (weightedCardColours.length == 0){
weightedCardColours.push(1);
};
}
public function init(levelArg:int):void{
if (player == null){
player = gameController.getPlayer();
};
level = levelArg;
gameMode = gameController.gameMode;
numberOfCompletedSlots = 0;
numberOfCellsCompleted = 0;
totalNumberOfCellsToComplete = 0;
slotCompletedFlag = false;
completedSlot = null;
createSlots();
resetSlots();
playField.visible = true;
mainFunc = mainloop_normal;
}
private function createSlots():void{
var slot:Slot;
totalNumberOfSlots = levelStructure[(level - 1)][0];
if (gameMode == "hazard"){
totalNumberOfSlots = 100;
};
activeSlots = new Array();
var cnt:int;
while (++cnt != (totalNumberOfSlots + 1)) {
slot = new Slot(playField, cnt, level);
activeSlots.push(slot);
};
}
public function testForCollision(card:Card, cardSprite:MovieClip):Boolean{
var slot:Slot;
var percentage:int;
var collisionFlag:Boolean;
var len:int = runningSlots.length;
var cnt = -1;
while (++cnt != len) {
slot = runningSlots[cnt][1];
if (slot.collisionCheck(cardSprite) == true){
collisionFlag = true;
gameController.incScore(1000, true);
numberOfCellsCompleted++;
percentage = Math.round(((numberOfCellsCompleted / totalNumberOfCellsToComplete) * 100));
gameController.incProgressBar(percentage);
break;
};
};
return (collisionFlag);
}
private function handleCompletedSlot(slot:Slot):Boolean{
var tempID:int;
var legendSlot:Slot;
soundHandler.play_completed();
if (++numberOfCompletedSlots == totalNumberOfSlots){
gameController.levelComplete();
return (true);
};
var slotID:int = slot.numID;
var len:int = runningSlots.length;
var cnt = -1;
while (++cnt != len) {
tempID = runningSlots[cnt][0];
if (tempID == slotID){
runningSlots.splice(cnt, 1);
break;
};
};
if (level == 1){
if (legendStillActiveFlag == true){
legendStillActiveFlag = false;
legendSlot = activeSlots[0];
legendSlot.removeLegend();
runningSlots.splice(0, 1);
};
};
soundHandler.play_whoosh();
var newSlotsCnt:int;
len = activeSlots.length;
cnt = -1;
while (++cnt != len) {
slot = activeSlots[cnt];
if (slot.activate() == true){
runningSlots.push([slot.numID, slot]);
++newSlotsCnt;
if (newSlotsCnt == 2){
break;
} else {
if (runningSlots.length == 4){
break;
};
};
};
};
len = runningSlots.length;
var posStorage:Array = positions[(len - 1)];
var posOffset:int;
cnt = -1;
while (++cnt != len) {
slot = runningSlots[cnt][1];
slot.repositionSlot(posStorage[posOffset]);
posOffset++;
};
return (false);
}
private function resetSlots():void{
var slot:Slot;
var rnd:int;
numberOfRows = levelStructure[(level - 1)][1];
runningSlots = new Array();
var len:int = activeSlots.length;
var cnt = -1;
while (++cnt != len) {
slot = activeSlots[cnt];
if (numberOfRows != -1){
slot.init(numberOfRows);
totalNumberOfCellsToComplete = (totalNumberOfCellsToComplete + (numberOfRows * 6));
} else {
rnd = (Math.round((Math.random() * 2)) + 1);
slot.init(rnd);
totalNumberOfCellsToComplete = (totalNumberOfCellsToComplete + (rnd * 6));
};
};
if (level == 1){
totalNumberOfCellsToComplete = (totalNumberOfCellsToComplete - 6);
};
var posStorage:Array = positions[1];
if (gameMode == "hazard"){
posStorage = positions[3];
};
var posOffset:int;
cnt = -1;
while (++cnt != len) {
slot = activeSlots[cnt];
if (posOffset == posStorage.length){
slot.positionSlot(-1);
} else {
slot.positionSlot(posStorage[posOffset]);
posOffset++;
runningSlots.push([slot.numID, slot]);
};
};
if (level == 1){
legendStillActiveFlag = true;
slot = activeSlots[0];
slot.precompleteThisOneToUseAsALegend();
numberOfCompletedSlots++;
};
soundHandler.play_whoosh();
}
private function log(msg:String):void{
trace(("[SlotHandler] " + msg));
}
public function getNumberOfCompletedSlots():int{
return (this.numberOfCompletedSlots);
}
public function testForCollision_droppedCard(card:Card, cardSprite:MovieClip):Boolean{
var slot:Slot;
var percentage:int;
var collisionFlag:Boolean;
var len:int = runningSlots.length;
var cnt = -1;
while (++cnt != len) {
slot = runningSlots[cnt][1];
if (slot.collisionCheck_droppedCard(cardSprite) == true){
collisionFlag = true;
gameController.incScore(1000, true);
numberOfCellsCompleted++;
percentage = Math.round(((numberOfCellsCompleted / totalNumberOfCellsToComplete) * 100));
gameController.incProgressBar(percentage);
break;
};
};
return (collisionFlag);
}
public function mainloop():void{
mainFunc();
}
private function nop():void{
}
public function toString():String{
return ("SlotHandler");
}
public function slotCompleted(slot:Slot):void{
slotCompletedFlag = true;
completedSlot = slot;
if (gameMode == "hazard"){
gameController.incCompletedSlots();
};
}
public function houseKeeping():void{
var slot:Slot;
runningSlots = new Array();
var len:int = activeSlots.length;
var cnt = -1;
while (++cnt != len) {
slot = activeSlots[cnt];
slot.houseKeeping();
};
}
}
}//package classes.zoneout.slots
Section 40
//Console (classes.zoneout.Console)
package classes.zoneout {
import flash.display.*;
import gs.*;
import flash.geom.*;
public class Console extends Sprite {
private var container:Sprite;
public var console_hazardMC:Class;
private var bgImage:Sprite;
private var container_hazard:Sprite;
private var scaledObjects_hazard:Array;
private var playField:Sprite;
public var consoleMC:Class;
private var graphicsContainer:Sprite;
private var insideBoxBottom_hazard:Sprite;
private var insideBoxBottom:Sprite;
private var graphicsContainer_hazard:Sprite;
private var backgroundBox:Sprite;
private var insideBoxTop:Sprite;
private var _height:Number;
private var outsideBoxShadow:Sprite;
private var insideBoxTop_hazard:Sprite;
private var scaleRect:Rectangle;
private var backgroundBox_hazard:Sprite;
private var initHeight:Number;
private var scaledObjects:Array;
private var outsideBoxShadow_hazard:Sprite;
private var opened:Boolean;
private var outsideBoxYellow_hazard:Sprite;
private var outsideBoxYellow:Sprite;
public function Console(hudSprite:Sprite){
consoleMC = Console_consoleMC;
console_hazardMC = Console_console_hazardMC;
super();
playField = hudSprite;
initDisplayObjects();
initVars();
openNoTween();
}
private function openNoTween():void{
this.opened = true;
this.height = 470;
bgImage.scaleY = 1;
bgImage.y = -63;
bgImage.alpha = 0.55;
}
public function isOpen():Boolean{
return (this.opened);
}
private function initDisplayObjects():void{
this.container = new consoleMC();
this.container.x = 1;
this.container.y = 482;
this.graphicsContainer = this.container["graphicsContainer"];
this.insideBoxTop = this.container["insideBoxTop"];
this.insideBoxBottom = this.container["insideBoxBottom"];
this.outsideBoxShadow = this.container["outsideBoxShadow"];
this.outsideBoxYellow = this.container["outsideBoxYellow"];
this.backgroundBox = this.container["backgroundBox"];
this.bgImage = this.container["bgImage"];
this.container_hazard = new console_hazardMC();
this.container_hazard.x = 1;
this.container_hazard.y = 482;
this.graphicsContainer_hazard = this.container_hazard["graphicsContainer"];
this.insideBoxTop_hazard = this.container_hazard["insideBoxTop"];
this.insideBoxBottom_hazard = this.container_hazard["insideBoxBottom"];
this.outsideBoxShadow_hazard = this.container_hazard["outsideBoxShadow"];
this.outsideBoxYellow_hazard = this.container_hazard["outsideBoxYellow"];
this.backgroundBox_hazard = this.container_hazard["backgroundBox"];
this.initHeight = container.height;
this.initHeight = container_hazard.height;
playField.addChild(this.container_hazard);
this.container_hazard.visible = false;
playField.addChild(this.container);
}
override public function get height():Number{
return (_height);
}
private function log(msg:String):void{
trace("[Console] ", msg);
}
public function open():void{
if (!this.isOpen()){
this.opened = true;
TweenLite.killTweensOf(this);
TweenLite.to(this, 0.5, {height:470});
TweenLite.to(bgImage, 0.55, {scaleY:1, alpha:0.55});
};
}
override public function set height(value:Number):void{
var i:int;
var mc:Sprite;
var mch:Sprite;
_height = value;
var l:int = this.scaledObjects.length;
while (i < l) {
mc = this.scaledObjects[i];
mc.height = value;
i++;
};
var lnt:int = this.scaledObjects_hazard.length;
i = 0;
while (i < lnt) {
mch = this.scaledObjects_hazard[i];
mch.height = value;
i++;
};
}
private function initVars():void{
var i:int;
var mc:Sprite;
var mch:Sprite;
this.opened = false;
this.scaleRect = new Rectangle(20, -101, 660, 20);
this.scaledObjects = new Array();
this.scaledObjects = [graphicsContainer, insideBoxTop, insideBoxBottom, outsideBoxShadow, outsideBoxYellow, backgroundBox];
var l:int = this.scaledObjects.length;
while (i < l) {
mc = this.scaledObjects[i];
mc.scale9Grid = this.scaleRect;
i++;
};
this.scaledObjects_hazard = new Array();
this.scaledObjects_hazard = [graphicsContainer_hazard, insideBoxTop_hazard, insideBoxBottom_hazard, outsideBoxShadow_hazard, outsideBoxYellow_hazard, backgroundBox_hazard];
l = this.scaledObjects_hazard.length;
i = 0;
while (i < l) {
mch = this.scaledObjects_hazard[i];
mch.scale9Grid = this.scaleRect;
i++;
};
}
public function close():void{
if (this.isOpen()){
this.opened = false;
TweenLite.killTweensOf(this);
TweenLite.to(this, 0.5, {height:initHeight});
TweenLite.to(bgImage, 0, {scaleY:0.15, alpha:0.2});
};
}
}
}//package classes.zoneout
Section 41
//Console_console_hazardMC (classes.zoneout.Console_console_hazardMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Console_console_hazardMC extends SpriteAsset {
public var stepOne:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var warning1:DisplayObject;
public var warning2:DisplayObject;
public var warning3:DisplayObject;
public var completedText:DisplayObject;
public var warning5:DisplayObject;
public var warning6:DisplayObject;
public var quitText:DisplayObject;
public var bgImage:DisplayObject;
public var warning4:DisplayObject;
public var score10:DisplayObject;
public var orange:DisplayObject;
public var graphicsContainer:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var fillAnim:DisplayObject;
public var stepThree:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var hitAreaMC:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var yellow:DisplayObject;
public var levelProgressBar:DisplayObject;
public var legendGhost:DisplayObject;
public var timerBar:DisplayObject;
public var red:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var insideBoxTop:DisplayObject;
public var outsideBoxShadow:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var Masker:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var levelText:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var airTip:DisplayObject;
public var branding:DisplayObject;
public var invalidEmailAddressTF:DisplayObject;
public var green:DisplayObject;
public var name1:DisplayObject;
public var name2:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var name8:DisplayObject;
public var name9:DisplayObject;
public var name3:DisplayObject;
public var card:DisplayObject;
public var name6:DisplayObject;
public var name7:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var bgTopBar:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var insideBoxBottom:DisplayObject;
public var darkRed:DisplayObject;
public var timer:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var button_window:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var learnMore:DisplayObject;
public var purple:DisplayObject;
public var backgroundBox:DisplayObject;
public var playButton_normal:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var helpMask:DisplayObject;
public var helpButton:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var score4:DisplayObject;
public var name10:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var outsideBoxYellow:DisplayObject;
}
}//package classes.zoneout
Section 42
//Console_consoleMC (classes.zoneout.Console_consoleMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Console_consoleMC extends SpriteAsset {
public var stepOne:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var warning1:DisplayObject;
public var warning2:DisplayObject;
public var warning3:DisplayObject;
public var completedText:DisplayObject;
public var warning5:DisplayObject;
public var warning6:DisplayObject;
public var quitText:DisplayObject;
public var bgImage:DisplayObject;
public var warning4:DisplayObject;
public var score10:DisplayObject;
public var orange:DisplayObject;
public var graphicsContainer:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var fillAnim:DisplayObject;
public var stepThree:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var hitAreaMC:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var yellow:DisplayObject;
public var levelProgressBar:DisplayObject;
public var legendGhost:DisplayObject;
public var timerBar:DisplayObject;
public var red:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var insideBoxTop:DisplayObject;
public var outsideBoxShadow:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var Masker:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var levelText:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var airTip:DisplayObject;
public var branding:DisplayObject;
public var invalidEmailAddressTF:DisplayObject;
public var green:DisplayObject;
public var name1:DisplayObject;
public var name2:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var name8:DisplayObject;
public var name9:DisplayObject;
public var name3:DisplayObject;
public var card:DisplayObject;
public var name6:DisplayObject;
public var name7:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var bgTopBar:DisplayObject;
public var four:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var insideBoxBottom:DisplayObject;
public var darkRed:DisplayObject;
public var timer:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var button_window:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var instructions:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var learnMore:DisplayObject;
public var purple:DisplayObject;
public var backgroundBox:DisplayObject;
public var playButton_normal:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var helpMask:DisplayObject;
public var helpButton:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var score4:DisplayObject;
public var name10:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var outsideBoxYellow:DisplayObject;
}
}//package classes.zoneout
Section 43
//Cookies (classes.zoneout.Cookies)
package classes.zoneout {
import flash.net.*;
public class Cookies {
private var sharedObject:SharedObject;
public var cookiesLoadedFlag:Boolean;// = false
public var name:String;// = "NAME"
public var hazardModeUnlocked:Boolean;// = false
public var volume:Number;// = 1
public var normalmode_hiscore:int;// = 0
public var hazardmode_hiscore:int;// = 0
public function Cookies(){
super();
sharedObject = SharedObject.getLocal("gywPresentsZoneOut");
if (sharedObject.data["volume"] == null){
createFile();
} else {
loadAll();
};
}
private function createFile():void{
saveAll();
cookiesLoadedFlag = true;
}
public function saveAll():void{
sharedObject.data["volume"] = volume;
sharedObject.data["name"] = name;
sharedObject.data["normalmode_hiscore"] = normalmode_hiscore;
sharedObject.data["hazardmode_hiscore"] = hazardmode_hiscore;
sharedObject.data["hazardModeUnlocked"] = hazardModeUnlocked;
sharedObject.flush();
}
public function loadAll():void{
volume = sharedObject.data["volume"];
name = sharedObject.data["name"];
normalmode_hiscore = sharedObject.data["normalmode_hiscore"];
hazardmode_hiscore = sharedObject.data["hazardmode_hiscore"];
hazardModeUnlocked = sharedObject.data["hazardModeUnlocked"];
cookiesLoadedFlag = true;
}
}
}//package classes.zoneout
Section 44
//EmbedScrollBar (classes.zoneout.EmbedScrollBar)
package classes.zoneout {
import flash.display.*;
import flash.events.*;
import basement_core.display.scroll.*;
import flash.geom.*;
public class EmbedScrollBar extends MovieClip implements IScrollBar {
public var track:MovieClip;
private var currentPercent:Number;
private var top:Number;
private var scroll_rect:Rectangle;
public var handle:MovieClip;
private var range:Number;
public function EmbedScrollBar(){
super();
}
public function hide():void{
this.visible = false;
}
public function setPercent(percent:Number):void{
percent = Math.min(percent, 1);
percent = Math.max(percent, 0);
this.currentPercent = percent;
this.handle.y = ((this.currentPercent * this.range) + this.top);
}
protected function log(msg:String):void{
trace(("[EmbedScrollBar] " + msg));
}
private function onDragMoveHandler(event:MouseEvent):void{
this.currentPercent = ((handle.y - this.top) / this.range);
var scrollEvent:ScrollEvent = new ScrollEvent();
scrollEvent.percent = currentPercent;
dispatchEvent(scrollEvent);
}
public function getPercent():Number{
return (this.currentPercent);
}
private function onDragRelease(event:MouseEvent):void{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, onDragMoveHandler);
this.stage.removeEventListener(MouseEvent.MOUSE_UP, onDragRelease);
handle.stopDrag();
}
public function init(scrollHandle:Sprite, scrollTrack:Sprite):void{
this.handle = new MovieClip();
this.handle.addChild(scrollHandle);
this.track = new MovieClip();
this.track.addChild(scrollTrack);
this.addChild(this.track);
this.addChild(this.handle);
handle.buttonMode = true;
handle.mouseChildren = false;
handle.addEventListener(MouseEvent.MOUSE_DOWN, onDragClick);
track.buttonMode = false;
track.mouseChildren = false;
track.addEventListener(MouseEvent.CLICK, onTrackClick);
set_limits();
}
private function set_limits():void{
scroll_rect = new Rectangle(track.x, track.y, 0, (track.height - handle.height));
this.top = track.y;
this.range = (track.height - handle.height);
}
private function onDragClick(event:MouseEvent):void{
this.stage.addEventListener(MouseEvent.MOUSE_UP, onDragRelease, false, 0, true);
handle.startDrag(false, scroll_rect);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, onDragMoveHandler);
}
public function getHandle():MovieClip{
return (this.handle);
}
public function setHeight($height:Number):void{
this.track.height = $height;
this.set_limits();
}
public function setScrollDelta(delta:int):void{
this.setPercent((this.currentPercent - (delta / 100)));
var scrollEvent:ScrollEvent = new ScrollEvent();
scrollEvent.percent = currentPercent;
dispatchEvent(scrollEvent);
}
private function onTrackClick(event:MouseEvent):void{
}
}
}//package classes.zoneout
Section 45
//GameController (classes.zoneout.GameController)
package classes.zoneout {
import com.kongregate.as3.client.*;
import flash.display.*;
import flash.events.*;
import classes.zoneout.cards.*;
import classes.zoneout.slots.*;
import classes.zoneout.effects.*;
import flash.geom.*;
import com.google.analytics.*;
public class GameController {
private var maxLevel:int;// = 5
private var level:int;
private var stage:Stage;
private var cookies:Cookies;
private var score:int;
private var genericCnt:int;
private var cardHandler:CardHandler;
public var completedCnt:int;
private var isGameOver:Boolean;
public var gameMode:String;// = "normal"
private var tracker:AnalyticsTracker;
private var main:Main;
private var times:Array;
private var secs:int;
private var cloudHandler:CloudHandler;
private var kongregate:KongregateAPI;
private var mins:int;
private var master:Master;
private var particleHandler:ParticleHandler;
private var player:Player;
public var hazardModeUnlockedFlag:Boolean;// = true
private var slotHandler:SlotHandler;
private var levelScore:int;
private var hud:HUD;
private var mainMovie:DisplayObject;
private static var GOOGLE_ID:String = "UA-8498347-4";
public function GameController(){
times = new Array([3, 0], [4, 0], [4, 30], [5, 0], [5, 0]);
super();
isGameOver = false;
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
tracker = new GATracker(stage, GOOGLE_ID, "AS3", false);
cloudHandler = new CloudHandler();
hud = new HUD();
cookies = main.getInitObj().getCookies();
kongregate = main.getKongregate();
}
public function nextLevelInit():void{
stage.focus = stage;
hud.pauseMenuInit();
levelScore = 0;
hud.init(gameMode, level);
cardHandler.init(level);
slotHandler.init(level);
particleHandler.init();
var levelTime:Object = times[(level - 1)];
if (gameMode == "normal"){
master.setStartTime(levelTime[0], levelTime[1]);
hud.updateTimer(levelTime[0], levelTime[1]);
} else {
master.setStartTime(0, 0);
hud.updateTimer(0, 0);
};
continueGame();
}
public function pauseViaKeyPress():void{
master.pause();
player.pause();
cardHandler.pauseFlag = true;
hud.pauseViaKeyPress();
}
public function getCardHandler():CardHandler{
return (cardHandler);
}
private function levelCompleteInit():void{
hud.openConsole();
kongregate.stats.submit("LevelComplete", level);
if (++level == maxLevel){
kongregate.stats.submit("NormalModeComplete", 1);
hazardModeUnlockedFlag = true;
cookies.hazardModeUnlocked = true;
cookies.saveAll();
main.getInitObj().getAttract().gameComplete();
houseKeeping();
return;
};
main.getInitObj().getAttract().levelComplete(level);
houseKeeping();
}
public function getLevelScore():int{
return (levelScore);
}
private function pauseAfterGameOver(e:Event):void{
if (++genericCnt == 30){
hud.openConsole();
houseKeeping();
} else {
if (genericCnt == 38){
stage.removeEventListener(Event.ENTER_FRAME, pauseAfterGameOver);
main.getInitObj().getAttract().gameOver();
};
};
}
public function houseKeeping():void{
master.houseKeeping();
player.houseKeeping();
slotHandler.houseKeeping();
cardHandler.houseKeeping();
hud.houseKeeping();
particleHandler.houseKeeping();
}
private function trackEvent(event:String):void{
if (this.gameMode == "normal"){
log((((((("Tracking Event: " + "/zoneout/") + this.gameMode) + "/") + event) + "/Level") + level));
tracker.trackPageview(((((("/zoneout/" + this.gameMode) + "/") + event) + "/Level") + level));
} else {
log((((((("Tracking Event: " + "/zoneout/") + this.gameMode) + "/") + event) + "/Slot") + this.slotHandler.getNumberOfCompletedSlots()));
tracker.trackPageview(((((("/zoneout/" + this.gameMode) + "/") + event) + "/Slot") + this.slotHandler.getNumberOfCompletedSlots()));
kongregate.stats.submit("HazardModeSlotsComplete", this.slotHandler.getNumberOfCompletedSlots());
};
}
public function incCompletedSlots():void{
completedCnt++;
hud.updateLevel(completedCnt);
}
public function resume():void{
cardHandler.pauseFlag = false;
player.resume();
master.resume();
}
public function getParticleHandler():ParticleHandler{
return (particleHandler);
}
public function getSlotHandler():SlotHandler{
return (slotHandler);
}
public function continueGame():void{
this.isGameOver = false;
player.init();
master.start();
hud.closeConsole();
}
public function getHUD():HUD{
return (hud);
}
private function pauseAfterLevelComplete(e:Event):void{
if (++genericCnt == 20){
stage.removeEventListener(Event.ENTER_FRAME, pauseAfterLevelComplete);
levelCompleteInit();
} else {
if ((mins + secs) > 0){
if (--secs < 0){
if (--mins > 0){
secs = 59;
} else {
secs = 0;
};
};
if ((secs % 10) == 0){
particleHandler.requestParticle(main.getInitObj().getPlayFieldHandler().spritesHolder, new Point(224, 444));
};
score = (score + 100);
levelScore = (levelScore + 100);
hud.updateScore(score);
hud.updateTimer(mins, secs);
genericCnt--;
};
};
}
private function log(msg:String):void{
}
public function incScore(arg:int, checkTime:Boolean=false):void{
if (((checkTime) && (!(master.isTimeRemaining())))){
arg = int((arg / 100));
};
score = (score + arg);
levelScore = (levelScore + arg);
hud.updateScore(score);
}
public function quit():void{
master.pause();
player.pause();
cardHandler.pauseFlag = true;
hud.quitViaKeyPress();
}
public function getPlayer():Player{
return (player);
}
public function levelComplete():void{
trackEvent("CompletedLevel");
master.start_justSlots();
hud.pauseMenuKill();
genericCnt = 0;
mins = master.mins;
secs = master.secs;
stage.addEventListener(Event.ENTER_FRAME, pauseAfterLevelComplete);
}
public function getScore():int{
return (score);
}
public function resumeViaKeyPress():void{
cardHandler.pauseFlag = false;
player.resume();
master.resume();
hud.resumeViaKeyPress();
}
public function gameOver():void{
if (isGameOver){
return;
};
isGameOver = true;
master.start_justSlots();
hud.pauseMenuKill();
trackEvent("GameOver");
if (gameMode == "normal"){
if (score > cookies.normalmode_hiscore){
cookies.normalmode_hiscore = score;
kongregate.scores.submit(score, "NormalModeScore");
cookies.saveAll();
};
} else {
if (score > cookies.hazardmode_hiscore){
cookies.hazardmode_hiscore = score;
kongregate.scores.submit(score, "HazardModeScore");
cookies.saveAll();
};
};
genericCnt = 0;
stage.addEventListener(Event.ENTER_FRAME, pauseAfterGameOver);
}
public function helpViaKeyPress():void{
master.pause();
player.pause();
cardHandler.pauseFlag = true;
hud.helpViaKeyPress();
}
public function incProgressBar(arg:int):void{
hud.updateProgressBar(arg);
}
public function toString():String{
return ("GameController");
}
public function startGame(mode:String):void{
if (player == null){
player = new Player();
cardHandler = new CardHandler();
slotHandler = new SlotHandler();
master = new Master();
particleHandler = new ParticleHandler();
};
gameMode = mode;
if (gameMode == "normal"){
level = 1;
hud.updateLevel(level);
} else {
level = 4;
completedCnt = 0;
hud.updateLevel(0);
};
this.trackEvent("NewGame");
score = 0;
hud.updateScore(score);
nextLevelInit();
}
public function pause():void{
master.pause();
player.pause();
cardHandler.pauseFlag = true;
}
public function quitGame():void{
trackEvent("Quit");
houseKeeping();
hud.openConsole();
main.getInitObj().getAttract().initTitles();
}
public function reduceTimer():void{
var secs:int = master.secs;
var mins:int = master.mins;
if (!master.isTimeRemaining()){
return;
};
secs = (secs - 10);
if (secs < 0){
if (mins > 0){
mins--;
secs = (secs + 60);
} else {
secs = 0;
};
};
master.tick = 0;
if (mins < 0){
mins = 0;
};
if (secs < 0){
secs = 0;
};
master.setTime(mins, secs);
hud.updateTimer(mins, secs);
hud.startLostTimeTween();
}
}
}//package classes.zoneout
Section 46
//HUD (classes.zoneout.HUD)
package classes.zoneout {
import flash.display.*;
import flash.events.*;
import gs.*;
import basement_core.display.scroll.*;
import flash.geom.*;
import flash.text.*;
public class HUD {
private var levelUpTweenMC:Class;
private var stage:Stage;
private var scrollBar:EmbedScrollBar;
private var loseTimeTween:MovieClip;
private var legend:Sprite;
private var completedText:Sprite;
private var speakerIcon_hazard:MovieClip;
private var pauseDropDownMC:Class;
private var speakerIcon:MovieClip;
private var trackMC:Class;
public var scrollWindow:Sprite;
private var playField:Sprite;
private var menuThatIsDown:String;// = ""
private var graphicsContainer:Sprite;
private var button:Sprite;
private var scrollPanel:ScrollPanel;
private var pauseDropDown:Sprite;
private var buttonMC:Class;
private var insideBoxBottom:Sprite;
private var track:Sprite;
private var scaleRect:Rectangle;
private var quitQuestion:MovieClip;
private var initHeight:Number;
private var scaledObjects:Array;
public var console:Console;
private var quitButton:MovieClip;
private var opened:Boolean;
private var quitYesButton:MovieClip;
private var levelUpTween:MovieClip;
private var pausedText:Sprite;
private var container:Sprite;
private var levelProgressBar:Sprite;
private var level:TextField;
private var helpInstructions:MovieClip;
private var score:TextField;
private var pauseMenuHelpText:Sprite;
private var clientURL:String;// = "http://www.cleanairmatters.org/"
private var progressBar:MovieClip;
private var outsideBoxShadow:Sprite;
private var main:Main;
private var backgroundBox:Sprite;
private var insideBoxTop:Sprite;
private var littleLogo:MovieClip;
private var pauseButton:MovieClip;
private var quitNoButton:MovieClip;
private var hudMC:Class;
private var levelText:Sprite;
private var helpButton:MovieClip;
private var time:TextField;
private var helpMask:MovieClip;
private var hud:Sprite;
private var outsideBoxYellow:Sprite;
private var branding:Sprite;
private var mainMovie:DisplayObject;
private static const MIDDLE:Number = 10;
private static const BOTTOM:Number = 370;
private static const TOP:Number = -20;
private static const OFF:Number = -100;
public function HUD(){
hudMC = HUD_hudMC;
levelUpTweenMC = HUD_levelUpTweenMC;
pauseDropDownMC = HUD_pauseDropDownMC;
trackMC = HUD_trackMC;
buttonMC = HUD_buttonMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
hud = new hudMC();
littleLogo = hud["littleLogo"];
initButton(littleLogo, gotoClientSite);
speakerIcon = hud["speakerIcon"];
var vol:Number = main.getInitObj().getCookies().volume;
if (vol == 0){
speakerIcon.gotoAndStop(2);
} else {
speakerIcon.gotoAndStop(1);
};
speakerIcon.buttonMode = true;
speakerIcon.useHandCursor = true;
speakerIcon.addEventListener(MouseEvent.CLICK, soundToggled);
speakerIcon.visible = true;
speakerIcon.alpha = 1;
speakerIcon_hazard = hud["speakerIcon_hazard"];
speakerIcon_hazard.buttonMode = true;
speakerIcon_hazard.useHandCursor = true;
speakerIcon_hazard.gotoAndStop(speakerIcon.currentFrame);
speakerIcon_hazard.addEventListener(MouseEvent.CLICK, soundToggled);
speakerIcon_hazard.visible = false;
branding = hud["branding"];
levelProgressBar = hud["levelProgressBar"];
levelProgressBar.visible = false;
levelText = hud["levelText"];
legend = hud["legend"];
completedText = hud["completedText"];
completedText.visible = false;
progressBar = levelProgressBar["bar"];
progressBar.gotoAndStop(1);
levelUpTween = new levelUpTweenMC();
levelUpTween.x = 350;
levelUpTween.y = 335;
levelUpTween.gotoAndStop(1);
loseTimeTween = hud["loseTimeTween"];
loseTimeTween.gotoAndStop(1);
loseTimeTween.visible = false;
score = hud["score"];
level = hud["level"];
time = hud["time"];
console = new Console(hud["consoleContainer"]);
console.open();
playField = main.getInitObj().getPlayFieldHandler().hud;
playField.addChild(hud);
pauseDropDown = new pauseDropDownMC();
pauseMenuKill();
stage.addChild(pauseDropDown);
pauseButton = pauseDropDown["pauseButton"];
helpButton = pauseDropDown["helpButton"];
quitButton = pauseDropDown["quitButton"];
quitNoButton = pauseDropDown["quitNoButton"];
quitButton.buttonMode = true;
quitYesButton = pauseDropDown["quitYesButton"];
quitQuestion = pauseDropDown["quitQuestion"];
quitNoButton.gotoAndStop("_up");
quitYesButton.gotoAndStop("_up");
pausedText = pauseDropDown["pausedText"];
pauseMenuHelpText = pauseDropDown["pauseMenuHelpText"];
track = new trackMC();
track.scaleY = 0.8;
button = new buttonMC();
button.x = -2;
helpInstructions = pauseMenuHelpText["helpInstructions"];
helpMask = pauseMenuHelpText["helpMask"];
this.scrollBar = new EmbedScrollBar();
this.scrollBar.x = 630;
this.scrollBar.y = -325;
this.scrollBar.init(button, track);
scrollBar.visible = false;
pauseDropDown.addChild(scrollBar);
helpInstructions.mask = helpMask;
helpInstructions.cacheAsBitmap = true;
helpMask.cacheAsBitmap = true;
scrollPanel = new ScrollPanel(helpInstructions, helpMask, scrollBar);
this.scrollPanel.enableArrows(true);
scrollPanel.setAutoFocus(false);
scrollPanel.refresh(0, 0, 0, 0, 8, -1100);
pauseDropDown.addChild(scrollPanel);
}
private function helpPauseCoverInPlace():void{
killButton(pauseButton, pauseButton_pressed);
initButton(helpButton, resumeButton_pressed);
}
public function updateTimer(mins:int, secs:int):void{
var secString:String;
var minsString:String;
if (secs < 10){
secString = ("0" + secs.toString());
} else {
secString = secs.toString();
};
if (mins < 10){
minsString = ("0" + mins.toString());
} else {
minsString = mins.toString();
};
time.text = ((minsString + ":") + secString);
}
private function handleLevelUpTextTween(e:Event):void{
if (levelUpTween.currentFrame == levelUpTween.totalFrames){
levelUpTween.removeEventListener(Event.ENTER_FRAME, handleLevelUpTextTween);
if (levelUpTween.parent != null){
levelUpTween.gotoAndStop(1);
playField.removeChild(levelUpTween);
};
};
}
public function init(mode:String, levelArg:int):void{
stage.addChild(pauseDropDown);
pauseDropDown.y = OFF;
if (mode == "normal"){
if (branding.alpha == 0){
TweenLite.to(branding, 0.5, {alpha:1});
TweenLite.to(speakerIcon, 0.5, {autoAlpha:1});
TweenLite.to(speakerIcon_hazard, 0.5, {autoAlpha:1});
};
levelProgressBar.visible = true;
progressBar.gotoAndStop(1);
levelText.visible = true;
legend.visible = true;
completedText.visible = false;
level.text = levelArg.toString();
} else {
if (branding.alpha != 0){
TweenLite.to(branding, 0.5, {alpha:0});
TweenLite.to(speakerIcon, 0.5, {autoAlpha:0});
TweenLite.to(this.speakerIcon_hazard, 0.5, {autoAlpha:0});
};
levelText.visible = false;
legend.visible = false;
completedText.visible = true;
level.text = "0";
};
}
public function houseKeeping():void{
levelProgressBar.visible = false;
if (levelUpTween.parent != null){
levelUpTween.gotoAndStop(1);
playField.removeChild(levelUpTween);
};
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
killButton(pauseButton, resumeButton_pressed);
killButton(pauseButton, pauseButton_pressed);
killButton(helpButton, helpButton_pressed);
killButton(quitButton, quitButton_pressed);
killButton(quitYesButton, quitYesButton_pressed);
killButton(quitNoButton, quitNoButton_pressed);
TweenLite.to(pauseDropDown, 0.2, {y:OFF});
}
public function startLevelUpTween():void{
levelUpTween.gotoAndPlay(1);
playField.addChild(levelUpTween);
levelUpTween.addEventListener(Event.ENTER_FRAME, handleLevelUpTextTween);
}
private function removePauseMenu_enterFrame(e:Event):void{
if (stage.mouseY > 70){
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
TweenLite.to(pauseDropDown, 0.3, {y:TOP, onComplete:resetMenuRollOver});
};
}
public function pauseMenuInit():void{
TweenLite.to(pauseDropDown, 1, {y:TOP});
pauseDropDown.addEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
}
private function revealPauseMenu(e:MouseEvent):void{
TweenLite.to(pauseDropDown, 0.2, {y:MIDDLE, onComplete:pauseMenuInPlace});
}
public function updateProgressBar(arg:int):void{
progressBar.gotoAndStop(arg);
}
public function updateLevel(arg:int):void{
level.text = arg.toString();
}
public function closeConsole():void{
console.close();
}
private function buttonRollOver(e:MouseEvent):void{
e.target.gotoAndStop(2);
}
private function quitButton_pressed(e:MouseEvent):void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
killButton(pauseButton, pauseButton_pressed);
killButton(helpButton, helpButton_pressed);
killButton(quitButton, quitButton_pressed);
killButton(pauseButton, resumeButton_pressed);
initButton(quitNoButton, resumeButton_pressed);
initButton(quitYesButton, quitYesButton_pressed);
main.getInitObj().getGameController().quit();
}
private function quitYesButton_pressed(e:MouseEvent):void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
killButton(pauseButton, pauseButton_pressed);
killButton(helpButton, helpButton_pressed);
killButton(quitButton, quitButton_pressed);
killButton(quitYesButton, quitYesButton_pressed);
killButton(quitNoButton, quitNoButton_pressed);
this.pauseMenuKill();
main.getInitObj().getGameController().quitGame();
}
public function updateScore(arg:int):void{
score.text = arg.toString();
}
public function helpViaKeyPress():void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
pauseMenuHelpText.visible = true;
scrollBar.visible = true;
pausedText.visible = false;
quitQuestion.visible = false;
quitNoButton.visible = false;
quitYesButton.visible = false;
TweenLite.to(pauseDropDown, 0.5, {y:BOTTOM, onComplete:pauseCoverInPlace});
}
private function killButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = false;
buttonArg.buttonMode = false;
buttonArg.gotoAndStop(1);
buttonArg.removeEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.removeEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.removeEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function removePauseMenu(e:MouseEvent):void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
TweenLite.to(pauseDropDown, 0.2, {y:TOP, onComplete:resetMenuRollOver});
}
private function pauseCoverInPlace():void{
if (menuThatIsDown == "help"){
initButton(helpButton, resumeButton_pressed);
};
if (menuThatIsDown == "pause"){
initButton(pauseButton, resumeButton_pressed);
};
if (menuThatIsDown == "quit"){
killButton(pauseButton, resumeButton_pressed);
killButton(helpButton, resumeButton_pressed);
};
}
private function log(msg:String):void{
trace("[HUD] ", msg);
}
private function resetMenuRollOver():void{
pauseDropDown.addEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
}
private function initButton(buttonArg:MovieClip, callBackArg:Function):void{
buttonArg.useHandCursor = true;
buttonArg.buttonMode = true;
buttonArg.enabled = true;
buttonArg.mouseChildren = true;
buttonArg.gotoAndStop(1);
buttonArg.addEventListener(MouseEvent.CLICK, callBackArg);
buttonArg.addEventListener(MouseEvent.ROLL_OVER, buttonRollOver);
buttonArg.addEventListener(MouseEvent.ROLL_OUT, buttonRollOut);
}
private function gotoClientSite(e:MouseEvent):void{
Web.getURL(clientURL, "_blank");
}
public function pauseViaKeyPress():void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
pausedText.visible = true;
pauseMenuHelpText.visible = false;
quitQuestion.visible = false;
quitNoButton.visible = false;
quitYesButton.visible = false;
scrollBar.visible = false;
initButton(helpButton, helpButton_pressed);
initButton(quitButton, quitButton_pressed);
initButton(pauseButton, resumeButton_pressed);
TweenLite.to(pauseDropDown, 0.5, {y:BOTTOM, onComplete:pauseCoverInPlace});
}
public function quitViaKeyPress():void{
menuThatIsDown = "quit";
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
pausedText.visible = false;
pauseMenuHelpText.visible = false;
scrollBar.visible = false;
quitQuestion.visible = true;
quitNoButton.visible = true;
quitYesButton.visible = true;
initButton(quitNoButton, quitNoButton_pressed);
initButton(quitYesButton, quitYesButton_pressed);
TweenLite.to(pauseDropDown, 0.5, {y:BOTTOM, onComplete:pauseCoverInPlace});
}
private function soundToggled(e:MouseEvent):void{
var vol:int = main.getInitObj().getSoundHandler().toggleSounds();
if (vol == 0){
speakerIcon.gotoAndStop(2);
} else {
speakerIcon.gotoAndStop(1);
};
speakerIcon_hazard.gotoAndStop(speakerIcon.currentFrame);
var cookies:Cookies = main.getInitObj().getCookies();
cookies.volume = vol;
cookies.saveAll();
}
public function pauseMenuKill():void{
pauseDropDown.y = OFF;
}
public function startLostTimeTween():void{
loseTimeTween.gotoAndPlay(1);
loseTimeTween.visible = true;
loseTimeTween.addEventListener(Event.ENTER_FRAME, handleLoseTimeTween);
}
public function toString():String{
return ("HUD");
}
private function quitNoButton_pressed(e:MouseEvent):void{
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
killButton(pauseButton, pauseButton_pressed);
killButton(helpButton, helpButton_pressed);
killButton(quitButton, quitButton_pressed);
killButton(quitYesButton, quitYesButton_pressed);
killButton(quitNoButton, quitNoButton_pressed);
initButton(quitNoButton, resumeButton_pressed);
}
private function pauseButton_pressed(e:MouseEvent):void{
menuThatIsDown = "pause";
main.getInitObj().getGameController().pause();
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
pauseViaKeyPress();
pausedText.visible = true;
pauseMenuHelpText.visible = false;
quitNoButton.visible = false;
quitYesButton.visible = false;
quitQuestion.visible = false;
scrollBar.visible = false;
initButton(pauseButton, resumeButton_pressed);
initButton(helpButton, helpButton_pressed);
initButton(quitButton, quitButton_pressed);
killButton(pauseButton, pauseButton_pressed);
}
private function resumeButton_pressed(e:MouseEvent=null):void{
killButton(pauseButton, resumeButton_pressed);
killButton(helpButton, resumeButton_pressed);
TweenLite.to(pauseDropDown, 0.5, {y:TOP, onComplete:pauseCoverRemoved});
}
private function helpButton_pressed(e:MouseEvent):void{
menuThatIsDown = "help";
pauseDropDown.removeEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.removeEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
main.getInitObj().getGameController().pause();
helpViaKeyPress();
pausedText.visible = false;
pauseMenuHelpText.visible = true;
quitNoButton.visible = false;
quitYesButton.visible = false;
quitQuestion.visible = false;
scrollBar.visible = true;
killButton(helpButton, helpButton_pressed);
initButton(quitButton, quitButton_pressed);
initButton(pauseButton, pauseButton_pressed);
initButton(helpButton, resumeButton_pressed);
}
public function openConsole():void{
console.open();
}
private function pauseCoverRemoved():void{
pauseDropDown.addEventListener(MouseEvent.MOUSE_OVER, revealPauseMenu);
main.getInitObj().getGameController().resume();
}
private function pauseMenuInPlace():void{
pauseDropDown.addEventListener(MouseEvent.MOUSE_OUT, removePauseMenu);
pauseDropDown.addEventListener(Event.ENTER_FRAME, removePauseMenu_enterFrame);
initButton(pauseButton, pauseButton_pressed);
initButton(helpButton, helpButton_pressed);
initButton(quitButton, quitButton_pressed);
}
private function handleLoseTimeTween(e:Event):void{
if (loseTimeTween.currentFrame == loseTimeTween.totalFrames){
loseTimeTween.gotoAndStop(1);
loseTimeTween.visible = false;
loseTimeTween.removeEventListener(Event.ENTER_FRAME, handleLoseTimeTween);
};
}
public function resumeViaKeyPress():void{
killButton(pauseButton, resumeButton_pressed);
killButton(pauseButton, pauseButton_pressed);
killButton(helpButton, helpButton_pressed);
killButton(quitButton, quitButton_pressed);
killButton(quitYesButton, quitYesButton_pressed);
killButton(quitNoButton, quitNoButton_pressed);
TweenLite.to(pauseDropDown, 0.5, {y:TOP, onComplete:pauseCoverRemoved});
}
private function buttonRollOut(e:MouseEvent):void{
e.target.gotoAndStop(1);
}
}
}//package classes.zoneout
Section 47
//HUD_buttonMC (classes.zoneout.HUD_buttonMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class HUD_buttonMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var yourEmailTF:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var levelProgressBar:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 48
//HUD_hudMC (classes.zoneout.HUD_hudMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class HUD_hudMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var yourEmailTF:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var levelProgressBar:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 49
//HUD_levelUpTweenMC (classes.zoneout.HUD_levelUpTweenMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class HUD_levelUpTweenMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var yourEmailTF:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var levelProgressBar:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 50
//HUD_pauseDropDownMC (classes.zoneout.HUD_pauseDropDownMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class HUD_pauseDropDownMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var helpMask:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 51
//HUD_trackMC (classes.zoneout.HUD_trackMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class HUD_trackMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var yourEmailTF:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var levelProgressBar:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 52
//Init (classes.zoneout.Init)
package classes.zoneout {
import flash.display.*;
import flash.events.*;
import classes.zoneout.attract.*;
import com.gamingyourway.Utils.*;
public class Init {
private var attract:Attract;
private var playFieldHandler:PlayFieldHandler;
private var stage:Stage;
private var gameController:GameController;
private var cookies:Cookies;
private var mainMovie:DisplayObject;
private var main:Main;
private var soundHandler:SoundHandler;
public function Init(){
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
Key.initialize(stage);
soundHandler = new SoundHandler();
cookies = new Cookies();
mainMovie.addEventListener(Event.ENTER_FRAME, waitingForCookiesToLoad);
playFieldHandler = new PlayFieldHandler();
}
public function getCookies():Cookies{
return (cookies);
}
public function getGameController():GameController{
return (gameController);
}
public function getAttract():Attract{
return (attract);
}
public function toString():String{
return ("Init");
}
public function getSoundHandler():SoundHandler{
return (soundHandler);
}
public function waitingForCookiesToLoad(e:Event):void{
if (cookies.cookiesLoadedFlag == true){
mainMovie.removeEventListener(Event.ENTER_FRAME, waitingForCookiesToLoad);
soundHandler.setVolume(cookies.volume);
soundHandler.play_backgroundNoise();
gameController = new GameController();
gameController.hazardModeUnlockedFlag = cookies.hazardModeUnlocked;
attract = new Attract();
attract.preInit();
};
}
public function getPlayFieldHandler():PlayFieldHandler{
return (playFieldHandler);
}
}
}//package classes.zoneout
Section 53
//Master (classes.zoneout.Master)
package classes.zoneout {
import flash.display.*;
import flash.events.*;
import classes.zoneout.cards.*;
import classes.zoneout.slots.*;
import classes.zoneout.effects.*;
import com.gamingyourway.Utils.*;
public class Master {
private var _mins:int;
private var stage:Stage;
private var testTheTimerFlag:Boolean;
private var cardHandler:CardHandler;
public var tick:int;
private var _secs:int;
private var keyDelay:int;
private var currentEvent:String;
private var slotHandler:SlotHandler;
private var gameController:GameController;
private var particleHandler:ParticleHandler;
private var hud:HUD;
private var main:Main;
private var gameMode:String;
private var mainMovie:DisplayObject;
public function Master():void{
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
gameController = main.getInitObj().getGameController();
}
public function houseKeeping():void{
stage.removeEventListener(Event.ENTER_FRAME, mainloop);
stage.removeEventListener(Event.ENTER_FRAME, mainloop_justSlots);
stage.removeEventListener(Event.ENTER_FRAME, mainloop_pauseMode);
}
public function start_justSlots():void{
stage.removeEventListener(Event.ENTER_FRAME, mainloop);
currentEvent = "mainloop_justSlots";
stage.addEventListener(Event.ENTER_FRAME, mainloop_justSlots);
}
public function setStartTime(minsArg:int, secsArg:int):void{
_mins = minsArg;
_secs = secsArg;
}
private function mainloop_justSlots(e:Event):void{
slotHandler.mainloop();
particleHandler.mainloop();
}
public function get secs():int{
return (_secs);
}
public function setTime(minsArg:int, secsArg:int):void{
this._mins = minsArg;
this._secs = secsArg;
}
private function mainloop_pauseMode(e:Event):void{
if (--keyDelay > 0){
return;
};
if (Key.isDown(80)){
gameController.resumeViaKeyPress();
keyDelay = 10;
return;
};
if (Key.isDown(81)){
gameController.quit();
return;
};
if (Key.isDown(72)){
gameController.helpViaKeyPress();
return;
};
}
public function isTimeRemaining():Boolean{
return (this.testTheTimerFlag);
}
public function start():void{
if (hud == null){
hud = gameController.getHUD();
cardHandler = gameController.getCardHandler();
slotHandler = gameController.getSlotHandler();
particleHandler = gameController.getParticleHandler();
};
gameMode = gameController.gameMode;
tick = 0;
keyDelay = 0;
testTheTimerFlag = true;
currentEvent = "mainloop";
resume();
}
public function resume():void{
stage.removeEventListener(Event.ENTER_FRAME, mainloop_pauseMode);
if (currentEvent == "mainloop"){
stage.addEventListener(Event.ENTER_FRAME, mainloop);
} else {
stage.addEventListener(Event.ENTER_FRAME, mainloop_justSlots);
};
}
public function get mins():int{
return (_mins);
}
public function pause():void{
stage.removeEventListener(Event.ENTER_FRAME, mainloop);
stage.removeEventListener(Event.ENTER_FRAME, mainloop_justSlots);
stage.addEventListener(Event.ENTER_FRAME, mainloop_pauseMode);
}
public function toString():String{
return ("Master");
}
private function mainloop(e:Event):void{
cardHandler.mainloop();
slotHandler.mainloop();
particleHandler.mainloop();
if (--keyDelay < 0){
if (Key.isDown(80)){
gameController.pauseViaKeyPress();
keyDelay = 10;
return;
};
if (Key.isDown(81)){
gameController.quit();
return;
};
if (Key.isDown(72)){
gameController.helpViaKeyPress();
return;
};
};
if (testTheTimerFlag == true){
if (++tick >= stage.frameRate){
tick = 0;
if (gameMode == "normal"){
if (--_secs < 0){
if (--_mins <= 0){
_secs = 0;
_mins = 0;
testTheTimerFlag = false;
} else {
_secs = 59;
};
};
} else {
if (++_secs == 60){
_secs = 0;
_mins++;
};
};
hud.updateTimer(_mins, _secs);
};
};
}
}
}//package classes.zoneout
Section 54
//Player (classes.zoneout.Player)
package classes.zoneout {
import flash.display.*;
import flash.events.*;
import classes.zoneout.cards.*;
import classes.zoneout.slots.*;
import gs.*;
import flash.geom.*;
import flash.ui.*;
public class Player {
private var lastMouseX:Number;
private var level:int;
private var sprite2:MovieClip;
private var sprite3:MovieClip;
private var lastMouseY:Number;
private var pointerMC:Class;
private var state:String;
private var tempXSpeed:Number;
private var slotHandler:SlotHandler;
private var debugText:Sprite;
private var currentCard:Card;
private var currentMouseX:Number;
private var currentMouseY:Number;
private var gameController:GameController;
private var xSpeed:Number;
private var cardHandler:CardHandler;
private var playField:Sprite;
private var debugTextMC:Class;
private var main:Main;
private var explosionSprite:MovieClip;
private var cardSpeedMin:int;// = 25
private var frames:int;// = 10
private var tempYSpeed:Number;
private var currentCardFrame:int;
private var sprite:MovieClip;
private var heldCardMC:Class;
private var cardSpeedMax:int;// = 40
private var ySpeed:Number;
private var mouseSpeedMin:int;// = 10
private var stageHeight:int;
private var mousePointer:MovieClip;
private var soundHandler:SoundHandler;
private var returningCard:Card;
private var thrownCardStorage:Array;
private var stageWidth:int;
private var mouseUpEventFlag:Boolean;
private var mouseDownFlag:Boolean;
private var mainMovie:DisplayObject;
private var kludgeCnt:int;
private var stage:Stage;
public function Player():void{
heldCardMC = Player_heldCardMC;
debugTextMC = Player_debugTextMC;
pointerMC = Player_pointerMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
gameController = main.getInitObj().getGameController();
playField = main.getInitObj().getPlayFieldHandler().spritesHolder;
soundHandler = main.getInitObj().getSoundHandler();
sprite = new heldCardMC();
sprite.gotoAndStop(1);
sprite2 = new heldCardMC();
sprite2.gotoAndStop(1);
sprite3 = new heldCardMC();
sprite3.gotoAndStop(1);
explosionSprite = new heldCardMC();
explosionSprite.gotoAndStop(1);
mousePointer = new pointerMC();
mousePointer.gotoAndStop(1);
mousePointer.mouseEnabled = false;
mousePointer.mouseChildren = false;
stageWidth = stage.width;
stageHeight = stage.height;
}
public function resume():void{
mousePointer.visible = true;
if (state == "onMouseDown"){
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
} else {
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
};
Mouse.hide();
}
private function returnCardToScrollingWindow_Done():void{
if (returningCard.tempSprite.parent != null){
playField.removeChild(returningCard.tempSprite);
};
returningCard.cardReturned();
}
public function houseKeeping():void{
if (sprite.parent != null){
playField.removeChild(sprite);
};
if (sprite2.parent != null){
playField.removeChild(sprite2);
};
if (sprite3.parent != null){
playField.removeChild(sprite3);
};
mousePointer.removeEventListener(Event.ENTER_FRAME, mousePointer_fixCardFrame);
mousePointer.removeEventListener(Event.ENTER_FRAME, mousePointerHandler);
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
if (mousePointer.parent != null){
stage.removeChild(mousePointer);
};
Mouse.show();
}
public function init():void{
if (cardHandler == null){
cardHandler = gameController.getCardHandler();
slotHandler = gameController.getSlotHandler();
};
lastMouseX = (currentMouseX = (mousePointer.x = stage.mouseX));
lastMouseY = (currentMouseY = (mousePointer.y = stage.mouseY));
stage.addChild(mousePointer);
mousePointer.gotoAndStop(1);
mousePointer.visible = true;
currentCard = null;
Mouse.hide();
mouseDownFlag = false;
mouseUpEventFlag = false;
kludgeCnt = 0;
tempXSpeed = (tempYSpeed = 0);
thrownCardStorage = new Array();
mousePointer.addEventListener(Event.ENTER_FRAME, mousePointerHandler);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
state = "onMouseDown";
}
private function throwCard_handler(thrownSprite:MovieClip, thrownCard:Card, speedX:Number, speedY:Number):String{
if (slotHandler.testForCollision(thrownCard, thrownSprite) == true){
return ("dead");
};
thrownSprite.x = (thrownSprite.x + speedX);
thrownSprite.y = (thrownSprite.y + speedY);
if (thrownSprite.x < -(thrownSprite.width)){
return ("dead");
};
if (thrownSprite.x > stageWidth){
return ("dead");
};
if (thrownSprite.y > stageHeight){
return ("dead");
};
if (thrownSprite.y < -(thrownSprite.height)){
return ("dead");
};
return ("cool");
}
private function explosionInit():void{
explosionSprite.x = (mousePointer.x - 48);
explosionSprite.y = (mousePointer.y - 37);
explosionSprite.gotoAndStop((currentCard.sprite.currentFrame + 6));
if (explosionSprite.parent == null){
playField.addChild(explosionSprite);
};
soundHandler.play_cardExploding();
explosionSprite.addEventListener(Event.ENTER_FRAME, handleExplosionSprite);
}
private function onMouseUp(e:MouseEvent):void{
var newThrownSprite:MovieClip;
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
mouseDownFlag = false;
mouseUpEventFlag = false;
sprite.removeEventListener(Event.ENTER_FRAME, throwCard_handler);
mousePointer.removeEventListener(Event.ENTER_FRAME, mousePointer_fixCardFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
state = "onMouseDown";
mousePointer.gotoAndStop(1);
var xSpeedAbs:Number = Math.abs(xSpeed);
var ySpeedAbs:Number = Math.abs(ySpeed);
var totalSpeed:Number = (xSpeedAbs + ySpeedAbs);
var xPercent:Number = (xSpeedAbs / totalSpeed);
var yPercent:Number = (ySpeedAbs / totalSpeed);
if (xSpeed < 0){
xPercent = (xPercent * -1);
};
if (ySpeed < 0){
yPercent = (yPercent * -1);
};
if (totalSpeed >= mouseSpeedMin){
soundHandler.play_cardThrown();
if (totalSpeed > this.cardSpeedMax){
totalSpeed = this.cardSpeedMax;
xSpeed = (totalSpeed * xPercent);
ySpeed = (totalSpeed * yPercent);
} else {
if (totalSpeed < this.cardSpeedMin){
totalSpeed = this.cardSpeedMin;
xSpeed = (totalSpeed * xPercent);
ySpeed = (totalSpeed * yPercent);
};
};
if (xSpeedAbs < 3){
xSpeed = 0;
};
newThrownSprite = spriteInit();
thrownCardStorage.push([newThrownSprite, currentCard, xSpeed, ySpeed]);
currentCard = null;
return;
};
if (mousePointer.y >= 340){
returnCardToScrollingWindow(spriteInit());
return;
};
if (slotHandler.testForCollision_droppedCard(currentCard, mousePointer) == true){
currentCard = null;
return;
};
explosionInit();
currentCard = null;
}
private function mousePointer_fixCardFrame(e:Event):void{
state = "mousePointer_fixCardFrame";
if (mousePointer["card"] != undefined){
mousePointer["card"].gotoAndStop(currentCardFrame);
mousePointer["card"].alpha = 1;
state = "card frame correct";
if (mouseUpEventFlag == false){
mouseUpEventFlag = true;
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
state = "onMouseUp";
};
} else {
state = "card undefined";
};
}
private function onMouseDown(e:Event):void{
mouseDownFlag = true;
if (kludgeCnt > 0){
return;
};
if (cardHandler.collisionCheck(mousePointer) == true){
stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
soundHandler.play_pickUp();
kludgeCnt = 5;
};
}
private function localToLocal(fr:Sprite, to:Sprite):Point{
return (to.globalToLocal(fr.localToGlobal(new Point())));
}
public function toString():String{
return ("Player");
}
private function returnCardToScrollingWindow(movingSprite:MovieClip):void{
returningCard = currentCard;
returningCard.tempSprite = movingSprite;
currentCard = null;
var speed:int = cardHandler.speed;
var cardSprite:MovieClip = returningCard.sprite;
var p:Point = localToLocal((cardSprite as Sprite), (mainMovie as Sprite));
p.x = (p.x - ((speed * frames) / 2));
TweenLite.to(movingSprite, (1 / frames), {x:p.x, y:p.y, onComplete:returnCardToScrollingWindow_Done});
}
public function pause():void{
mousePointer.visible = false;
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
Mouse.show();
}
private function handleThrownCards():void{
var thrownSprite:MovieClip;
var thrownCard:Card;
var cnt = -1;
var len:int = thrownCardStorage.length;
while (++cnt != len) {
thrownSprite = thrownCardStorage[cnt][0];
thrownCard = thrownCardStorage[cnt][1];
if (throwCard_handler(thrownSprite, thrownCard, thrownCardStorage[cnt][2], thrownCardStorage[cnt][3]) == "dead"){
playField.removeChild(thrownSprite);
thrownCardStorage.splice(cnt, 1);
cnt--;
len--;
};
};
}
private function mousePointerHandler(e:Event):void{
kludgeCnt--;
lastMouseX = currentMouseX;
lastMouseY = currentMouseY;
mousePointer.x = (currentMouseX = stage.mouseX);
mousePointer.y = (currentMouseY = stage.mouseY);
if (mouseDownFlag == true){
xSpeed = (currentMouseX - lastMouseX);
ySpeed = (currentMouseY - lastMouseY);
};
handleThrownCards();
}
public function cardPickedUp(cardArg:Card):Boolean{
if (currentCard != null){
return (false);
};
currentCard = cardArg;
currentCardFrame = currentCard.sprite.currentFrame;
mousePointer.gotoAndStop(2);
mousePointer.addEventListener(Event.ENTER_FRAME, mousePointer_fixCardFrame);
state = "collected";
return (true);
}
private function log(msg:String):void{
trace(("[Player] " + msg));
}
private function spriteInit():MovieClip{
var newSprite:MovieClip;
if (sprite.parent == null){
newSprite = sprite;
} else {
if (sprite2.parent == null){
newSprite = sprite2;
} else {
if (sprite3.parent == null){
newSprite = sprite3;
} else {
newSprite = sprite;
};
};
};
newSprite.x = (mousePointer.x - 48);
newSprite.y = (mousePointer.y - 37);
newSprite.gotoAndStop(currentCardFrame);
newSprite.visible = true;
playField.addChild(newSprite);
return (newSprite);
}
private function handleExplosionSprite(e:Event):void{
if (explosionSprite["anim"] == undefined){
return;
};
if (explosionSprite["anim"].currentFrame == explosionSprite["anim"].totalFrames){
explosionSprite.removeEventListener(Event.ENTER_FRAME, handleExplosionSprite);
playField.removeChild(explosionSprite);
};
}
}
}//package classes.zoneout
Section 55
//Player_debugTextMC (classes.zoneout.Player_debugTextMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Player_debugTextMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var card:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var name1:DisplayObject;
public var completedText:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var name3:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var hitAreaMC:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var submitButton:DisplayObject;
public var quitYesButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var Masker:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 56
//Player_heldCardMC (classes.zoneout.Player_heldCardMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Player_heldCardMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var card:DisplayObject;
public var anim:DisplayObject;
public var bar:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var name1:DisplayObject;
public var completedText:DisplayObject;
public var name4:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var mainMenuButton:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var name3:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var hitAreaMC:DisplayObject;
public var yourEmailTF:DisplayObject;
public var name5:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var submitButton:DisplayObject;
public var quitYesButton:DisplayObject;
public var frontLogo:DisplayObject;
public var copy:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var Masker:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 57
//Player_pointerMC (classes.zoneout.Player_pointerMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Player_pointerMC extends MovieClipAsset {
public var invalidEmailAddressTF:DisplayObject;
public var playButton_normal:DisplayObject;
public var name2:DisplayObject;
public var loseTimeTween:DisplayObject;
public var name6:DisplayObject;
public var name9:DisplayObject;
public var six:DisplayObject;
public var card:DisplayObject;
public var mainMenuButton:DisplayObject;
public var bar:DisplayObject;
public var name1:DisplayObject;
public var consoleContainer:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var name4:DisplayObject;
public var name5:DisplayObject;
public var bgTopBar:DisplayObject;
public var legend:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var name7:DisplayObject;
public var name8:DisplayObject;
public var score10:DisplayObject;
public var friendsNameTF:DisplayObject;
public var name3:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var instructionsMask:DisplayObject;
public var yourNameTF:DisplayObject;
public var helpMask:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var hitAreaMC:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var cell:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var submitButton:DisplayObject;
public var quitYesButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var three:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var button_window:DisplayObject;
public var instructions:DisplayObject;
public var cloud3:DisplayObject;
public var clickHitAreaMC:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var time:DisplayObject;
public var pauseButton:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var score1:DisplayObject;
public var score2:DisplayObject;
public var score3:DisplayObject;
public var score4:DisplayObject;
public var score5:DisplayObject;
public var score6:DisplayObject;
public var score7:DisplayObject;
public var score8:DisplayObject;
public var score9:DisplayObject;
public var challengeFriend:DisplayObject;
public var name10:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var stepTwo:DisplayObject;
public var airTip:DisplayObject;
public var Masker:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 58
//PlayFieldHandler (classes.zoneout.PlayFieldHandler)
package classes.zoneout {
import flash.display.*;
import gs.*;
import basement_core.display.*;
public class PlayFieldHandler {
private var backgroundMC:Class;
private var stage:Stage;
public var slotHolder:Sprite;
public var background:Sprite;
private var overlay:Box;
public var hud:Sprite;
private var main:Main;
public var spritesHolder:Sprite;
public var cardHolder:Sprite;
private var mainMovie:DisplayObject;
public function PlayFieldHandler(){
backgroundMC = PlayFieldHandler_backgroundMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
background = new backgroundMC();
hud = new Sprite();
cardHolder = new Sprite();
slotHolder = new Sprite();
spritesHolder = new Sprite();
var yAdj:Number = -13;
hud.y = yAdj;
cardHolder.y = yAdj;
slotHolder.y = yAdj;
spritesHolder.y = yAdj;
background.y = yAdj;
stage.addChild(background);
stage.addChild(slotHolder);
stage.addChild(hud);
stage.addChild(cardHolder);
stage.addChild(spritesHolder);
this.overlay = new Box(700, 468);
this.overlay.fillAlpha = 1;
this.overlay.fillColor = 6671615;
this.overlay.y = -13;
this.overlay.draw();
stage.addChild(overlay);
TweenLite.to(overlay, 1, {delay:0.25, autoAlpha:0});
}
public function toString():String{
return ("PlayFieldHandler");
}
}
}//package classes.zoneout
Section 59
//PlayFieldHandler_backgroundMC (classes.zoneout.PlayFieldHandler_backgroundMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class PlayFieldHandler_backgroundMC extends SpriteAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 60
//SoundHandler (classes.zoneout.SoundHandler)
package classes.zoneout {
import flash.media.*;
public class SoundHandler {
private var cellFilledSFX:Class;
private var whoosh:Sound;
private var rowLostSFX:Class;
private var pickUpSFX:Class;
private var completed:Sound;
private var cardThrown:Sound;
private var backgroundNoise:Sound;
private var backgroundNoiseSFX:Class;
private var masterVolume:Number;// = 1
private var rowLost:Sound;
private var whooshSFX:Class;
private var pickUp:Sound;
private var cellFilled:Sound;
private var cardThrownSFX:Class;
private var buttonClickSFX:Class;
private var cardExploding:Sound;
private var buttonClick:Sound;
private var cardExplodingSFX:Class;
private var completedSFX:Class;
public function SoundHandler(){
buttonClickSFX = SoundHandler_buttonClickSFX;
rowLostSFX = SoundHandler_rowLostSFX;
completedSFX = SoundHandler_completedSFX;
whooshSFX = SoundHandler_whooshSFX;
pickUpSFX = SoundHandler_pickUpSFX;
cellFilledSFX = SoundHandler_cellFilledSFX;
backgroundNoiseSFX = SoundHandler_backgroundNoiseSFX;
cardThrownSFX = SoundHandler_cardThrownSFX;
cardExplodingSFX = SoundHandler_cardExplodingSFX;
super();
SoundMixer.soundTransform = new SoundTransform(masterVolume);
buttonClick = new buttonClickSFX();
rowLost = new rowLostSFX();
completed = new completedSFX();
whoosh = new whooshSFX();
pickUp = new pickUpSFX();
cellFilled = new cellFilledSFX();
backgroundNoise = new backgroundNoiseSFX();
cardThrown = new cardThrownSFX();
cardExploding = new cardExplodingSFX();
}
public function play_completed():void{
completed.play();
}
public function play_buttonClick():void{
buttonClick.play();
}
public function play_backgroundNoise():void{
backgroundNoise.play(0, 99999999);
}
public function play_cellFilled():void{
cellFilled.play();
}
public function setVolume(arg:Number):void{
masterVolume = arg;
SoundMixer.soundTransform = new SoundTransform(masterVolume);
}
public function play_rowLost():void{
rowLost.play();
}
public function play_cardThrown():void{
cardThrown.play();
}
public function play_pickUp():void{
pickUp.play();
}
public function play_whoosh():void{
whoosh.play();
}
public function toggleSounds():int{
if (masterVolume == 1){
masterVolume = 0;
} else {
masterVolume = 1;
};
SoundMixer.soundTransform = new SoundTransform(masterVolume);
return (masterVolume);
}
public function play_cardExploding():void{
cardExploding.play();
}
public function toString():String{
return ("SoundHandler");
}
}
}//package classes.zoneout
Section 61
//SoundHandler_backgroundNoiseSFX (classes.zoneout.SoundHandler_backgroundNoiseSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_backgroundNoiseSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 62
//SoundHandler_buttonClickSFX (classes.zoneout.SoundHandler_buttonClickSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_buttonClickSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 63
//SoundHandler_cardExplodingSFX (classes.zoneout.SoundHandler_cardExplodingSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_cardExplodingSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 64
//SoundHandler_cardThrownSFX (classes.zoneout.SoundHandler_cardThrownSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_cardThrownSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 65
//SoundHandler_cellFilledSFX (classes.zoneout.SoundHandler_cellFilledSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_cellFilledSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 66
//SoundHandler_completedSFX (classes.zoneout.SoundHandler_completedSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_completedSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 67
//SoundHandler_pickUpSFX (classes.zoneout.SoundHandler_pickUpSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_pickUpSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 68
//SoundHandler_rowLostSFX (classes.zoneout.SoundHandler_rowLostSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_rowLostSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 69
//SoundHandler_whooshSFX (classes.zoneout.SoundHandler_whooshSFX)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class SoundHandler_whooshSFX extends SoundAsset {
public var cell:DisplayObject;
public var three:DisplayObject;
public var one:DisplayObject;
public var two:DisplayObject;
public var four:DisplayObject;
public var six:DisplayObject;
public var five:DisplayObject;
public var progressAnim:DisplayObject;
public var Masker:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
}
}//package classes.zoneout
Section 70
//Transition (classes.zoneout.Transition)
package classes.zoneout {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class Transition {
private var main:Main;
private var attractMask:Sprite;
private var grabBitmap:Bitmap;
private var attractMaskMC:Class;
private var grabBitmapData:BitmapData;
private var playField:Sprite;
private var sourceMC:MovieClip;
private var mainMovie:DisplayObject;
private var stage:Stage;
public function Transition(){
attractMaskMC = Transition_attractMaskMC;
super();
main = Main.getInstance();
mainMovie = main.getMainMovie();
stage = main.getStage();
playField = new Sprite();
grabBitmapData = new BitmapData(700, 468, true, 0);
grabBitmap = new Bitmap(grabBitmapData);
grabBitmap.filters = new Array(new BlurFilter(32, 0, 1));
playField.addChild(grabBitmap);
this.attractMask = new attractMaskMC();
attractMask.x = 6;
attractMask.y = 8;
}
public function transitionAppear(source:MovieClip):void{
source.alpha = 0;
TweenLite.to(source, 1, {x:0, alpha:1});
}
public function transitionLevelRemove(source:MovieClip):void{
grabBitmapData.fillRect(grabBitmapData.rect, 0);
grabBitmapData.draw(source);
playField.x = (playField.y = 0);
playField.alpha = 1;
stage.addChild(playField);
stage.addChild(this.attractMask);
playField.mask = this.attractMask;
TweenLite.to(playField, 1, {x:-500, alpha:0, onComplete:houseKeeping});
}
public function transitionLevelAppear(source:MovieClip):void{
source.alpha = 0;
source.x = 460;
TweenLite.to(source, 0.5, {x:0, alpha:1, delay:0.5});
}
public function transtionsTitlesAppear(source:MovieClip, xPos:Number):void{
source.alpha = 0;
source.x = 860;
TweenLite.to(source, 0.5, {x:xPos, alpha:1, delay:0.4});
}
public function toString():String{
return ("Transition");
}
public function transitionRemove(source:MovieClip):void{
grabBitmapData.fillRect(grabBitmapData.rect, 0);
grabBitmapData.draw(source);
playField.x = (playField.y = 0);
playField.alpha = 1;
stage.addChild(playField);
stage.addChild(this.attractMask);
playField.mask = this.attractMask;
TweenLite.to(playField, 0.5, {x:-500, alpha:0, onComplete:houseKeeping});
}
public function houseKeeping():void{
if (stage.contains(this.attractMask)){
stage.removeChild(this.attractMask);
};
stage.removeChild(playField);
}
}
}//package classes.zoneout
Section 71
//Transition_attractMaskMC (classes.zoneout.Transition_attractMaskMC)
package classes.zoneout {
import flash.display.*;
import mx.core.*;
public class Transition_attractMaskMC extends SpriteAsset {
public var invalidEmailAddressTF:DisplayObject;
public var loseTimeTween:DisplayObject;
public var mainMenuButton:DisplayObject;
public var legend:DisplayObject;
public var bar:DisplayObject;
public var speakerIcon:DisplayObject;
public var speakerIcon_hazard:DisplayObject;
public var quitText:DisplayObject;
public var completedText:DisplayObject;
public var bgTopBar:DisplayObject;
public var emailAddressTF:DisplayObject;
public var lock:DisplayObject;
public var four:DisplayObject;
public var instructionsMask:DisplayObject;
public var friendsNameTF:DisplayObject;
public var stepThree:DisplayObject;
public var hsName:DisplayObject;
public var yourNameTF:DisplayObject;
public var two:DisplayObject;
public var quitQuestion:DisplayObject;
public var yourEmailTF:DisplayObject;
public var quitButton:DisplayObject;
public var highScores:DisplayObject;
public var one:DisplayObject;
public var cell:DisplayObject;
public var quitYesButton:DisplayObject;
public var submitButton:DisplayObject;
public var frontLogo:DisplayObject;
public var pausedText:DisplayObject;
public var levelProgressBar:DisplayObject;
public var helpInstructions:DisplayObject;
public var level:DisplayObject;
public var score:DisplayObject;
public var tip:DisplayObject;
public var cloud1:DisplayObject;
public var cloud2:DisplayObject;
public var cloud3:DisplayObject;
public var pauseMenuHelpText:DisplayObject;
public var three:DisplayObject;
public var instructions:DisplayObject;
public var five:DisplayObject;
public var continueButton:DisplayObject;
public var learnMore:DisplayObject;
public var littleLogo:DisplayObject;
public var quitNoButton:DisplayObject;
public var pauseButton:DisplayObject;
public var time:DisplayObject;
public var playButton_normal:DisplayObject;
public var friendsEmailTF:DisplayObject;
public var helpButton:DisplayObject;
public var levelText:DisplayObject;
public var invalidFriendEmailTF:DisplayObject;
public var sendToAFriendButton_gameComplete:DisplayObject;
public var progressAnim:DisplayObject;
public var stepTwo:DisplayObject;
public var challengeFriend:DisplayObject;
public var six:DisplayObject;
public var helpMask:DisplayObject;
public var Masker:DisplayObject;
public var consoleContainer:DisplayObject;
public var playButton_hazard:DisplayObject;
public var levelTwoInstructions:DisplayObject;
public var airTip:DisplayObject;
public var stepOne:DisplayObject;
public var branding:DisplayObject;
}
}//package classes.zoneout
Section 72
//Key (com.gamingyourway.Utils.Key)
package com.gamingyourway.Utils {
import flash.display.*;
import flash.events.*;
public class Key {
private static var initialized:Boolean = false;
private static var keysDown:Object = new Object();
public function Key(){
super();
}
public static function initialize(stage:Stage):void{
if (!initialized){
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
stage.addEventListener(Event.DEACTIVATE, clearKeys);
initialized = true;
};
}
private static function clearKeys(event:Event):void{
keysDown = new Object();
}
public static function isDown(keyCode:uint):Boolean{
if (!initialized){
throw (new Error("Key class has yet been initialized."));
};
return (Boolean((keyCode in keysDown)));
}
private static function keyPressed(event:KeyboardEvent):void{
keysDown[event.keyCode] = true;
}
private static function keyReleased(event:KeyboardEvent):void{
if ((event.keyCode in keysDown)){
delete keysDown[event.keyCode];
};
}
}
}//package com.gamingyourway.Utils
Section 73
//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 isEmpty():Boolean{
return (_empty);
}
public function toURLString():String{
var _local1:Variables;
_local1 = toVariables();
return (_local1.toString());
}
public function toVariables():Variables{
var _local1:Variables;
_local1 = new Variables();
_local1.URIencode = true;
if (((!(isEmpty())) && (isNew()))){
_local1.utmcn = utmcn;
};
if (((!(isEmpty())) && (!(isNew())))){
_local1.utmcr = utmcr;
};
return (_local1);
}
public function isNew():Boolean{
return (_new);
}
public function get utmcn():String{
return ("1");
}
public function get utmcr():String{
return ("1");
}
}
}//package com.google.analytics.campaign
Section 74
//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"
public function CampaignKey(){
UCCN = "utm_campaign";
UCCT = "utm_content";
UCID = "utm_id";
UCMD = "utm_medium";
UCNO = "utm_nooverride";
UCSR = "utm_source";
UCTR = "utm_term";
UGCLID = "gclid";
super();
}
}
}//package com.google.analytics.campaign
Section 75
//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 hasNoOverride(_arg1:String):Boolean{
var _local2:CampaignKey;
var _local3:Variables;
var _local4:String;
_local2 = _config.campaignKey;
if (_arg1 == ""){
return (false);
};
_local3 = new Variables(_arg1);
_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 getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{
var _local3:CampaignInfo;
var _local4:CampaignTracker;
var _local5:Boolean;
var _local6:Boolean;
var _local7:int;
var _local8:CampaignTracker;
var _local9:int;
_local3 = new CampaignInfo();
_local5 = false;
_local6 = false;
_local7 = 0;
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 isValid(_arg1:CampaignTracker):Boolean{
if (((_arg1) && (_arg1.isValid()))){
return (true);
};
return (false);
}
public function getTrackerFromSearchString(_arg1:String):CampaignTracker{
var _local2:CampaignTracker;
var _local3:CampaignTracker;
var _local4:CampaignKey;
var _local5:Variables;
_local2 = getOrganicCampaign();
_local3 = new CampaignTracker();
_local4 = _config.campaignKey;
if (_arg1 == ""){
return (_local3);
};
_local5 = 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 _local2:URL;
var _local3:String;
var _local4:Array;
var _local5:OrganicReferrer;
var _local6:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (_local1);
};
_local2 = new URL(_referrer);
_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 isIgnoredReferral(_arg1:CampaignTracker):Boolean{
if (((_arg1) && ((_arg1.medium == "referral")))){
return (_config.organic.isIgnoredReferral(_arg1.source));
};
return (false);
}
public function getDirectCampaign():CampaignTracker{
var _local1:CampaignTracker;
_local1 = 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 getReferrerCampaign():CampaignTracker{
var _local1:CampaignTracker;
var _local2:URL;
var _local3:String;
var _local4:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (_local1);
};
_local2 = new URL(_referrer);
_local3 = _local2.hostName;
_local4 = _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;
_local3 = 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 76
//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 id:String;
public var clickId:String;
public var name:String;
public var term:String;
public var medium:String;
public var source: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 toTrackerString():String{
var _local1:Array;
_local1 = [];
_addIfNotEmpty(_local1, "utmcsr=", source);
_addIfNotEmpty(_local1, "utmccn=", name);
_addIfNotEmpty(_local1, "utmcmd=", medium);
_addIfNotEmpty(_local1, "utmctr=", term);
_addIfNotEmpty(_local1, "utmcct=", content);
_addIfNotEmpty(_local1, "utmcid=", id);
_addIfNotEmpty(_local1, "utmgclid=", clickId);
return (_local1.join(CampaignManager.trackingDelimiter));
}
public function isValid():Boolean{
if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){
return (true);
};
return (false);
}
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;
var _local3:Variables;
_local2 = _arg1.split(CampaignManager.trackingDelimiter).join("&");
_local3 = 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 77
//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;
_local1 = toVariables();
return (_local1.toString());
}
public function get utmsr():String{
return (((_info.screenWidth + "x") + _info.screenHeight));
}
public function get utmcs():String{
return (_info.languageEncoding);
}
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 toVariables():Variables{
var _local1:Variables;
_local1 = 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 78
//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 _OBJ:Object;
private var _utma:UTMA;
private var _utmb:UTMB;
private var _utmc:UTMC;
private var _debug:DebugConfiguration;
private var _utmk:UTMK;
private var _config:Configuration;
private var _utmv:UTMV;
private var _utmz:UTMZ;
private var _volatile:Boolean;
public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){
var _local5:Boolean;
var _local6:String;
super();
_config = _arg1;
_debug = _arg2;
UTMB.defaultTimespan = _config.sessionTimeout;
UTMZ.defaultTimespan = _config.conversionTimeout;
if (!_arg3){
_SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath);
_local5 = 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();
_local5 = 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();
_local5 = true;
};
};
if (_SO.data.utmc){
delete _SO.data.utmc;
_local5 = true;
};
if (_SO.data.utmk){
if (!hasUTMK()){
_createUMTK();
};
_utmk.fromSharedObject(_SO.data.utmk);
if (_debug.verbose){
_debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek);
};
};
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();
_local5 = 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();
_local5 = true;
};
};
if (_local5){
save();
};
} else {
_OBJ = new Object();
if (_arg4){
for (_local6 in _arg4) {
_OBJ[_local6] = _arg4[_local6];
};
};
};
_volatile = _arg3;
}
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 clearCookies():void{
utma.reset();
utmb.reset();
utmc.reset();
utmz.reset();
utmv.reset();
utmk.reset();
}
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 isGenuine():Boolean{
if (!hasUTMK()){
return (true);
};
return ((utmk.hash == generateCookiesHash()));
}
public function resetCurrentSession():void{
_clearUTMB();
_clearUTMC();
save();
}
public function hasUTMC():Boolean{
if (_utmc){
return (true);
};
return (false);
}
public function hasUTMK():Boolean{
if (_utmk){
return (true);
};
return (false);
}
public function generateCookiesHash():Number{
var _local1:String;
_local1 = "";
_local1 = (_local1 + utma.valueOf());
_local1 = (_local1 + utmb.valueOf());
_local1 = (_local1 + utmc.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 hasUTMZ():Boolean{
if (_utmz){
return (true);
};
return (false);
}
private function _createUMTV():void{
_utmv = new UTMV();
_utmv.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;
};
}
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);
}
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;
};
}
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 79
//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 _config:Configuration;
private var _utmr:String;
private var _adSense:AdSenseGlobals;
private var _info:Environment;
private var _pageURL:String;
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;
_local1 = toVariables();
return (_local1.toString());
}
private function _renderPageURL(_arg1:String=""):String{
var _local2:String;
var _local3:String;
_local2 = _info.locationPath;
_local3 = _info.locationSearch;
if (((!(_arg1)) || ((_arg1 == "")))){
_arg1 = (_local2 + unescape(_local3));
};
return (_arg1);
}
public function get utmp():String{
return (_renderPageURL(_pageURL));
}
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 get utmhid():String{
return (String(_generateHitId()));
}
public function toVariables():Variables{
var _local1:Variables;
_local1 = 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 80
//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 _name:String;
private var _debug:DebugConfiguration;
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 81
//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 82
//EventInfo (com.google.analytics.core.EventInfo)
package com.google.analytics.core {
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
public class EventInfo {
private var _isEventHit:Boolean;
private var _ext10:X10;
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;
_local1 = 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;
_local1 = new Variables();
_local1.URIencode = true;
if (_isEventHit){
_local1.utmt = utmt;
};
_local1.utme = utme;
return (_local1);
}
}
}//package com.google.analytics.core
Section 83
//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 84
//ga_internal (com.google.analytics.core.ga_internal)
package com.google.analytics.core {
public namespace ga_internal;
}//package com.google.analytics.core
Section 85
//GIFRequest (com.google.analytics.core.GIFRequest)
package com.google.analytics.core {
import flash.display.*;
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.net.*;
import com.google.analytics.utils.*;
import flash.system.*;
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;
var _local3:String;
var _local4:String;
_local2 = _lastRequest.url;
_local3 = String((_requests.length - 1));
_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;
_local1 = [];
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 loader:Loader;
var context:LoaderContext;
var request = _arg1;
loader = new Loader();
loader.name = String(_count++);
context = 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 _local1:Number;
var _local2:Number;
_local1 = 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);
};
};
}
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);
}
public function get utmhn():String{
return (_info.domainName);
}
private function _debugSend(_arg1:URLRequest):void{
var _local2:String;
var _local3:String;
_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;
var _local3:String;
var _local4:String;
_local2 = _arg1.target.loader.name;
_requests[_local2].complete();
_local3 = (("Gif Request #" + _local2) + " sent");
_local4 = _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 86
//IdleTimer (com.google.analytics.core.IdleTimer)
package com.google.analytics.core {
import flash.display.*;
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.utils.*;
public class IdleTimer {
private var _loop:Timer;
private var _stage:Stage;
private var _lastMove:int;
private var _debug:DebugConfiguration;
private var _session:Timer;
private var _inactivity:Number;
private var _buffer:Buffer;
public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){
var _local5:Number;
var _local6:Number;
var _local7:Number;
super();
_local5 = _arg1.idleLoop;
_local6 = _arg1.idleTimeout;
_local7 = _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;
_local2 = getTimer();
if ((_local2 - _lastMove) >= _inactivity){
if (!_session.running){
_debug.info("session timer start", VisualDebugMode.geek);
_session.start();
};
};
}
}
}//package com.google.analytics.core
Section 87
//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 getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{
var _local3:String;
_local3 = _arg1.keyword;
return (getKeywordValueFromPath(_local3, _arg2));
}
public function isIgnoredKeyword(_arg1:String):Boolean{
if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){
return (true);
};
return (false);
}
public function isIgnoredReferral(_arg1:String):Boolean{
if (_ignoredReferralsCache.hasOwnProperty(_arg1)){
return (true);
};
return (false);
}
public function clear():void{
clearEngines();
clearIgnoredReferrals();
clearIgnoredKeywords();
}
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 get count():int{
return (_sources.length);
}
public function addSource(_arg1:String, _arg2:String):void{
var _local3:OrganicReferrer;
_local3 = 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 clearIgnoredKeywords():void{
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
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 88
//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 set engine(_arg1:String):void{
_engine = _arg1.toLowerCase();
}
public function get keyword():String{
return (_keyword);
}
public function toString():String{
return (((engine + "?") + keyword));
}
public function get engine():String{
return (_engine);
}
public function set keyword(_arg1:String):void{
_keyword = _arg1.toLowerCase();
}
}
}//package com.google.analytics.core
Section 89
//RequestObject (com.google.analytics.core.RequestObject)
package com.google.analytics.core {
import flash.net.*;
import flash.utils.*;
public class RequestObject {
public var start:int;
public var request:URLRequest;
public var end:int;
public function RequestObject(_arg1:URLRequest){
start = getTimer();
this.request = _arg1;
}
public function toString():String{
var _local1:Array;
_local1 = [];
_local1.push((("duration: " + duration) + "ms"));
_local1.push(("url: " + request.url));
return ((("{ " + _local1.join(", ")) + " }"));
}
public function get duration():int{
if (!hasCompleted()){
return (0);
};
return ((end - start));
}
public function hasCompleted():Boolean{
return ((end > 0));
}
public function complete():void{
end = getTimer();
}
}
}//package com.google.analytics.core
Section 90
//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 91
//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 trackTrans():void{
enqueue("trackTrans");
}
public function trackPageview(_arg1:String=""):void{
enqueue("trackPageview", _arg1);
}
public function setClientInfo(_arg1:Boolean):void{
enqueue("setClientInfo", _arg1);
}
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 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 resetSession():void{
enqueue("resetSession");
}
public function setDetectFlash(_arg1:Boolean):void{
enqueue("setDetectFlash", _arg1);
}
public function clear():void{
_ar = [];
}
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 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 setVar(_arg1:String):void{
enqueue("setVar", _arg1);
}
public function clearIgnoredOrganic():void{
enqueue("clearIgnoredOrganic");
}
public function setDomainName(_arg1:String):void{
enqueue("setDomainName", _arg1);
}
public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment."));
};
return (null);
}
public function setCampSourceKey(_arg1:String):void{
enqueue("setCampSourceKey", _arg1);
}
public function setCampContentKey(_arg1:String):void{
enqueue("setCampContentKey", _arg1);
}
public function clearIgnoredRef():void{
enqueue("clearIgnoredRef");
}
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 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 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 setDetectTitle(_arg1:Boolean):void{
enqueue("setDetectTitle", _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 92
//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 93
//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 _local3:Array;
var _local4:String;
var _local5:int;
var _local6:int;
var _local7:int;
if (_arg1 == ""){
return ("");
};
_local3 = [" ", "\n", "\r", "\t"];
_local4 = _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 _local2:int;
var _local3:int;
var _local4:int;
var _local5:int;
_local2 = 1;
_local3 = 0;
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;
_local2 = /^UA-[0-9]*-[0-9]*$/;
return (_local2.test(_arg1));
}
}
}//package com.google.analytics.core
Section 94
//Cookie (com.google.analytics.data.Cookie)
package com.google.analytics.data {
public interface Cookie {
function toURLString():String;
function toSharedObject():Object;
function set creation(_arg1:Date):void;
function fromSharedObject(_arg1:Object):void;
function get expiration():Date;
function isExpired():Boolean;
function set expiration(_arg1:Date):void;
function get creation():Date;
}
}//package com.google.analytics.data
Section 95
//UTMA (com.google.analytics.data.UTMA)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMA extends UTMCookie {
private var _domainHash:Number;
private var _firstTime:Number;
private var _currentTime:Number;
private var _sessionId: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 get sessionCount():Number{
return (_sessionCount);
}
public function get firstTime():Number{
return (_firstTime);
}
public function set sessionId(_arg1:Number):void{
_sessionId = _arg1;
update();
}
public function set sessionCount(_arg1:Number):void{
_sessionCount = _arg1;
update();
}
public function set firstTime(_arg1:Number):void{
_firstTime = _arg1;
update();
}
public function set currentTime(_arg1:Number):void{
_currentTime = _arg1;
update();
}
public function get sessionId():Number{
return (_sessionId);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function get currentTime():Number{
return (_currentTime);
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 96
//UTMB (com.google.analytics.data.UTMB)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMB extends UTMCookie {
private var _lastTime:Number;
private var _domainHash:Number;
private var _trackCount: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 get token():Number{
return (_token);
}
public function set trackCount(_arg1:Number):void{
_trackCount = _arg1;
update();
}
public function set lastTime(_arg1:Number):void{
_lastTime = _arg1;
update();
}
public function get lastTime():Number{
return (_lastTime);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set token(_arg1:Number):void{
_token = _arg1;
update();
}
public function get trackCount():Number{
return (_trackCount);
}
}
}//package com.google.analytics.data
Section 97
//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 set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 98
//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;
private var _timespan:Number;
protected var fields:Array;
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 _local1:int;
var _local2:String;
var _local3:int;
_local1 = 0;
_local3 = 0;
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);
}
protected function update():void{
resetTimestamp();
if (proxy){
proxy.update(name, toSharedObject());
};
}
public function fromSharedObject(_arg1:Object):void{
var _local2:String;
var _local3:int;
var _local4:int;
_local3 = fields.length;
_local4 = 0;
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;
var _local2:Number;
_local1 = new Date();
_local2 = (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 reset():void{
var _local1:String;
var _local2:int;
_local2 = 0;
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 valueOf():String{
var _local1:Array;
var _local2:String;
var _local3:*;
var _local4:int;
_local1 = [];
_local4 = 0;
while (_local4 < fields.length) {
_local2 = fields[_local4];
_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);
};
};
};
};
_local4++;
};
return (("" + _local1.join(".")));
}
public function resetTimestamp(_arg1:Number=NaN):void{
if (!isNaN(_arg1)){
_timespan = _arg1;
};
_creation = null;
_expiration = null;
_timestamp(_timespan);
}
public function get expiration():Date{
if (_expiration){
return (_expiration);
};
return (new Date((new Date().valueOf() + 1000)));
}
public function toURLString():String{
return (((inURL + "=") + valueOf()));
}
public function toSharedObject():Object{
var _local1:Object;
var _local2:String;
var _local3:*;
var _local4:int;
_local1 = {};
_local4 = 0;
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 _local2:Array;
var _local3:String;
var _local4:*;
var _local5:int;
var _local6:int;
var _local7:String;
_local2 = [];
_local5 = fields.length;
_local6 = 0;
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));
};
};
};
};
_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 99
//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 get hash():Number{
return (_hash);
}
public function set hash(_arg1:Number):void{
_hash = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 100
//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 set value(_arg1:String):void{
_value = _arg1;
update();
}
override public function toURLString():String{
return (((inURL + "=") + encodeURI(valueOf())));
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
}
}//package com.google.analytics.data
Section 101
//UTMZ (com.google.analytics.data.UTMZ)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMZ extends UTMCookie {
private var _domainHash:Number;
private var _campaignSessions:Number;
private var _campaignTracking:String;
private var _responseCount:Number;
private var _campaignCreation: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 get campaignCreation():Number{
return (_campaignCreation);
}
public function set campaignSessions(_arg1:Number):void{
_campaignSessions = _arg1;
update();
}
public function set responseCount(_arg1:Number):void{
_responseCount = _arg1;
update();
}
public function set campaignCreation(_arg1:Number):void{
_campaignCreation = _arg1;
update();
}
public function get campaignSessions():Number{
return (_campaignSessions);
}
public function get responseCount():Number{
return (_responseCount);
}
public function set domainHash(_arg1:Number):void{
_domainHash = _arg1;
update();
}
public function get campaignTracking():String{
return (_campaignTracking);
}
public function set campaignTracking(_arg1:String):void{
_campaignTracking = _arg1;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
}
}//package com.google.analytics.data
Section 102
//X10 (com.google.analytics.data.X10)
package com.google.analytics.data {
public class X10 {
private var _delimEnd:String;// = ")"
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 _projectData:Object;
private var _hasData:int;
private var _escapeCharMap:Object;
private var _minimum:int;
private var _value:String;// = "v"
public function X10(){
_key = "k";
_value = "v";
_set = [_key, _value];
_delimBegin = "(";
_delimEnd = ")";
_delimSet = "*";
_delimNumValue = "!";
_escapeChar = "'";
super();
_projectData = {};
_escapeCharMap = {};
_escapeCharMap[_escapeChar] = "'0";
_escapeCharMap[_delimEnd] = "'1";
_escapeCharMap[_delimSet] = "'2";
_escapeCharMap[_delimNumValue] = "'3";
_minimum = 1;
}
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 hasData():Boolean{
return ((_hasData > 0));
}
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);
}
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 _local2:Array;
var _local3:String;
var _local4:int;
_local2 = [];
_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 clearValue(_arg1:Number):void{
_clearInternal(_arg1, _value);
}
public function renderMergedUrlString(_arg1:X10=null):String{
var _local2:Array;
var _local3:String;
if (!_arg1){
return (renderUrlString());
};
_local2 = [_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 _local1:Array;
var _local2:String;
_local1 = [];
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 getValue(_arg1:Number, _arg2:Number){
var _local3:*;
_local3 = _getInternal(_arg1, _value, _arg2);
if (_local3 == null){
return (null);
};
return (Number(_local3));
}
private function _renderProject(_arg1:Object):String{
var _local2:String;
var _local3:Boolean;
var _local4:int;
var _local5:Array;
var _local6:int;
_local2 = "";
_local3 = false;
_local6 = _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);
}
private function _escapeExtensibleValue(_arg1:String):String{
var _local2:String;
var _local3:int;
var _local4:String;
var _local5:String;
_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 103
//_Style (com.google.analytics.debug._Style)
package com.google.analytics.debug {
import flash.net.*;
import flash.text.*;
public class _Style {
public var borderColor:uint;
public var backgroundColor:uint;
private var _sheet:StyleSheet;
public var roundedCorner:uint;
public var alertColor:uint;
public var infoColor:uint;
public var successColor:uint;
private var _loader:URLLoader;
public var failureColor:uint;
private var _defaultSheet:String;
public var warningColor:uint;
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 104
//Alert (com.google.analytics.debug.Alert)
package com.google.analytics.debug {
import flash.events.*;
public class Alert extends Label {
public var actionOnNextLine:Boolean;// = true
public var autoClose: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){
var _local8:int;
autoClose = true;
actionOnNextLine = 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 = [];
_local8 = 0;
while (_local8 < _arg2.length) {
_arg2[_local8].container = this;
_actions.push(_arg2[_local8]);
_local8++;
};
}
protected function getAction(_arg1:String):AlertAction{
var _local2:int;
_local2 = 0;
while (_local2 < _actions.length) {
if (_arg1 == _actions[_local2].activator){
return (_actions[_local2]);
};
_local2++;
};
return (null);
}
override protected function layout():void{
super.layout();
_defineActions();
}
protected function spaces(_arg1:int):String{
var _local2:String;
var _local3:String;
var _local4:int;
_local2 = "";
_local3 = " ";
_local4 = 0;
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();
};
}
protected function isValidAction(_arg1:String):Boolean{
var _local2:int;
_local2 = 0;
while (_local2 < _actions.length) {
if (_arg1 == _actions[_local2].activator){
return (true);
};
_local2++;
};
return (false);
}
private function _defineActions():void{
var _local1:String;
var _local2:Array;
var _local3:AlertAction;
var _local4:int;
_local1 = "";
if (actionOnNextLine){
_local1 = (_local1 + "\n");
} else {
_local1 = (_local1 + " |");
};
_local1 = (_local1 + " ");
_local2 = [];
_local4 = 0;
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");
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 105
//AlertAction (com.google.analytics.debug.AlertAction)
package com.google.analytics.debug {
public class AlertAction {
public var container:Alert;
private var _callback;
public var name:String;
public var activator: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 106
//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 107
//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;
_local7 = 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 108
//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
public var maxLines:uint;// = 16
private var _linediff:int;// = 0
public static var count:uint = 0;
public function Debug(_arg1:uint=0, _arg2:Align=null, _arg3:Boolean=false){
_linediff = 0;
_preferredForcedWidth = 540;
maxLines = 16;
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 close():void{
dispose();
}
public function writeBold(_arg1:String):void{
write(_arg1, true);
}
override protected function dispose():void{
removeEventListener(KeyboardEvent.KEY_DOWN, onKey);
super.dispose();
}
override public function get forcedWidth():uint{
if (this.parent){
if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){
return (_preferredForcedWidth);
};
return (UISprite(this.parent).forcedWidth);
} else {
};
return (!NULL!);
}
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");
}
public function write(_arg1:String, _arg2:Boolean=false):void{
var _local3:Array;
var _local4:String;
var _local5:String;
var _local6:int;
var _local7:Array;
if (_arg1.indexOf("") > -1){
_local3 = _arg1.split("\n");
} else {
_local3 = [_arg1];
};
_local4 = "";
_local5 = "";
if (_arg2){
_local4 = "<b>";
_local5 = "</b>";
};
_local6 = 0;
while (_local6 < _local3.length) {
_lines.push(((_local4 + _local3[_local6]) + _local5));
_local6++;
};
_local7 = _getLinesToDisplay();
text = _local7.join("\n");
}
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);
}
}
}//package com.google.analytics.debug
Section 109
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration)
package com.google.analytics.debug {
import com.google.analytics.core.*;
import flash.net.*;
import flash.utils.*;
import flash.ui.*;
public class DebugConfiguration {
public var showHideKey:Number;
private var _mode:VisualDebugMode;
private var _verbose:Boolean;// = false
public var destroyKey:Number;
public var GIFRequests:Boolean;// = false
public var infoTimeout:Number;// = 1000
public var showInfos:Boolean;// = true
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(){
_active = false;
_verbose = false;
_visualInitialized = false;
_mode = VisualDebugMode.basic;
traceOutput = false;
javascript = false;
GIFRequests = false;
showInfos = true;
infoTimeout = 1000;
showWarnings = true;
warningTimeout = 1500;
minimizedOnStart = false;
showHideKey = Keyboard.SPACE;
destroyKey = Keyboard.BACKSPACE;
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 _local2:Array;
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:int;
var _local7:Array;
var _local8:int;
_local2 = [];
_local3 = "";
_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));
};
_local5 = _local2.length;
_local6 = 0;
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 110
//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;
var _local5:Boolean;
var _local6:Boolean;
_local4 = Align.bottomLeft;
_local5 = true;
_local6 = false;
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 111
//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 112
//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 createWarning(_arg1:String):void;
function addToStage(_arg1:DisplayObject):void;
function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):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 createAlert(_arg1:String):void;
function destroy():void;
function bringToFront(_arg1:DisplayObject):void;
function isAvailable():Boolean;
}
}//package com.google.analytics.debug
Section 113
//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 onComplete(_arg1:TimerEvent):void{
close();
}
override public function onLink(_arg1:TextEvent):void{
switch (_arg1.text){
case "hide":
close();
break;
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 114
//Label (com.google.analytics.debug.Label)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
import flash.text.*;
public class Label extends UISprite {
private var _text:String;
private var _textField:TextField;
private var _color:uint;
protected var selectable:Boolean;
public var stickToEdge:Boolean;
private var _background:Shape;
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);
}
override protected function dispose():void{
_textField.removeEventListener(TextEvent.LINK, onLink);
super.dispose();
}
private function _draw():void{
var _local1:Graphics;
var _local2:uint;
var _local3:uint;
_local1 = _background.graphics;
_local1.clear();
_local1.beginFill(_color);
_local2 = _textField.width;
_local3 = _textField.height;
if (forcedWidth > 0){
_local2 = forcedWidth;
};
Background.drawRounded(this, _local1, _local2, _local3);
_local1.endFill();
}
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 get text():String{
return (_textField.text);
}
public function set tag(_arg1:String):void{
_tag = _arg1;
text = "";
}
public function set text(_arg1:String):void{
if (_arg1 == ""){
_arg1 = _text;
};
_textField.htmlText = (((("<span class=\"" + tag) + "\">") + _arg1) + "</span>");
_text = _arg1;
_draw();
resize();
}
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 onLink(_arg1:TextEvent):void{
}
public function get tag():String{
return (_tag);
}
}
}//package com.google.analytics.debug
Section 115
//Layout (com.google.analytics.debug.Layout)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
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){
_maxCharPerLine = 85;
super();
_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 bringToFront(_arg1:DisplayObject):void{
_display.stage.setChildIndex(_arg1, (_display.stage.numChildren - 1));
}
public function createFailureAlert(_arg1:String):void{
var _local2:AlertAction;
var _local3:Alert;
if (_debug.verbose){
_arg1 = _filterMaxChars(_arg1);
_local2 = new AlertAction("Close", "close", "close");
} else {
_local2 = new AlertAction("X", "close", "close");
};
_local3 = 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:int;
var _local2:uint;
var _local3:uint;
var _local4:Panel;
_local1 = 10;
_local2 = (_display.stage.stageWidth - (_local1 * 2));
_local3 = (_display.stage.stageHeight - (_local1 * 2));
_local4 = 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 _local3:DisplayObject;
var _local4:Panel;
_local3 = _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 _local3:String;
var _local4:Array;
var _local5:Array;
var _local6:String;
var _local7:int;
_local3 = "\n";
_local4 = [];
_local5 = _arg1.split(_local3);
if (_arg2 == 0){
_arg2 = _maxCharPerLine;
};
_local7 = 0;
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));
}
public function createWarning(_arg1:String):void{
var _local2:Warning;
if (((_hasWarning) || (!(isAvailable())))){
_warningQueue.push(_arg1);
return;
};
_arg1 = _filterMaxChars(_arg1);
_hasWarning = true;
_local2 = new Warning(_arg1, _debug.warningTimeout);
addToPanel("analytics", _local2);
_local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true);
if (_hasDebug){
visualDebug.writeBold(_arg1);
};
}
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;
var _local3:Alert;
if (_debug.verbose){
_arg1 = _filterMaxChars(_arg1);
_local2 = new AlertAction("Close", "close", "close");
} else {
_local2 = new AlertAction("X", "close", "close");
};
_local3 = 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{
var _local2:Alert;
_arg1 = _filterMaxChars(_arg1);
_local2 = new Alert(_arg1, [new AlertAction("Close", "close", "close")]);
addToPanel("analytics", _local2);
if (_hasDebug){
visualDebug.writeBold(_arg1);
};
}
public function createInfo(_arg1:String):void{
var _local2:Info;
if (((_hasInfo) || (!(isAvailable())))){
_infoQueue.push(_arg1);
return;
};
_arg1 = _filterMaxChars(_arg1);
_hasInfo = true;
_local2 = 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 f:Function;
var gra:GIFRequestAlert;
var message = _arg1;
var request = _arg2;
var ref = _arg3;
if (_hasGRAlert){
_GRAlertQueue.push([message, request, ref]);
return;
};
_hasGRAlert = true;
f = function ():void{
ref.sendRequest(request);
};
message = _filterMaxChars(message);
gra = 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;
_local4 = 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 116
//Margin (com.google.analytics.debug.Margin)
package com.google.analytics.debug {
public class Margin {
public var bottom:int;
public var top:int;
public var right:int;
public var left: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 117
//Panel (com.google.analytics.debug.Panel)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class Panel extends UISprite {
protected var baseAlpha:Number;
private var _border:Shape;
private var _name:String;
private var _title:Label;
private var _data:UISprite;
private var _backgroundColor:uint;
private var _colapsed:Boolean;
private var _stickToEdge:Boolean;
private var _background:Shape;
private var _savedW:uint;
private var _mask:Sprite;
private var _savedH:uint;
private var _borderColor:uint;
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 set stickToEdge(_arg1:Boolean):void{
_stickToEdge = _arg1;
_title.stickToEdge = _arg1;
}
public function onToggle(_arg1:MouseEvent=null):void{
if (_colapsed){
_data.visible = true;
} else {
_data.visible = false;
};
_colapsed = !(_colapsed);
_update();
resize();
}
override protected function dispose():void{
_title.removeEventListener(MouseEvent.CLICK, onToggle);
super.dispose();
}
private function _draw():void{
var _local1:uint;
var _local2:uint;
var _local3:Graphics;
var _local4:Graphics;
var _local5:Graphics;
var _local6:Graphics;
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;
};
_local3 = _background.graphics;
_local3.clear();
_local3.beginFill(_backgroundColor);
Background.drawRounded(this, _local3, _local1, _local2);
_local3.endFill();
_local4 = _data.graphics;
_local4.clear();
_local4.beginFill(_backgroundColor, 0);
Background.drawRounded(this, _local4, _local1, _local2);
_local4.endFill();
_local5 = _border.graphics;
_local5.clear();
_local5.lineStyle(0.1, _borderColor);
Background.drawRounded(this, _local5, _local1, _local2);
_local5.endFill();
_local6 = _mask.graphics;
_local6.clear();
_local6.beginFill(_backgroundColor);
Background.drawRounded(this, _local6, (_local1 + 1), (_local2 + 1));
_local6.endFill();
}
override protected function layout():void{
_update();
addChild(_background);
addChild(_data);
addChild(_title);
addChild(_border);
addChild(_mask);
mask = _mask;
}
public function get title():String{
return (_title.text);
}
public function get stickToEdge():Boolean{
return (_stickToEdge);
}
public function set title(_arg1:String):void{
_title.text = _arg1;
}
private function _update():void{
_draw();
if (baseAlpha < 1){
_background.alpha = baseAlpha;
_border.alpha = baseAlpha;
};
}
public function addData(_arg1:DisplayObject):void{
_data.addChild(_arg1);
}
public function close():void{
dispose();
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 118
//Style (com.google.analytics.debug.Style)
package com.google.analytics.debug {
public const Style:_Style = new _Style();
}//package com.google.analytics.debug
Section 119
//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;
var _local5:Boolean;
var _local6:Boolean;
_local4 = Align.bottomLeft;
_local5 = true;
_local6 = false;
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 120
//UISprite (com.google.analytics.debug.UISprite)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class UISprite extends Sprite {
private var _forcedHeight:uint;
protected var listenResize:Boolean;
public var alignement:Align;
private var _forcedWidth:uint;
public var margin:Margin;
protected var alignTarget:DisplayObject;
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);
}
protected function dispose():void{
var _local1:DisplayObject;
var _local2:int;
_local2 = 0;
while (_local2 < numChildren) {
_local1 = getChildAt(_local2);
if (_local1){
removeChild(_local1);
};
_local2++;
};
}
protected function layout():void{
}
public function get forcedHeight():uint{
if (_forcedHeight){
return (_forcedHeight);
};
return (height);
}
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;
}
public function get forcedWidth():uint{
if (_forcedWidth){
return (_forcedWidth);
};
return (width);
}
protected function onResize(_arg1:Event):void{
resize();
}
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);
};
}
private function _onAddedToStage(_arg1:Event):void{
layout();
resize();
}
public function set forcedHeight(_arg1:uint):void{
_forcedHeight = _arg1;
}
public function set forcedWidth(_arg1:uint):void{
_forcedWidth = _arg1;
}
}
}//package com.google.analytics.debug
Section 121
//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 onComplete(_arg1:TimerEvent):void{
close();
}
override public function onLink(_arg1:TextEvent):void{
switch (_arg1.text){
case "hide":
close();
break;
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 122
//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 123
//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 124
//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){
_gaGlobalVerified = false;
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 get dh():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.dh"));
}
public function get gaGlobal():Object{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal"));
}
public function set hid(_arg1:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.hid", _arg1);
}
public function get sid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.sid"));
}
private function _verify():void{
if (!_gaGlobalVerified){
executeBlock(gaGlobal_js);
_gaGlobalVerified = true;
};
}
public function get vid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.vid"));
}
public function set sid(_arg1:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.sid", _arg1);
}
}
}//package com.google.analytics.external
Section 125
//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 _protocol:String;
private var _host:String;
private var _location:String;
private var _pathname:String;
private var _title:String;
private var _characterSet:String;
private var _search:String;
private var _language: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 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 cacheProperties():void{
var _local1:Object;
if (!isAvailable()){
return;
};
_local1 = 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 colorDepth():String{
if (_colorDepth){
return (_colorDepth);
};
if (!isAvailable()){
return (null);
};
_colorDepth = getProperty("window.screen.colorDepth");
return (_colorDepth);
}
public function get title():String{
if (_title){
return (_title);
};
if (!isAvailable()){
return (null);
};
_title = getProperty("document.title");
return (_title);
}
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{
var _local1:String;
if (_characterSet){
return (_characterSet);
};
if (!isAvailable()){
return (null);
};
_local1 = getProperty("document.characterSet");
if (_local1 == null){
_local1 = getProperty("document.charset");
};
_characterSet = _local1;
return (_characterSet);
}
public function get language():String{
var _local1:String;
if (_language){
return (_language);
};
if (!isAvailable()){
return (null);
};
_local1 = getProperty("navigator.language");
if (_local1 == null){
_local1 = getProperty("navigator.browserLanguage");
};
_language = _local1;
return (_language);
}
}
}//package com.google.analytics.external
Section 126
//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){
_notAvailableWarning = true;
super();
_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;
_local1 = 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 127
//Environment (com.google.analytics.utils.Environment)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import flash.system.*;
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 playerType():String{
return (Capabilities.playerType);
}
public function get locationSearch():String{
var _local1:String;
_local1 = _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;
_local1 = Version.fromString(Capabilities.version.split(" ")[1], ",");
return (_local1);
}
public function get screenWidth():Number{
return (Capabilities.screenResolutionX);
}
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;
var _local2:String;
switch (Capabilities.screenColor){
case "bw":
_local1 = "1";
break;
case "gray":
_local1 = "2";
break;
case "color":
default:
_local1 = "24";
};
_local2 = _dom.colorDepth;
if (_local2){
_local1 = _local2;
};
return (_local1);
}
private function _findProtocol():void{
var _local1:Protocols;
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:String;
_local1 = 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;
};
};
_local2 = _dom.protocol;
_local3 = (_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;
_local1 = 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;
}
public function get userAgent():UserAgent{
if (!_userAgent){
_userAgent = new UserAgent(this, appName, appVersion.toString(4));
};
return (_userAgent);
}
ga_internal function set url(_arg1:String):void{
_url = _arg1;
}
public function get referrer():String{
var _local1:String;
_local1 = _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;
var _local2:String;
_local1 = _dom.language;
_local2 = 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;
_local1 = _dom.pathname;
if (_local1){
return (_local1);
};
return ("");
}
public function get documentTitle():String{
var _local1:String;
_local1 = _dom.title;
if (_local1){
return (_local1);
};
return ("");
}
public function get appVersion():Version{
return (_appVersion);
}
}
}//package com.google.analytics.utils
Section 128
//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 129
//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 130
//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;
_local1 = _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 search():String{
var _local1:String;
_local1 = _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);
}
public function get subDomain():String{
if (((!((domain == ""))) && (!((domain == hostName))))){
return (hostName.split(("." + domain)).join(""));
};
return ("");
}
public function get protocol():Protocols{
var _local1:String;
_local1 = _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;
_local1 = _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);
}
}
}//package com.google.analytics.utils
Section 131
//UserAgent (com.google.analytics.utils.UserAgent)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import flash.system.*;
public class UserAgent {
private var _version:Version;
private var _localInfo:Environment;
private var _applicationProduct:String;
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 set applicationProduct(_arg1:String):void{
_applicationProduct = _arg1;
}
public function get applicationVersion():String{
return (_version.toString(2));
}
public function get applicationProductToken():String{
var _local1:String;
_local1 = applicationProduct;
if (applicationVersion != ""){
_local1 = (_local1 + ("/" + applicationVersion));
};
return (_local1);
}
public function get vendorProductToken():String{
var _local1:String;
_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:String;
_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 = [];
_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 applicationProduct():String{
return (_applicationProduct);
}
}
}//package com.google.analytics.utils
Section 132
//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 = [];
sort = true;
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;
var _local3:int;
_local2 = _args.length;
_local3 = 0;
while (_local3 < _local2) {
if (!(_args[_local3] is Variables)){
} else {
_join(_args[_local3]);
};
_local3++;
};
}
public function toString():String{
var _local1:Array;
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:int;
var _local6:int;
var _local7:String;
var _local8:String;
_local1 = [];
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;
var _local7:int;
if (_arg1 == ""){
return;
};
if (_arg1.indexOf("&") > -1){
_local2 = _arg1.split("&");
} else {
_local2 = [_arg1];
};
_local7 = 0;
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 _local1:URLVariables;
var _local2:String;
_local1 = new URLVariables();
for (_local2 in this) {
_local1[_local2] = this[_local2];
};
return (_local1);
}
}
}//package com.google.analytics.utils
Section 133
//Version (com.google.analytics.utils.Version)
package com.google.analytics.utils {
public class Version {
private var _maxBuild:uint;// = 0xFF
private var _maxMinor:uint;// = 15
private var _maxMajor:uint;// = 15
private var _revision:uint;
private var _separator:String;// = "."
private var _maxRevision:uint;// = 0xFFFF
private var _build:uint;
private var _minor:uint;
private var _major:uint;
public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){
var _local5:Version;
_maxMajor = 15;
_maxMinor = 15;
_maxBuild = 0xFF;
_maxRevision = 0xFFFF;
_separator = ".";
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 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);
}
public function valueOf():uint{
return (((((major << 28) | (minor << 24)) | (build << 16)) | revision));
}
public function get major():uint{
return (_major);
}
public function set revision(_arg1:uint):void{
_revision = Math.min(_arg1, _maxRevision);
}
private function getFields():int{
var _local1:int;
_local1 = 4;
if (revision == 0){
_local1--;
};
if ((((_local1 == 3)) && ((build == 0)))){
_local1--;
};
if ((((_local1 == 2)) && ((minor == 0)))){
_local1--;
};
return (_local1);
}
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 _local3:Version;
var _local4:Array;
_local3 = 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;
_local2 = 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 134
//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;
_hasGATracker = false;
_jsContainer = "_GATracker";
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);
}
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:int;
_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 trackPageview(_arg1:String=""):void{
_debug.info((("trackPageview( " + _arg1) + " )"));
_call("_trackPageview", _arg1);
}
public function setCookieTimeout(_arg1:int):void{
_debug.info((("setCookieTimeout( " + _arg1) + " )"));
_call("_setCookieTimeout", _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;
var _local3:Boolean;
_local2 = _proxy.hasProperty(_arg1);
_local3 = _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 setDetectFlash(_arg1:Boolean):void{
_debug.info((("setDetectFlash( " + _arg1) + " )"));
_call("_setDetectFlash", _arg1);
}
public function setCampNameKey(_arg1:String):void{
_debug.info((("setCampNameKey( " + _arg1) + " )"));
_call("_setCampNameKey", _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 addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{
_debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )"));
_call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8);
return (null);
}
public function setCampSourceKey(_arg1:String):void{
_debug.info((("setCampSourceKey( " + _arg1) + " )"));
_call("_setCampSourceKey", _arg1);
}
public function setCampContentKey(_arg1:String):void{
_debug.info((("setCampContentKey( " + _arg1) + " )"));
_call("_setCampContentKey", _arg1);
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_call("_clearIgnoreRef");
}
public function setLocalServerMode():void{
_debug.info("setLocalServerMode()");
_call("_setLocalServerMode");
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_call("_getLocalGifPath"));
}
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);
}
public function setCampTermKey(_arg1:String):void{
_debug.info((("setCampTermKey( " + _arg1) + " )"));
_call("_setCampTermKey", _arg1);
}
private function _createTrackingObject(_arg1:String):void{
_proxy.call(_createTrackingObject_js, _arg1);
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_call("_getDetectFlash"));
}
public function setCampaignTrack(_arg1:Boolean):void{
_debug.info((("setCampaignTrack( " + _arg1) + " )"));
_call("_setCampaignTrack", _arg1);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_call("_clearOrganic");
}
public function addIgnoredRef(_arg1:String):void{
_debug.info((("addIgnoredRef( " + _arg1) + " )"));
_call("_addIgnoredRef", _arg1);
}
public function setCampMediumKey(_arg1:String):void{
_debug.info((("setCampMediumKey( " + _arg1) + " )"));
_call("_setCampMediumKey", _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 135
//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 allowLocalTracking:Boolean;// = true
public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif"
public var hasSiteOverlay:Boolean;// = false
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;
private var _trackingLimitPerSession:int;// = 500
private var _domain:Domain;
public var allowAnchor:Boolean;// = false
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){
_version = "4.3as";
_sampleRate = 1;
_trackingLimitPerSession = 500;
_organic = new Organic();
googleCsePath = "cse";
googleSearchParam = "q";
google = "google";
_cookieName = "analytics";
allowDomainHash = true;
allowAnchor = false;
allowLinker = false;
hasSiteOverlay = false;
tokenRate = 0.2;
conversionTimeout = Timespan.sixmonths;
sessionTimeout = Timespan.thirtyminutes;
idleLoop = 30;
idleTimeout = 60;
maxOutboundLinkExamined = 1000;
tokenCliff = 10;
bucketCapacity = 10;
detectClientInfo = true;
detectFlash = true;
detectTitle = true;
campaignKey = new CampaignKey();
campaignTracking = true;
isTrackOutboundSubdomains = false;
serverMode = ServerOperationMode.remote;
localGIFpath = "/__utm.gif";
remoteGIFpath = "http://www.google-analytics.com/__utm.gif";
secureRemoteGIFpath = "https://ssl.google-analytics.com/__utm.gif";
cookiePath = "/";
transactionFieldDelim = "|";
domainName = "";
allowLocalTracking = true;
super();
_debug = _arg1;
_domain = new Domain(DomainNameMode.auto, "", _debug);
serverMode = ServerOperationMode.remote;
_initOrganicSources();
}
public function get organic():Organic{
return (_organic);
}
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 get cookieName():String{
return (_cookieName);
}
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 136
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
public interface GoogleAnalyticsAPI {
function getServiceMode():ServerOperationMode;
function setLocalRemoteServerMode():void;
function setCampSourceKey(_arg1:String):void;
function setCampContentKey(_arg1:String):void;
function addOrganic(_arg1:String, _arg2:String):void;
function setDetectFlash(_arg1:Boolean):void;
function resetSession():void;
function setCampTermKey(_arg1:String):void;
function setCampNameKey(_arg1:String):void;
function addIgnoredOrganic(_arg1:String):void;
function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void;
function setAllowLinker(_arg1:Boolean):void;
function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object;
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 trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean;
function trackPageview(_arg1:String=""):void;
function setLocalGifPath(_arg1:String):void;
function getVersion():String;
function getLocalGifPath():String;
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 clearIgnoredRef():void;
function linkByPost(_arg1:Object, _arg2:Boolean=false):void;
function setLocalServerMode():void;
function setDetectTitle(_arg1:Boolean):void;
function setAllowHash(_arg1:Boolean):void;
function clearOrganic():void;
function getAccount():String;
function setDomainName(_arg1:String):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 137
//Tracker (com.google.analytics.v4.Tracker)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.data.*;
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 _account:String;
public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals){
var _local8:String;
_hasInitData = false;
_isNewVisitor = false;
_noSessionInformation = false;
super();
_account = _arg1;
_config = _arg2;
_debug = _arg3;
_info = _arg4;
_buffer = _arg5;
_gifRequest = _arg6;
_adSense = _arg7;
if (!Utils.validateAccount(_arg1)){
_local8 = (("Account \"" + _arg1) + "\" is not valid.");
_debug.warning(_local8);
throw (new Error(_local8));
};
_initData();
}
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 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{
_debug.warning("trackTrans() not implemented");
}
public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{
var _local5:Boolean;
var _local6:int;
_local5 = true;
_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 setClientInfo(_arg1:Boolean):void{
_config.detectClientInfo = _arg1;
_debug.info((("setClientInfo( " + _config.detectClientInfo) + " )"));
}
public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{
_debug.warning((("linkByPost( " + [_arg1, _arg2].join(", ")) + " ) not implemented"));
}
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);
};
};
_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();
}
private function _sendXEvent(_arg1:X10=null):void{
var _local2:Variables;
var _local3:EventInfo;
var _local4:Variables;
var _local5:Variables;
_initData();
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{
var _local2:String;
_config.campaignKey.UCCN = _arg1;
_local2 = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCCN]"));
} else {
_debug.info(_local2);
};
}
private function _formatReferrer():String{
var _local1:String;
var _local2:String;
var _local3:URL;
var _local4:URL;
_local1 = _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{
_debug.warning((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " ) not implemented"));
}
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 = _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) + " )"));
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_config.detectClientInfo);
}
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):Object{
_debug.warning((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " ) not implemented"));
return (null);
}
public function setCampContentKey(_arg1:String):void{
var _local2:String;
_config.campaignKey.UCCT = _arg1;
_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){
};
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()");
}
private function _renderMetricsSearchVariables(_arg1:String=""):Variables{
var _local2:Variables;
var _local3:DocumentInfo;
var _local4:Variables;
var _local5:Variables;
_local2 = new Variables();
_local2.URIencode = true;
_local3 = new DocumentInfo(_config, _info, _formatedReferrer, _arg1, _adSense);
_debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek);
if (_config.campaignTracking){
_local4 = _campaignInfo.toVariables();
};
_local5 = _browserInfo.toVariables();
_local2.join(_local3.toVariables(), _local5, _local4);
return (_local2);
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_config.organic.clearIgnoredReferrals();
}
public function setCampSourceKey(_arg1:String):void{
var _local2:String;
_config.campaignKey.UCSR = _arg1;
_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;
var _local2:Boolean;
var _local3:Boolean;
var _local4:Boolean;
var _local5:Boolean;
_local1 = _config.domainName;
_local2 = (_local1.indexOf("www.google.") < 0);
_local3 = (_local1.indexOf(".google.") < 0);
_local4 = (_local1.indexOf("google.") < 0);
_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:String;
_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 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{
var _local2:String;
_config.campaignKey.UCTR = _arg1;
_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);
}
public function setCampNOKey(_arg1:String):void{
var _local2:String;
_config.campaignKey.UCNO = _arg1;
_local2 = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((_local2 + " [UCNO]"));
} else {
_debug.info(_local2);
};
}
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{
var _local2:String;
_config.campaignKey.UCMD = _arg1;
_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;
_local1 = ((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{
_debug.warning((("link( " + [_arg1, _arg2].join(", ")) + " ) not implemented"));
}
public function setRemoteServerMode():void{
_config.serverMode = ServerOperationMode.remote;
_debug.info("setRemoteServerMode()");
}
}
}//package com.google.analytics.v4
Section 138
//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 config(_arg1:Configuration):void;
function isReady():Boolean;
function get mode():String;
function set debug(_arg1:DebugConfiguration):void;
function get account():String;
function set mode(_arg1:String):void;
function get config():Configuration;
function get debug():DebugConfiguration;
function set account(_arg1:String):void;
function get visualDebug():Boolean;
function set visualDebug(_arg1:Boolean):void;
}
}//package com.google.analytics
Section 139
//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: 234 $ ".split(" ")[1];
}
}//package com.google.analytics
Section 140
//GATracker (com.google.analytics.GATracker)
package com.google.analytics {
import flash.display.*;
import flash.events.*;
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 _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){
_ready = false;
super();
_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 setCookieTimeout(_arg1:int):void{
_tracker.setCookieTimeout(_arg1);
}
public function trackTrans():void{
_tracker.trackTrans();
}
public function trackPageview(_arg1:String=""):void{
_tracker.trackPageview(_arg1);
}
public function getClientInfo():Boolean{
return (_tracker.getClientInfo());
}
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 addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{
_eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5);
}
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 setDomainName(_arg1:String):void{
_tracker.setDomainName(_arg1);
}
public function createEventTracker(_arg1:String):EventTracker{
return (_tracker.createEventTracker(_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):Object{
return (_tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8));
}
public function setCampSourceKey(_arg1:String):void{
_tracker.setCampSourceKey(_arg1);
}
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 setCampNOKey(_arg1:String):void{
_tracker.setCampNOKey(_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;
var _local2:TrackerCache;
_jsproxy = new JavascriptProxy(debug);
if (visualDebug){
debug.layout = new Layout(debug, _display);
debug.active = visualDebug;
};
_local2 = (_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);
_env.url = _display.stage.loaderInfo.url;
return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense));
}
public function setDetectTitle(_arg1:Boolean):void{
_tracker.setDetectTitle(_arg1);
}
public function getServiceMode():ServerOperationMode{
return (_tracker.getServiceMode());
}
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 set visualDebug(_arg1:Boolean):void{
_visualDebug = _arg1;
}
public function setCampMediumKey(_arg1:String):void{
_tracker.setCampMediumKey(_arg1);
}
public function setSessionTimeout(_arg1:int):void{
_tracker.setSessionTimeout(_arg1);
}
public function getDetectFlash():Boolean{
return (_tracker.getDetectFlash());
}
public function get visualDebug():Boolean{
return (_visualDebug);
}
public function getAccount():String{
return (_tracker.getAccount());
}
public function hasEventListener(_arg1:String):Boolean{
return (_eventDispatcher.hasEventListener(_arg1));
}
public function setRemoteServerMode():void{
_tracker.setRemoteServerMode();
}
}
var _local1:* = ServerOperationMode;
return (_local1);
}//package com.google.analytics
Section 141
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent)
package com.kongregate.as3.client.events {
import flash.events.*;
public class KongregateEvent extends Event {
public static const COMPLETE:String = "component_api_available";
public function KongregateEvent(_arg1:String){
super(_arg1);
}
}
}//package com.kongregate.as3.client.events
Section 142
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService)
package com.kongregate.as3.client.services {
import flash.events.*;
public class AbstractShadowService extends EventDispatcher {
protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{
trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4));
}
}
}//package com.kongregate.as3.client.services
Section 143
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow)
package com.kongregate.as3.client.services {
public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices {
private var mode:String;
public function HighScoreServiceShadow(){
mode = "";
}
public function submit(_arg1:Number, _arg2:String=null):void{
alert("IHighScoreServices", "submit", arguments);
}
public function connect():Boolean{
alert("IKongregateServices", "connect");
return (true);
}
public function requestList(_arg1:Function):void{
alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]"));
_arg1({success:false});
}
public function setMode(_arg1:String):void{
alert("IHighScoreServices", "setMode", arguments);
this.mode = _arg1;
}
}
}//package com.kongregate.as3.client.services
Section 144
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices)
package com.kongregate.as3.client.services {
public interface IHighScoreServices {
function setMode(_arg1:String):void;
function submit(_arg1:Number, _arg2:String=null):void;
function requestList(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 145
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices)
package com.kongregate.as3.client.services {
import flash.events.*;
public interface IKongregateServices extends IEventDispatcher {
function getPlayerInfo(_arg1:Function):void;
function connect(_arg1:Number=-1):Boolean;
}
}//package com.kongregate.as3.client.services
Section 146
//IStatServices (com.kongregate.as3.client.services.IStatServices)
package com.kongregate.as3.client.services {
public interface IStatServices {
function submitArray(_arg1:Array):void;
function submit(_arg1:String, _arg2:Number):void;
}
}//package com.kongregate.as3.client.services
Section 147
//IUserServices (com.kongregate.as3.client.services.IUserServices)
package com.kongregate.as3.client.services {
public interface IUserServices {
function getName():String;
function getPlayerInfo(_arg1:Function):void;
}
}//package com.kongregate.as3.client.services
Section 148
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow)
package com.kongregate.as3.client.services {
public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices {
public function getName():String{
alert("IKongregateServices", "getName");
return ("Guest");
}
public function connect(_arg1:Number=-1):Boolean{
alert("IKongregateServices", "connect", arguments);
return (true);
}
public function getPlayerInfo(_arg1:Function):void{
alert("IKongregateServices", "getPlayerInfo");
_arg1(new Object());
}
}
}//package com.kongregate.as3.client.services
Section 149
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow)
package com.kongregate.as3.client.services {
public class StatServiceShadow extends AbstractShadowService implements IStatServices {
public function submitArray(_arg1:Array):void{
alert("IStatServices", "submitArray", arguments);
}
public function submit(_arg1:String, _arg2:Number):void{
alert("IStatServices", "submitStat", arguments);
}
}
}//package com.kongregate.as3.client.services
Section 150
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow)
package com.kongregate.as3.client.services {
public class UserServiceShadow extends AbstractShadowService implements IUserServices {
public function getName():String{
alert("UserService", "getName");
return ("Guest");
}
public function getPlayerInfo(_arg1:Function):void{
alert("UserService", "getPlayerInfo");
_arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""});
}
}
}//package com.kongregate.as3.client.services
Section 151
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap)
package com.kongregate.as3.client {
import flash.display.*;
import flash.events.*;
public interface IAPIBootstrap {
function init(_arg1:Event=null, _arg2:Stage=null):void;
function hideLog():void;
function showLog(_arg1:int=0):void;
}
}//package com.kongregate.as3.client
Section 152
//KongregateAPI (com.kongregate.as3.client.KongregateAPI)
package com.kongregate.as3.client {
import flash.display.*;
import flash.events.*;
import com.kongregate.as3.client.services.*;
import flash.net.*;
import flash.system.*;
import com.kongregate.as3.client.events.*;
import flash.utils.*;
import flash.errors.*;
public class KongregateAPI extends Sprite {
private const VERSION:Number = 1;
private var loader:Loader;
private var loadedDomain:ApplicationDomain;
private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices";
private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices";
private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices";
private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices";
private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf";
private static var _connected:Boolean;
private static var kUser:IUserServices;
private static var _loaded:Boolean;
private static var kServices:IKongregateServices;
private static var kScores:IHighScoreServices;
private static var mInstance:KongregateAPI;
private static var kStats:IStatServices;
private static var kAPI:IAPIBootstrap;
public function KongregateAPI(){
if (mInstance != null){
throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access."));
};
mInstance = this;
this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);
}
public function get loaded():Boolean{
return (_loaded);
}
public function get connected():Boolean{
return (_connected);
}
private function alertConnected(_arg1:TimerEvent=null):void{
var _local2:KongregateEvent;
var _local3:Boolean;
_local2 = new KongregateEvent(KongregateEvent.COMPLETE);
_local3 = this.dispatchEvent(_local2);
}
private function init(_arg1:Event):void{
var _local2:Object;
var _local3:String;
var _local4:URLRequest;
var _local5:LoaderContext;
this.removeEventListener(Event.ADDED_TO_STAGE, init);
_loaded = false;
_connected = false;
_local2 = LoaderInfo(root.loaderInfo).parameters;
_local3 = _local2.api_path;
if (_local3 == null){
trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded.");
createShadowServices();
return;
};
Security.allowDomain("*.kongregate.com");
Security.allowDomain("kongregatetrunk.com");
_local4 = new URLRequest(_local3);
_local5 = new LoaderContext(false);
_local5.applicationDomain = ApplicationDomain.currentDomain;
_local5.securityDomain = SecurityDomain.currentDomain;
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(_local4, _local5);
}
public function get api():IAPIBootstrap{
return (kAPI);
}
private function loadComplete(_arg1:Event):void{
getServices();
}
public function get scores():IHighScoreServices{
return (kScores);
}
private function ioErrorHandler(_arg1:IOErrorEvent):void{
throw (new IOError(("API file not found. " + _arg1)));
}
public function get services():IKongregateServices{
return (kServices);
}
public function get stats():IStatServices{
return (kStats);
}
private function createShadowServices():void{
var _local1:Timer;
trace(">>> Kongregate Shadow Services instantiated for local development..");
kServices = new KongregateServiceShadow();
kScores = new HighScoreServiceShadow();
kStats = new StatServiceShadow();
kUser = new UserServiceShadow();
_local1 = new Timer(200, 1);
_local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected);
_local1.start();
_connected = true;
}
public function get user():IUserServices{
return (kUser);
}
private function getServices():void{
var _local1:ApplicationDomain;
var _local2:*;
var _local3:*;
var _local4:*;
var _local5:*;
_local1 = ApplicationDomain.currentDomain;
kAPI = IAPIBootstrap(loader.getChildAt(0));
this.addChild(loader);
_local2 = _local1.getDefinition(CLASS_SERVICES);
trace(_local2);
kServices = _local2.getInstance();
_local3 = _local1.getDefinition(CLASS_SCORES);
kScores = _local3.getInstance();
_local4 = _local1.getDefinition(CLASS_STATS);
kStats = _local4.getInstance();
_local5 = _local1.getDefinition(CLASS_USER);
kUser = _local5.getInstance();
kServices.connect(VERSION);
_loaded = true;
_connected = true;
alertConnected();
}
public static function getInstance():KongregateAPI{
if (!mInstance){
throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it."));
};
return (mInstance);
}
}
}//package com.kongregate.as3.client
Section 153
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _tweenVisible:Boolean;
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
super();
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
this.onComplete = onCompleteTween;
}
override public function killProps($lookup:Object):void{
super.killProps($lookup);
_tweenVisible = !(Boolean(("visible" in $lookup)));
}
public function onCompleteTween():void{
if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_tween = $tween;
_visible = Boolean(!(($value == 0)));
_tweenVisible = true;
addTween($target, "alpha", $target.alpha, $value, "alpha");
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
if (((!((_target.visible == true))) && (_tweenVisible))){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 154
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import gs.utils.tween.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _a:Array;
protected var _info:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
public function init($start:Array, $end:Array):void{
_a = $start;
var i:int = ($end.length - 1);
while (i > -1) {
if (((!(($start[i] == $end[i]))) && (!(($start[i] == null))))){
_info[_info.length] = new ArrayTweenInfo(i, _a[i], ($end[i] - _a[i]));
};
i--;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((!(($target is Array))) || (!(($value is Array))))){
return (false);
};
init(($target as Array), $value);
return (true);
}
override public function set changeFactor($n:Number):void{
var i:int;
var ti:ArrayTweenInfo;
var val:Number;
var neg:int;
if (this.round){
i = (_info.length - 1);
while (i > -1) {
ti = _info[i];
val = (ti.start + (ti.change * $n));
neg = ((val)<0) ? -1 : 1;
_a[ti.index] = ((((val % 1) * neg))>0.5) ? (int(val) + neg) : int(val);
i--;
};
} else {
i = (_info.length - 1);
while (i > -1) {
ti = _info[i];
_a[ti.index] = (ti.start + (ti.change * $n));
i--;
};
};
}
}
}//package gs.plugins
Section 155
//FrameLabelPlugin (gs.plugins.FrameLabelPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class FrameLabelPlugin extends FramePlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function FrameLabelPlugin(){
super();
this.propName = "frameLabel";
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
var i:int;
if ((!($tween.target) is MovieClip)){
return (false);
};
_target = ($target as MovieClip);
var labels:Array = _target.currentLabels;
var label:String = $value;
var endFrame:int = _target.currentFrame;
i = (labels.length - 1);
while (i > -1) {
if (labels[i].name == label){
endFrame = labels[i].frame;
break;
};
i--;
};
if (_target.currentFrame != endFrame){
addTween(this, "frame", _target.currentFrame, endFrame, "frame");
};
return (true);
}
}
}//package gs.plugins
Section 156
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class FramePlugin extends TweenPlugin {
protected var _target:MovieClip;
public var frame:int;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function FramePlugin(){
super();
this.propName = "frame";
this.overwriteProps = ["frame"];
this.round = true;
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((!(($target is MovieClip))) || (isNaN($value)))){
return (false);
};
_target = ($target as MovieClip);
addTween(this, "frame", _target.currentFrame, $value, "frame");
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
_target.gotoAndStop(this.frame);
}
}
}//package gs.plugins
Section 157
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
super();
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 158
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.geom.*;
import gs.utils.tween.*;
public class TintPlugin extends TweenPlugin {
protected var _target:DisplayObject;
protected var _ct:ColorTransform;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
public function TintPlugin(){
super();
this.propName = "tint";
this.overwriteProps = ["tint"];
}
public function init($target:DisplayObject, $end:ColorTransform):void{
var i:int;
var p:String;
_target = $target;
_ct = _target.transform.colorTransform;
i = (_props.length - 1);
while (i > -1) {
p = _props[i];
if (_ct[p] != $end[p]){
_tweens[_tweens.length] = new TweenInfo(_ct, p, _ct[p], ($end[p] - _ct[p]), "tint", false);
};
i--;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (!($target is DisplayObject)){
return (false);
};
var end:ColorTransform = new ColorTransform();
if (((!(($value == null))) && (!(($tween.exposedVars.removeTint == true))))){
end.color = uint($value);
};
if (((!(($tween.exposedVars.alpha == undefined))) || (!(($tween.exposedVars.autoAlpha == undefined))))){
end.alphaMultiplier = (($tween.exposedVars.alpha)!=undefined) ? $tween.exposedVars.alpha : $tween.exposedVars.autoAlpha;
$tween.killVars({alpha:1, autoAlpha:1});
} else {
end.alphaMultiplier = $target.alpha;
};
init(($target as DisplayObject), end);
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
_target.transform.colorTransform = _ct;
}
}
}//package gs.plugins
Section 159
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var propName:String;
public var onComplete:Function;
public var round:Boolean;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
super();
}
protected function updateTweens($changeFactor:Number):void{
var i:int;
var ti:TweenInfo;
var val:Number;
var neg:int;
if (this.round){
i = (_tweens.length - 1);
while (i > -1) {
ti = _tweens[i];
val = (ti.start + (ti.change * $changeFactor));
neg = ((val)<0) ? -1 : 1;
ti.target[ti.property] = ((((val % 1) * neg))>0.5) ? (int(val) + neg) : int(val);
i--;
};
} else {
i = (_tweens.length - 1);
while (i > -1) {
ti = _tweens[i];
ti.target[ti.property] = (ti.start + (ti.change * $changeFactor));
i--;
};
};
}
public function set changeFactor($n:Number):void{
updateTweens($n);
_changeFactor = $n;
}
protected function addTween($object:Object, $propName:String, $start:Number, $end, $overwriteProp:String=null):void{
var change:Number;
if ($end != null){
change = ((typeof($end))=="number") ? ($end - $start) : Number($end);
if (change != 0){
_tweens[_tweens.length] = new TweenInfo($object, $propName, $start, change, (($overwriteProp) || ($propName)), false);
};
};
}
public function killProps($lookup:Object):void{
var i:int;
i = (this.overwriteProps.length - 1);
while (i > -1) {
if ((this.overwriteProps[i] in $lookup)){
this.overwriteProps.splice(i, 1);
};
i--;
};
i = (_tweens.length - 1);
while (i > -1) {
if ((_tweens[i].name in $lookup)){
_tweens.splice(i, 1);
};
i--;
};
}
public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
addTween($target, this.propName, $target[this.propName], $value, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate($plugins:Array):Boolean{
var i:int;
var instance:Object;
i = ($plugins.length - 1);
while (i > -1) {
instance = new ($plugins[i]);
TweenLite.plugins[instance.propName] = $plugins[i];
i--;
};
return (true);
}
}
}//package gs.plugins
Section 160
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class VisiblePlugin extends TweenPlugin {
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VisiblePlugin(){
super();
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
public function onCompleteTween():void{
if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_tween = $tween;
_visible = Boolean($value);
return (true);
}
override public function set changeFactor($n:Number):void{
if (_target.visible != true){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 161
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.media.*;
public class VolumePlugin extends TweenPlugin {
protected var _target:Object;
protected var _st:SoundTransform;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VolumePlugin(){
super();
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((isNaN($value)) || (!($target.hasOwnProperty("soundTransform"))))){
return (false);
};
_target = $target;
_st = _target.soundTransform;
addTween(_st, "volume", _st.volume, $value, "volume");
return (Boolean(!((_tweens.length == 0))));
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
_target.soundTransform = _st;
}
}
}//package gs.plugins
Section 162
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo)
package gs.utils.tween {
public class ArrayTweenInfo {
public var change:Number;
public var start:Number;
public var index:uint;
public function ArrayTweenInfo($index:uint, $start:Number, $change:Number){
super();
this.index = $index;
this.start = $start;
this.change = $change;
}
}
}//package gs.utils.tween
Section 163
//TweenInfo (gs.utils.tween.TweenInfo)
package gs.utils.tween {
public class TweenInfo {
public var start:Number;
public var name:String;
public var change:Number;
public var target:Object;
public var property:String;
public var isPlugin:Boolean;
public function TweenInfo($target:Object, $property:String, $start:Number, $change:Number, $name:String, $isPlugin:Boolean){
super();
this.target = $target;
this.property = $property;
this.start = $start;
this.change = $change;
this.name = $name;
this.isPlugin = $isPlugin;
}
}
}//package gs.utils.tween
Section 164
//TweenLite (gs.TweenLite)
package gs {
import flash.display.*;
import flash.events.*;
import gs.plugins.*;
import flash.utils.*;
import gs.utils.tween.*;
public class TweenLite {
public var started:Boolean;
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _hasPlugins:Boolean;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
public var gc:Boolean;
public var tweens:Array;
public var vars:Object;
public var ease:Function;
public var exposedVars:Object;
public var initTime:Number;
public var combinedTimeScale:Number;
public static const version:Number = 10.09;
private static var _timer:Timer = new Timer(2000);
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var currentTime:uint;
public static var masterList:Dictionary = new Dictionary(false);
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1};
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public static var overwriteManager:Object;
private static var _tlInitted:Boolean;
public function TweenLite($target:Object, $duration:Number, $vars:Object){
super();
if ($target == null){
return;
};
if (!_tlInitted){
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
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();
_tlInitted = true;
};
this.vars = $vars;
this.duration = (($duration) || (0.001));
this.delay = (($vars.delay) || (0));
this.combinedTimeScale = (($vars.timeScale) || (1));
this.active = Boolean(((($duration == 0)) && ((this.delay == 0))));
this.target = $target;
if (typeof(this.vars.ease) != "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;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
this.tweens = [];
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
var mode:int = (((($vars.overwrite == undefined)) || (((!(overwriteManager.enabled)) && (($vars.overwrite > 1)))))) ? overwriteManager.mode : int($vars.overwrite);
if (((!(($target in masterList))) || ((mode == 1)))){
masterList[$target] = [this];
} else {
masterList[$target].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 (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){
this.target.visible = this.exposedVars.visible;
};
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function set enabled($b:Boolean):void{
var a:Array;
var found:Boolean;
var i:int;
if ($b){
if (!(this.target in masterList)){
masterList[this.target] = [this];
} else {
a = masterList[this.target];
i = (a.length - 1);
while (i > -1) {
if (a[i] == this){
found = true;
break;
};
i--;
};
if (!found){
a[a.length] = this;
};
};
};
this.gc = ($b) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function clear():void{
this.tweens = [];
this.vars = (this.exposedVars = {ease:this.vars.ease});
_hasUpdate = false;
}
public function render($t:uint):void{
var factor:Number;
var ti:TweenInfo;
var i:int;
var time:Number = (($t - this.startTime) * 0.001);
if (time >= this.duration){
time = this.duration;
factor = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
factor = this.ease(time, 0, 1, this.duration);
};
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
ti.target[ti.property] = (ti.start + (factor * ti.change));
i--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (time == this.duration){
complete(true);
};
}
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 initTweenVals():void{
var p:String;
var i:int;
var plugin:*;
var ti:TweenInfo;
if (((!((this.exposedVars.timeScale == undefined))) && ((this.target is TweenLite)))){
this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false);
};
for (p in this.exposedVars) {
if ((p in _reservedProps)){
} else {
if ((p in plugins)){
plugin = new (plugins[p]);
if (plugin.onInitTween(this.target, this.exposedVars[p], this) == false){
this.tweens[this.tweens.length] = new TweenInfo(this.target, p, this.target[p], ((typeof(this.exposedVars[p]))=="number") ? (this.exposedVars[p] - this.target[p]) : Number(this.exposedVars[p]), p, false);
} else {
this.tweens[this.tweens.length] = new TweenInfo(plugin, "changeFactor", 0, 1, ((plugin.overwriteProps.length)==1) ? plugin.overwriteProps[0] : "_MULTIPLE_", true);
_hasPlugins = true;
};
} else {
this.tweens[this.tweens.length] = new TweenInfo(this.target, p, this.target[p], ((typeof(this.exposedVars[p]))=="number") ? (this.exposedVars[p] - this.target[p]) : Number(this.exposedVars[p]), p, false);
};
};
};
if (this.vars.runBackwards == true){
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
ti.start = (ti.start + ti.change);
ti.change = -(ti.change);
i--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy($t:Number, $b:Number, $c:Number, $d:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars($vars:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars($vars, this.exposedVars, this.tweens);
};
}
public function complete($skipRender:Boolean=false):void{
var i:int;
if (!$skipRender){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (_hasPlugins){
i = (this.tweens.length - 1);
while (i > -1) {
if (((this.tweens[i].isPlugin) && (!((this.tweens[i].target.onComplete == null))))){
this.tweens[i].target.onComplete();
};
i--;
};
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function updateAll($e:Event=null):void{
var a:Array;
var i:int;
var tween:TweenLite;
var time:uint = (currentTime = getTimer());
var ml:Dictionary = masterList;
for each (a in ml) {
i = (a.length - 1);
while (i > -1) {
tween = a[i];
if (tween.active){
tween.render(time);
} else {
if (tween.gc){
a.splice(i, 1);
} else {
if (time >= tween.startTime){
tween.activate();
tween.render(time);
};
};
};
i--;
};
};
}
public static function removeTween($tween:TweenLite, $clear:Boolean=true):void{
if ($tween != null){
if ($clear){
$tween.clear();
};
$tween.enabled = false;
};
}
public static function killTweensOf($target:Object=null, $complete:Boolean=false):void{
var a:Array;
var i:int;
var tween:TweenLite;
if (((!(($target == null))) && (($target in masterList)))){
a = masterList[$target];
i = (a.length - 1);
while (i > -1) {
tween = a[i];
if ((($complete) && (!(tween.gc)))){
tween.complete(false);
};
tween.clear();
i--;
};
delete masterList[$target];
};
}
public static function from($target:Object, $duration:Number, $vars:Object):TweenLite{
$vars.runBackwards = true;
return (new TweenLite($target, $duration, $vars));
}
public static function easeOut($t:Number, $b:Number, $c:Number, $d:Number):Number{
$t = ($t / $d);
return ((((-($c) * $t) * ($t - 2)) + $b));
}
protected static function killGarbage($e:TimerEvent):void{
var tgt:Object;
var ml:Dictionary = masterList;
for (tgt in ml) {
if (ml[tgt].length == 0){
delete ml[tgt];
};
};
}
public static function delayedCall($delay:Number, $onComplete:Function, $onCompleteParams:Array=null):TweenLite{
return (new TweenLite($onComplete, 0, {delay:$delay, onComplete:$onComplete, onCompleteParams:$onCompleteParams, overwrite:0}));
}
public static function to($target:Object, $duration:Number, $vars:Object):TweenLite{
return (new TweenLite($target, $duration, $vars));
}
}
}//package gs
Section 165
//EdgeMetrics (mx.core.EdgeMetrics)
package mx.core {
public class EdgeMetrics {
public var top:Number;
public var left:Number;
public var bottom:Number;
public var right:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0);
;
public function EdgeMetrics(left:Number=0, top:Number=0, right:Number=0, bottom:Number=0){
super();
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}
public function clone():EdgeMetrics{
return (new EdgeMetrics(left, top, right, bottom));
}
}
}//package mx.core
Section 166
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexMovieClip(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 167
//FlexSprite (mx.core.FlexSprite)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexSprite extends Sprite {
mx_internal static const VERSION:String = "3.0.0.0";
public function FlexSprite(){
super();
name = NameUtil.createUniqueName(this);
//unresolved jump
var _slot1 = e;
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 168
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 169
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 170
//IFlexDisplayObject (mx.core.IFlexDisplayObject)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.accessibility.*;
public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher {
function get visible():Boolean;
function get rotation():Number;
function localToGlobal(void:Point):Point;
function get name():String;
function set width(flash.display:Number):void;
function get measuredHeight():Number;
function get blendMode():String;
function get scale9Grid():Rectangle;
function set name(flash.display:String):void;
function set scaleX(flash.display:Number):void;
function set scaleY(flash.display:Number):void;
function get measuredWidth():Number;
function get accessibilityProperties():AccessibilityProperties;
function set scrollRect(flash.display:Rectangle):void;
function get cacheAsBitmap():Boolean;
function globalToLocal(void:Point):Point;
function get height():Number;
function set blendMode(flash.display:String):void;
function get parent():DisplayObjectContainer;
function getBounds(String:DisplayObject):Rectangle;
function get opaqueBackground():Object;
function set scale9Grid(flash.display:Rectangle):void;
function setActualSize(_arg1:Number, _arg2:Number):void;
function set alpha(flash.display:Number):void;
function set accessibilityProperties(flash.display:AccessibilityProperties):void;
function get width():Number;
function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean;
function set cacheAsBitmap(flash.display:Boolean):void;
function get scaleX():Number;
function get scaleY():Number;
function get scrollRect():Rectangle;
function get mouseX():Number;
function get mouseY():Number;
function set height(flash.display:Number):void;
function set mask(flash.display:DisplayObject):void;
function getRect(String:DisplayObject):Rectangle;
function get alpha():Number;
function set transform(flash.display:Transform):void;
function move(_arg1:Number, _arg2:Number):void;
function get loaderInfo():LoaderInfo;
function get root():DisplayObject;
function hitTestObject(mx.core:IFlexDisplayObject/mx.core:IFlexDisplayObject:stage/get:DisplayObject):Boolean;
function set opaqueBackground(flash.display:Object):void;
function set visible(flash.display:Boolean):void;
function get mask():DisplayObject;
function set x(flash.display:Number):void;
function set y(flash.display:Number):void;
function get transform():Transform;
function set filters(flash.display:Array):void;
function get x():Number;
function get y():Number;
function get filters():Array;
function set rotation(flash.display:Number):void;
function get stage():Stage;
}
}//package mx.core
Section 171
//IRepeaterClient (mx.core.IRepeaterClient)
package mx.core {
public interface IRepeaterClient {
function get instanceIndices():Array;
function set instanceIndices(E:\dev\3.1.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get isDocument():Boolean;
function set repeaters(E:\dev\3.1.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function initializeRepeaterArrays(E:\dev\3.1.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:IRepeaterClient):void;
function get repeaters():Array;
function set repeaterIndices(E:\dev\3.1.0\frameworks\projects\framework\src;mx\core;IRepeaterClient.as:Array):void;
function get repeaterIndices():Array;
}
}//package mx.core
Section 172
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function MovieClipAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 173
//mx_internal (mx.core.mx_internal)
package mx.core {
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
}//package mx.core
Section 174
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.0.0.0";
public function SoundAsset(){
super();
}
}
}//package mx.core
Section 175
//SpriteAsset (mx.core.SpriteAsset)
package mx.core {
public class SpriteAsset extends FlexSprite implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.0.0.0";
public function SpriteAsset(){
super();
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(newWidth:Number, newHeight:Number):void{
width = newWidth;
height = newHeight;
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 176
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
import flash.utils.*;
public class NameUtil {
mx_internal static const VERSION:String = "3.0.0.0";
private static var counter:int = 0;
public function NameUtil(){
super();
}
public static function displayObjectToString(displayObject:DisplayObject):String{
var result:String;
var s:String;
var indices:Array;
var o:DisplayObject = displayObject;
while (o != null) {
if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){
break;
};
s = o.name;
if ((o is IRepeaterClient)){
indices = IRepeaterClient(o).instanceIndices;
if (indices){
s = (s + (("[" + indices.join("][")) + "]"));
};
};
result = ((result == null)) ? s : ((s + ".") + result);
o = o.parent;
};
return (result);
}
public static function createUniqueName(object:Object):String{
if (!object){
return (null);
};
var name:String = getQualifiedClassName(object);
var index:int = name.indexOf("::");
if (index != -1){
name = name.substr((index + 2));
};
var charCode:int = name.charCodeAt((name.length - 1));
if ((((charCode >= 48)) && ((charCode <= 57)))){
name = (name + "_");
};
return ((name + counter++));
}
}
}//package mx.utils
Section 177
//Main (Main)
package {
import com.kongregate.as3.client.*;
import flash.display.*;
import classes.zoneout.*;
import flash.events.*;
public class Main extends Sprite {
private static var __parent:DisplayObject;
private static var instance:Main;
private static var initObj:Init;
private static var kongregate:KongregateAPI;
private static var stage:Stage;
public function Main(){
super();
if (instance){
throw (new Error("Singleton and can only be accessed through Singleton.getInstance()"));
};
instance = this;
this.alpha = 0;
waiting();
}
public function getInitObj():Init{
return (initObj);
}
public function getMainMovie():DisplayObject{
return (__parent);
}
public function getKongregate():KongregateAPI{
return (kongregate);
}
private function mainAddedToStage(e:Event):void{
stage = this.stage;
kongregate = new KongregateAPI();
stage.addChild(kongregate);
__parent = this.root;
initObj = new Init();
}
override public function toString():String{
return ("Main");
}
public function waiting():void{
addEventListener(Event.ADDED_TO_STAGE, mainAddedToStage);
}
public function getStage():Stage{
return (stage);
}
public static function getInstance():Main{
return (instance);
}
}
}//package
Section 178
//Preloader (Preloader)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class Preloader extends MovieClip {
private var logoClassInstance:Object;
private var content:Sprite;
private var logoClass:Class;
public function Preloader(){
super();
this.content = new Sprite();
this.addChild(content);
stop();
stage.showDefaultContextMenu = false;
stage.scaleMode = StageScaleMode.NO_SCALE;
addEventListener(Event.ENTER_FRAME, mainloop);
}
private function triggerLogo():void{
logoClass = (getDefinitionByName("PreloaderLogo") as Class);
if (logoClass){
logoClassInstance = new logoClass();
this.content.addChild((logoClassInstance as DisplayObject));
logoClassInstance.initialBytesLoaded = this.loaderInfo.bytesLoaded;
if (this.loaderInfo.bytesLoaded == this.loaderInfo.bytesTotal){
logoClassInstance.onComplete();
};
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, logoClassInstance.progressHandler);
this.loaderInfo.addEventListener(Event.COMPLETE, logoClassInstance.onComplete);
this.logoClassInstance.addEventListener(Event.COMPLETE, onReady);
};
}
private function triggerGame():void{
var app:Object;
var main:Class = (getDefinitionByName("Main") as Class);
if (main){
app = new (main);
this.content.addChild((app as DisplayObject));
app.waiting();
logoClassInstance.dispose();
};
}
private function onReady(e:Event=null):void{
nextFrame();
triggerGame();
}
private function mainloop(e:Event):void{
if (framesLoaded >= 2){
nextFrame();
triggerLogo();
removeEventListener(Event.ENTER_FRAME, mainloop);
};
}
}
}//package
Section 179
//PreloaderLogo (PreloaderLogo)
package {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
public class PreloaderLogo extends Sprite {
private var animation:MovieClip;
private var introComplete:Boolean;
public var animCompletedFlag:Boolean;// = false
private var timer:Timer;
private var rows:Array;
private var percent:Number;
private var progressAnim:MovieClip;
private var animMC:Class;
private var percentLoaded:Number;
public var initialBytesLoaded:Number;
private var increment:Number;// = 14
private var percentTimed:Number;
private var loadComplete:Boolean;
public function PreloaderLogo(){
animMC = PreloaderLogo_animMC;
super();
animation = new animMC();
introComplete = false;
loadComplete = false;
this.initialBytesLoaded = 0;
this.percentTimed = 0;
this.percent = 0;
this.percentLoaded = 0;
parseProgressAnim();
waiting();
this.animation.scaleX = (this.animation.scaleY = 0.5);
this.animation.x = ((700 / 2) - (this.animation.width / 2));
this.animation.y = ((422 / 2) - (this.animation.height / 2));
}
private function waitingForReady(e:Event):void{
if (this.animation.currentFrame == 20){
this.timer = new Timer(40);
this.timer.addEventListener(TimerEvent.TIMER, onTimeTick);
this.timer.start();
this.progressAnim.visible = true;
animation.removeEventListener(Event.ENTER_FRAME, waitingForReady);
this.introComplete = true;
this.animation.stop();
isReady();
};
}
private function onTimeTick(e:TimerEvent):void{
this.percentTimed = (this.percentTimed + 0.02);
if (percentTimed >= 1){
percentTimed = 1;
this.timer.removeEventListener(TimerEvent.TIMER, onTimeTick);
};
updateTime();
}
public function waiting():void{
addEventListener(Event.ADDED_TO_STAGE, logoAddedToStage);
}
private function stopAtEnd(e:Event):void{
if (e.target.currentFrame == e.target.totalFrames){
e.target.stop();
e.target.removeEventListener(Event.ENTER_FRAME, stopAtEnd);
};
}
private function waitingToEnd(e:Event):void{
var event:Event;
if (animation.currentFrame == animation.totalFrames){
animation.gotoAndStop(animation.totalFrames);
animation.removeEventListener(Event.ENTER_FRAME, waitingToEnd);
animCompletedFlag = true;
event = new Event(Event.COMPLETE);
dispatchEvent(event);
};
}
public function dispose():void{
stage.removeChild(animation);
}
private function isReady():void{
if (((loadComplete) && (introComplete))){
animation.addEventListener(Event.ENTER_FRAME, waitingToEnd);
animation.play();
};
}
private function logoAddedToStage(e:Event):void{
stage.addChild(animation);
this.animation.gotoAndPlay(1);
animation.addEventListener(Event.ENTER_FRAME, waitingForReady);
}
private function parseProgressAnim():void{
var i:int;
var row:MovieClip;
progressAnim = this.animation["progressAnim"];
animation.stop();
progressAnim.stop();
progressAnim.visible = false;
this.rows = new Array();
this.rows.push(progressAnim["one"]);
this.rows.push(progressAnim["two"]);
this.rows.push(progressAnim["three"]);
this.rows.push(progressAnim["four"]);
this.rows.push(progressAnim["five"]);
this.rows.push(progressAnim["six"]);
var l:int = this.rows.length;
while (i < l) {
row = this.rows[i];
row.stop();
row["cell"].stop();
i++;
};
}
public function progressHandler(e:ProgressEvent):void{
this.percentLoaded = ((e.bytesLoaded - this.initialBytesLoaded) / (e.bytesTotal - this.initialBytesLoaded));
updateTime();
}
private function updateTime():void{
var pos:int;
var check:Number;
var row:MovieClip;
this.percent = Math.round((Math.min(this.percentLoaded, this.percentTimed) * 100));
if (percent >= 100){
this.loadComplete = true;
isReady();
} else {
if (this.rows.length > 0){
pos = (7 - this.rows.length);
check = (this.increment * pos);
if (check <= percent){
row = this.rows.shift();
row.cell.addEventListener(Event.ENTER_FRAME, stopAtEnd);
row.cell.play();
};
};
};
}
public function onComplete(e:Event=null):void{
this.percentLoaded = 1;
updateTime();
}
}
}//package
Section 180
//PreloaderLogo_animMC (PreloaderLogo_animMC)
package {
import flash.display.*;
import mx.core.*;
public class PreloaderLogo_animMC extends MovieClipAsset {
public var cell:DisplayObject;
public var progressAnim:DisplayObject;
public var one:DisplayObject;
public var six:DisplayObject;
public var four:DisplayObject;
public var five:DisplayObject;
public var Masker:DisplayObject;
public var two:DisplayObject;
public var three:DisplayObject;
}
}//package
Section 181
//Web (Web)
package {
import flash.net.*;
public class Web {
public function Web(){
super();
}
public static function getURL(url:String, window:String=null):void{
var url = url;
var window = window;
var req:URLRequest = new URLRequest(url);
navigateToURL(req, window);
//unresolved jump
var _slot1 = e;
trace(("Navigate to URL failed " + _slot1.message));
}
}
}//package