Section 1
//JSON (com.adobe.serialization.json.JSON)
package com.adobe.serialization.json {
public class JSON {
public static function decode(s:String){
var decoder:JSONDecoder = new JSONDecoder(s);
return (decoder.getValue());
}
public static function encode(o:Object):String{
var encoder:JSONEncoder = new JSONEncoder(o);
return (encoder.getString());
}
}
}//package com.adobe.serialization.json
Section 2
//JSONDecoder (com.adobe.serialization.json.JSONDecoder)
package com.adobe.serialization.json {
public class JSONDecoder {
private var value;
private var tokenizer:JSONTokenizer;
private var token:JSONToken;
public function JSONDecoder(s:String){
super();
tokenizer = new JSONTokenizer(s);
nextToken();
value = parseValue();
}
private function parseObject():Object{
var key:String;
var o:Object = new Object();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACE){
return (o);
};
while (true) {
if (token.type == JSONTokenType.STRING){
key = String(token.value);
nextToken();
if (token.type == JSONTokenType.COLON){
nextToken();
o[key] = parseValue();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACE){
return (o);
};
if (token.type == JSONTokenType.COMMA){
nextToken();
} else {
tokenizer.parseError(("Expecting } or , but found " + token.value));
};
} else {
tokenizer.parseError(("Expecting : but found " + token.value));
};
} else {
tokenizer.parseError(("Expecting string but found " + token.value));
};
};
return (null);
}
private function parseValue():Object{
if (token == null){
tokenizer.parseError("Unexpected end of input");
};
switch (token.type){
case JSONTokenType.LEFT_BRACE:
return (parseObject());
case JSONTokenType.LEFT_BRACKET:
return (parseArray());
case JSONTokenType.STRING:
case JSONTokenType.NUMBER:
case JSONTokenType.TRUE:
case JSONTokenType.FALSE:
case JSONTokenType.NULL:
return (token.value);
default:
tokenizer.parseError(("Unexpected " + token.value));
};
return (null);
}
private function nextToken():JSONToken{
return ((token = tokenizer.getNextToken()));
}
public function getValue(){
return (value);
}
private function parseArray():Array{
var a:Array = new Array();
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACKET){
return (a);
};
while (true) {
a.push(parseValue());
nextToken();
if (token.type == JSONTokenType.RIGHT_BRACKET){
return (a);
};
if (token.type == JSONTokenType.COMMA){
nextToken();
} else {
tokenizer.parseError(("Expecting ] or , but found " + token.value));
};
};
return (null);
}
}
}//package com.adobe.serialization.json
Section 3
//JSONEncoder (com.adobe.serialization.json.JSONEncoder)
package com.adobe.serialization.json {
import flash.utils.*;
public class JSONEncoder {
private var jsonString:String;
public function JSONEncoder(value){
super();
jsonString = convertToString(value);
}
private function escapeString(str:String):String{
var ch:String;
var hexCode:String;
var zeroPad:String;
var s:String = "";
var len:Number = str.length;
var i:int;
while (i < len) {
ch = str.charAt(i);
switch (ch){
case "\"":
s = (s + "\\\"");
break;
case "\\":
s = (s + "\\\\");
break;
case "\b":
s = (s + "\\b");
break;
case "\f":
s = (s + "\\f");
break;
case "\n":
s = (s + "\\n");
break;
case "\r":
s = (s + "\\r");
break;
case "\t":
s = (s + "\\t");
break;
default:
if (ch < " "){
hexCode = ch.charCodeAt(0).toString(16);
zeroPad = ((hexCode.length == 2)) ? "00" : "000";
s = (s + (("\\u" + zeroPad) + hexCode));
} else {
s = (s + ch);
};
};
i++;
};
return ((("\"" + s) + "\""));
}
private function arrayToString(a:Array):String{
var s:String = "";
var i:int;
while (i < a.length) {
if (s.length > 0){
s = (s + ",");
};
s = (s + convertToString(a[i]));
i++;
};
return ((("[" + s) + "]"));
}
public function getString():String{
return (jsonString);
}
private function objectToString(o:Object):String{
var value:Object;
var key:String;
var v:XML;
var o = o;
var s = "";
var classInfo:XML = describeType(o);
if (classInfo.@name.toString() == "Object"){
for (key in o) {
value = o[key];
if ((value is Function)){
} else {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((escapeString(key) + ":") + convertToString(value)));
};
};
} else {
for each (v in classInfo..*.(((name() == "variable")) || ((name() == "accessor")))) {
if (s.length > 0){
s = (s + ",");
};
s = (s + ((escapeString(v.@name.toString()) + ":") + convertToString(o[v.@name])));
};
};
return ((("{" + s) + "}"));
}
private function convertToString(value):String{
if ((value is String)){
return (escapeString((value as String)));
};
if ((value is Number)){
return ((isFinite((value as Number))) ? value.toString() : "null");
} else {
if ((value is Boolean)){
return ((value) ? "true" : "false");
} else {
if ((value is Array)){
return (arrayToString((value as Array)));
};
if ((((value is Object)) && (!((value == null))))){
return (objectToString(value));
};
};
};
return ("null");
}
}
}//package com.adobe.serialization.json
Section 4
//JSONParseError (com.adobe.serialization.json.JSONParseError)
package com.adobe.serialization.json {
public class JSONParseError extends Error {
private var _location:int;
private var _text:String;
public function JSONParseError(message:String="", location:int=0, text:String=""){
super(message);
name = "JSONParseError";
_location = location;
_text = text;
}
public function get location():int{
return (_location);
}
public function get text():String{
return (_text);
}
}
}//package com.adobe.serialization.json
Section 5
//JSONToken (com.adobe.serialization.json.JSONToken)
package com.adobe.serialization.json {
public class JSONToken {
private var _value:Object;
private var _type:int;
public function JSONToken(type:int=-1, value:Object=null){
super();
_type = type;
_value = value;
}
public function get value():Object{
return (_value);
}
public function get type():int{
return (_type);
}
public function set type(value:int):void{
_type = value;
}
public function set value(v:Object):void{
_value = v;
}
}
}//package com.adobe.serialization.json
Section 6
//JSONTokenizer (com.adobe.serialization.json.JSONTokenizer)
package com.adobe.serialization.json {
public class JSONTokenizer {
private var loc:int;
private var ch:String;
private var obj:Object;
private var jsonString:String;
public function JSONTokenizer(s:String){
super();
jsonString = s;
loc = 0;
nextChar();
}
private function skipComments():void{
if (ch == "/"){
nextChar();
switch (ch){
case "/":
do {
nextChar();
} while (((!((ch == "\n"))) && (!((ch == "")))));
nextChar();
break;
case "*":
nextChar();
while (true) {
if (ch == "*"){
nextChar();
if (ch == "/"){
nextChar();
break;
};
} else {
nextChar();
};
if (ch == ""){
parseError("Multi-line comment not closed");
};
};
break;
default:
parseError((("Unexpected " + ch) + " encountered (expecting '/' or '*' )"));
};
};
}
private function isDigit(ch:String):Boolean{
return ((((ch >= "0")) && ((ch <= "9"))));
}
private function readString():JSONToken{
var _local5:String;
var i:int;
var token:JSONToken = new JSONToken();
token.type = JSONTokenType.STRING;
var string:String = "";
nextChar();
while (((!((ch == "\""))) && (!((ch == ""))))) {
if (ch == "\\"){
nextChar();
switch (ch){
case "\"":
string = (string + "\"");
break;
case "/":
string = (string + "/");
break;
case "\\":
string = (string + "\\");
break;
case "b":
string = (string + "\b");
break;
case "f":
string = (string + "\f");
break;
case "n":
string = (string + "\n");
break;
case "r":
string = (string + "\r");
break;
case "t":
string = (string + "\t");
break;
case "u":
_local5 = "";
i = 0;
while (i < 4) {
if (!isHexDigit(nextChar())){
parseError((" Excepted a hex digit, but found: " + ch));
};
_local5 = (_local5 + ch);
i++;
};
string = (string + String.fromCharCode(parseInt(_local5, 16)));
break;
default:
string = (string + ("\\" + ch));
};
} else {
string = (string + ch);
};
nextChar();
};
if (ch == ""){
parseError("Unterminated string literal");
};
nextChar();
token.value = string;
return (token);
}
private function nextChar():String{
return ((ch = jsonString.charAt(loc++)));
}
public function getNextToken():JSONToken{
var _local2:String;
var _local3:String;
var _local4:String;
var token:JSONToken = new JSONToken();
skipIgnored();
switch (ch){
case "{":
token.type = JSONTokenType.LEFT_BRACE;
token.value = "{";
nextChar();
break;
case "}":
token.type = JSONTokenType.RIGHT_BRACE;
token.value = "}";
nextChar();
break;
case "[":
token.type = JSONTokenType.LEFT_BRACKET;
token.value = "[";
nextChar();
break;
case "]":
token.type = JSONTokenType.RIGHT_BRACKET;
token.value = "]";
nextChar();
break;
case ",":
token.type = JSONTokenType.COMMA;
token.value = ",";
nextChar();
break;
case ":":
token.type = JSONTokenType.COLON;
token.value = ":";
nextChar();
break;
case "t":
_local2 = ((("t" + nextChar()) + nextChar()) + nextChar());
if (_local2 == "true"){
token.type = JSONTokenType.TRUE;
token.value = true;
nextChar();
} else {
parseError(("Expecting 'true' but found " + _local2));
};
break;
case "f":
_local3 = (((("f" + nextChar()) + nextChar()) + nextChar()) + nextChar());
if (_local3 == "false"){
token.type = JSONTokenType.FALSE;
token.value = false;
nextChar();
} else {
parseError(("Expecting 'false' but found " + _local3));
};
break;
case "n":
_local4 = ((("n" + nextChar()) + nextChar()) + nextChar());
if (_local4 == "null"){
token.type = JSONTokenType.NULL;
token.value = null;
nextChar();
} else {
parseError(("Expecting 'null' but found " + _local4));
};
break;
case "\"":
token = readString();
break;
default:
if (((isDigit(ch)) || ((ch == "-")))){
token = readNumber();
} else {
if (ch == ""){
return (null);
};
parseError((("Unexpected " + ch) + " encountered"));
};
};
return (token);
}
private function skipWhite():void{
while (isWhiteSpace(ch)) {
nextChar();
};
}
public function parseError(message:String):void{
throw (new JSONParseError(message, loc, jsonString));
}
private function isWhiteSpace(ch:String):Boolean{
return ((((((((ch == " ")) || ((ch == "\t")))) || ((ch == "\n")))) || ((ch == "\r"))));
}
private function skipIgnored():void{
var originalLoc:int;
do {
originalLoc = loc;
skipWhite();
skipComments();
} while (originalLoc != loc);
}
private function isHexDigit(ch:String):Boolean{
var uc:String = ch.toUpperCase();
return (((isDigit(ch)) || ((((uc >= "A")) && ((uc <= "F"))))));
}
private function readNumber():JSONToken{
var token:JSONToken = new JSONToken();
token.type = JSONTokenType.NUMBER;
var input:String = "";
if (ch == "-"){
input = (input + "-");
nextChar();
};
if (!isDigit(ch)){
parseError("Expecting a digit");
};
if (ch == "0"){
input = (input + ch);
nextChar();
if (isDigit(ch)){
parseError("A digit cannot immediately follow 0");
};
} else {
while (isDigit(ch)) {
input = (input + ch);
nextChar();
};
};
if (ch == "."){
input = (input + ".");
nextChar();
if (!isDigit(ch)){
parseError("Expecting a digit");
};
while (isDigit(ch)) {
input = (input + ch);
nextChar();
};
};
if ((((ch == "e")) || ((ch == "E")))){
input = (input + "e");
nextChar();
if ((((ch == "+")) || ((ch == "-")))){
input = (input + ch);
nextChar();
};
if (!isDigit(ch)){
parseError("Scientific notation number needs exponent value");
};
while (isDigit(ch)) {
input = (input + ch);
nextChar();
};
};
var num:Number = Number(input);
if (((isFinite(num)) && (!(isNaN(num))))){
token.value = num;
return (token);
};
parseError((("Number " + num) + " is not valid!"));
return (null);
}
}
}//package com.adobe.serialization.json
Section 7
//JSONTokenType (com.adobe.serialization.json.JSONTokenType)
package com.adobe.serialization.json {
public class JSONTokenType {
public static const NUMBER:int = 11;
public static const FALSE:int = 8;
public static const RIGHT_BRACKET:int = 4;
public static const NULL:int = 9;
public static const TRUE:int = 7;
public static const RIGHT_BRACE:int = 2;
public static const UNKNOWN:int = -1;
public static const COMMA:int = 0;
public static const LEFT_BRACKET:int = 3;
public static const STRING:int = 10;
public static const LEFT_BRACE:int = 1;
public static const COLON:int = 6;
}
}//package com.adobe.serialization.json
Section 8
//Main (com.evili.AG.parkingTiger.Main)
package com.evili.AG.parkingTiger {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.evili.utils.*;
import flash.media.*;
import flash.utils.*;
public class Main extends MovieClip {
var maxLives:Number;// = 5
var muteflag;// = 0
private var mcMsg:MovieClip;
private var theStage:Stage;
var obstacleArray:Array;
var scalefactor;
private var mainTruck:MovieClip;
var bgYpos;// = 0
var isCollision;// = false
var myTransform;
var isGameOver;// = false
var startX:Number;
var startY:Number;
var _crashing:Crash;
private var sideBar:MovieClip;
private var mc_Congrats:MovieClip;
var iceCount;
var _startmovingsound:StartMovingSound;
var speed:Number;// = 0.03
var arrowDown:Boolean;
var sec;
var min;
var rig_speed:Number;// = 0
var diff:Number;// = 0
var hitcar;// = 0
var pauseflag;// = false
var mapRect:Rectangle;
var i;
var j;
var k;
var SFXmuteflag;
var timebonus:int;// = 0
var l;
var timeLeft:int;
var muteflasg;// = false
var gameStartTime:int;
var lastTime:int;
var arrowUp;
var ROLLFRICTIONFACTOR:Number;// = 1.05
var ACCELERATION:Number;// = 3.3
var lifeBarFlag;// = false
var level;// = 1
var point:int;// = 0
var score:int;// = 0
var arrowRight;
var spacekey;// = false
var isTimeOver;// = false
var hitFlag;// = false
var ROTATION_LIMIT:Number;// = 30
var lifebonus:int;// = 0
var timeID;
var arrowLeft;
var MAX_SPEED:Number;// = 10
var RIG1_LENGTH:Number;// = 109
var gutterCount;
var hitframe;// = 1
var STEER_MAX:Number;// = 30
var rotation_to_add:Number;// = 0
var bgXpos;// = 0
var obstacleCount;
var turnSpeed:Number;// = 0.2
var movCarCount;
private var wreck:Wrecked_escalade;
var _applause:applause;
private var playGround:MovieClip;
var moveFlag;// = true
var ignation:Boolean;// = false
var snd1;
var STEER_SENSITIVITY:Number;// = 0.5
var soundChannel:SoundChannel;
var carSize:Number;// = 85
var life;// = 5
public function Main(stageRef:Stage){
mapRect = new Rectangle(-1150, -1150, 2300, 2300);
soundChannel = new SoundChannel();
myTransform = new SoundTransform();
_crashing = new Crash();
_startmovingsound = new StartMovingSound();
_applause = new applause();
super();
theStage = stageRef;
trace("called Main");
init();
}
private function doRestart(event:KeyboardEvent):void{
trace("called doRestart");
if (event.keyCode == 32){
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, doRestart);
restartLevel();
};
}
private function init():void{
theStage.focus = this;
resetVars();
killArrows();
gameInit();
configureGame();
}
function winLevel():void{
trace("GOOD PARKING!");
level++;
trace(("Leve; " + level));
nextLevel();
mc_Congrats.visible = true;
mc_Congrats.gotoAndPlay(2);
}
private function resetVars():void{
muteflag = 0;
maxLives = 5;
life = 5;
score = 0;
level = 1;
timebonus = 0;
lifebonus = 0;
point = 0;
bgXpos = 0;
bgYpos = 0;
isGameOver = false;
isCollision = false;
isTimeOver = false;
lifeBarFlag = false;
spacekey = false;
hitframe = 1;
hitcar = 0;
hitFlag = false;
moveFlag = true;
STEER_MAX = 30;
STEER_SENSITIVITY = 0.5;
ACCELERATION = 3.3;
MAX_SPEED = 10;
ROLLFRICTIONFACTOR = 1.05;
RIG1_LENGTH = 109;
ROTATION_LIMIT = 30;
rig_speed = 0;
diff = 0;
rotation_to_add = 0;
soundChannel = new SoundChannel();
myTransform = new SoundTransform();
ignation = false;
pauseflag = false;
muteflasg = false;
_crashing = new Crash();
_startmovingsound = new StartMovingSound();
_applause = new applause();
}
private function doNext(event:KeyboardEvent):void{
trace("called doNext");
if (event.keyCode == 32){
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, doNext);
DisplayObjectUtils.removeAllChildren(this);
killArrows();
gameInit();
configureGame();
};
}
function gameInit(){
trace(("gameInit::level: " + level));
theStage.focus = this;
if (level == 1){
playGround = new level1_road();
playGround.x = 0;
playGround.y = 0;
addChild(playGround);
obstacleArray = new Array(playGround.obstacle1, playGround.obstacle2);
playGround.obstacle1.visible = false;
startX = 100;
startY = 500;
mc_Congrats = new Level_Trophy_popup();
} else {
if (level == 2){
playGround = new level2_road();
playGround.x = 0;
playGround.y = 0;
addChild(playGround);
obstacleArray = new Array(playGround.obstacle1);
playGround.obstacle1.visible = false;
startX = 60;
startY = 107;
mc_Congrats = new Level_Trophy_popup();
} else {
if (level == 3){
playGround = new level3_road();
playGround.x = 0;
playGround.y = 0;
addChild(playGround);
obstacleArray = new Array(playGround.obstacle1);
playGround.obstacle1.visible = false;
startX = 306;
startY = 127;
mc_Congrats = new Level_Trophy_popup();
} else {
if (level == 4){
playGround = new level4_road();
playGround.x = 89;
playGround.y = 69;
addChild(playGround);
obstacleArray = new Array(playGround.obstacle1);
playGround.obstacle1.visible = false;
startX = 350;
startY = 61;
mc_Congrats = new Level_Trophy_popup();
};
};
};
};
trace(("obstacleArray: " + obstacleArray));
mainTruck = new newDumper();
addChild(mainTruck);
mainTruck.scaleX = 0.5;
mainTruck.scaleY = 0.5;
sideBar = new SideBar();
sideBar.x = 399;
sideBar.y = 13;
addChild(sideBar);
addChild(mc_Congrats);
mc_Congrats.x = 400;
mc_Congrats.y = 289;
mc_Congrats.visible = false;
mcMsg = new SpacebarCrash();
addChild(mcMsg);
mcMsg.x = 489;
mcMsg.y = 289;
mcMsg.visible = false;
trace("called StartGame in carcontrol");
setInitialRotation();
mainTruck.x = startX;
mainTruck.y = startY;
playGround.x = bgXpos;
playGround.y = bgYpos;
setInitialRotation();
mainTruck.tire1.rotation = 0;
trace(("StartGame:::mainTruck.rotation: " + mainTruck.rotation));
timeLeft = 90;
isTimeOver = false;
hitFlag = false;
moveFlag = true;
ignation = true;
}
function setInitialRotation():void{
if (level == 1){
mainTruck.rotation = -135;
} else {
if (level == 2){
mainTruck.rotation = -12;
} else {
if (level == 3){
mainTruck.rotation = 0;
} else {
if (level == 4){
mainTruck.rotation = -45;
};
};
};
};
}
function GameOver(){
isGameOver = true;
isCollision = false;
mainTruck.x = startX;
mainTruck.y = startY;
stage.removeEventListener(Event.ENTER_FRAME, gameLoop);
stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
stage.removeEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
}
function outOfTime():void{
trace("called stopLevel");
speed = 0;
timeLeft = 10;
mcMsg.visible = true;
this.removeEventListener(Event.ENTER_FRAME, gameLoop);
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.removeEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
theStage.addEventListener(KeyboardEvent.KEY_DOWN, doRestart);
}
function moveCar(timeDiff:Number, forward:Boolean){
var carRect:* = new Rectangle((mainTruck.x - (carSize / 2)), (mainTruck.y - (carSize / 2)), carSize, carSize);
var newCarRect:* = carRect.clone();
var carAngle:Number = ((mainTruck.rotation / 360) * (2 * Math.PI));
var dx:Number = Math.cos(carAngle);
var dy:Number = Math.sin(carAngle);
if (forward == true){
newCarRect.x = (newCarRect.x + ((dx * speed) * timeDiff));
newCarRect.y = (newCarRect.y + ((dy * speed) * timeDiff));
} else {
newCarRect.x = (newCarRect.x - ((dx * speed) * timeDiff));
newCarRect.y = (newCarRect.y - ((dy * speed) * timeDiff));
};
var newX:Number = (mainTruck.x + ((dx * speed) * timeDiff));
var newY:Number = (mainTruck.y + ((dy * speed) * timeDiff));
mainTruck.x = newX;
mainTruck.y = newY;
}
function timer(){
if (pauseflag){
return;
};
timeLeft--;
if (timeLeft < 0){
this["sideBar"][("life" + life)].visible = false;
life--;
isTimeOver = true;
loseGame();
};
if ((((timeLeft / 60)) && ((timeLeft >= 0)))){
min = int((timeLeft / 60));
sec = (timeLeft % 60);
if (!isGameOver){
if (String(min).length == 1){
sideBar.mc_timer.text = (("0" + min) + ":");
} else {
sideBar.mc_timer.text = (min + ":");
};
if (String(sec).length == 1){
sideBar.mc_timer.text = ((sideBar.mc_timer.text + "0") + sec);
} else {
sideBar.mc_timer.text = ((sideBar.mc_timer.text + "") + sec);
};
} else {
trace("Null value");
};
} else {
if (!isGameOver){
sideBar.mc_timer.text = "00:00";
} else {
trace("Null value");
};
};
return (timeLeft);
}
function bgmove2(){
var isPropChanged:* = false;
var bgmoveXpos:* = playGround.x;
var bgmoveYpos:* = playGround.y;
var carmoveXpos:* = mainTruck.x;
var carmoveYpos:* = mainTruck.y;
if (!isPropChanged){
if (mainTruck.x > 800){
bgmoveXpos = (playGround.x - 800);
carmoveXpos = (mainTruck.x - 800);
isPropChanged = true;
} else {
if (mainTruck.x < 0){
bgmoveXpos = (playGround.x + 800);
carmoveXpos = (800 + mainTruck.x);
isPropChanged = true;
} else {
if (mainTruck.y > 600){
bgmoveYpos = (playGround.y - 600);
carmoveYpos = (mainTruck.y - 600);
isPropChanged = true;
} else {
if (mainTruck.y < 0){
bgmoveYpos = (playGround.y + 600);
carmoveYpos = (600 + mainTruck.y);
isPropChanged = true;
};
};
};
};
};
if (isPropChanged){
playGround.x = bgmoveXpos;
playGround.y = bgmoveYpos;
mainTruck.x = carmoveXpos;
mainTruck.y = carmoveYpos;
isPropChanged = false;
};
}
function winScreen():void{
var cup:MovieClip = new Tiger_Wins_screen();
addChild(cup);
cup.x = 420;
cup.y = 350;
var playAgainButton:* = new Play_Again_button();
addChild(playAgainButton);
playAgainButton.addEventListener(MouseEvent.CLICK, playAgain);
playAgainButton.y = 300;
playAgainButton.x = 33;
}
function rotateCar(timeDiff:Number, direction:String){
if (direction == "left"){
mainTruck.rotation = (mainTruck.rotation - (turnSpeed * timeDiff));
} else {
if (direction == "right"){
mainTruck.rotation = (mainTruck.rotation + (turnSpeed * timeDiff));
};
};
}
function nextLevel():void{
trace("called nextLevel");
speed = 0;
mc_Congrats.visible = true;
this.removeEventListener(Event.ENTER_FRAME, gameLoop);
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.removeEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
theStage.addEventListener(KeyboardEvent.KEY_DOWN, doNext);
}
function killArrows():void{
arrowLeft = false;
arrowRight = false;
arrowUp = false;
arrowDown = false;
}
function checkParking():void{
var tire1:Boolean;
var tire2:Boolean;
var tire3:Boolean;
var tire4:Boolean;
if (PixelPerfectCollisionDetection.isColliding(playGround.parkArea.tireArea, mainTruck.tire1, this, true)){
trace("parking tire 1 good!");
tire1 = true;
} else {
tire1 = false;
};
if (PixelPerfectCollisionDetection.isColliding(playGround.parkArea.tireArea, mainTruck.tire2, this, true)){
trace("parking tire 2 good!");
tire2 = true;
} else {
tire2 = false;
};
if (PixelPerfectCollisionDetection.isColliding(playGround.parkArea.tireArea, mainTruck.tire3, this, true)){
trace("parking tire 3 good!");
tire3 = true;
} else {
tire3 = false;
};
if (PixelPerfectCollisionDetection.isColliding(playGround.parkArea.tireArea, mainTruck.tire4, this, true)){
trace("parking tire 4 good!");
tire4 = true;
} else {
tire4 = false;
};
if ((((((((tire1 == true)) && ((tire2 == true)))) && ((tire3 == true)))) && ((tire4 == true)))){
if (!muteflag){
trace("play applause");
soundChannel.stop();
soundChannel = _applause.play();
//unresolved jump
var _slot1 = e;
};
if (level <= 3){
winLevel();
} else {
winGame();
};
return;
};
}
function keyUpFunction(event:KeyboardEvent){
if (event.keyCode == 37){
arrowLeft = false;
} else {
if (event.keyCode == 39){
arrowRight = false;
} else {
if (event.keyCode == 38){
arrowUp = false;
} else {
if (event.keyCode == 40){
arrowDown = false;
};
};
};
};
}
function playAgain(e:Event):void{
init();
}
function loseGame():void{
killLevel();
loseScreen();
}
function stopLevel():void{
trace("called stopLevel");
speed = 0;
mcMsg.visible = true;
this.removeEventListener(Event.ENTER_FRAME, gameLoop);
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.removeEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
theStage.addEventListener(KeyboardEvent.KEY_DOWN, doRestart);
}
function restartLevel(){
trace("called restartLevel");
killArrows();
mcMsg.visible = false;
isGameOver = false;
isCollision = false;
speed = 0;
mainTruck.x = startX;
mainTruck.y = startY;
setInitialRotation();
mainTruck.tire1.rotation = 0;
trace(("StartGame:::mainTruck.rotation: " + mainTruck.rotation));
isTimeOver = false;
hitFlag = false;
moveFlag = true;
ignation = true;
this.addEventListener(Event.ENTER_FRAME, gameLoop);
theStage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.addEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
}
function keyDownFunction(event:KeyboardEvent){
trace(("event,keyCode: " + event.keyCode));
if (pauseflag){
return;
};
if (event.keyCode == 37){
arrowLeft = true;
} else {
if (event.keyCode == 39){
arrowRight = true;
} else {
if (event.keyCode == 38){
arrowUp = true;
} else {
if (event.keyCode == 40){
arrowDown = true;
};
};
};
};
}
function gameLoop(event:Event){
steer();
checkCollissions();
checkParking();
}
function killLevel():void{
trace("called stopLevel");
speed = 0;
DisplayObjectUtils.removeAllChildren(this);
this.removeEventListener(Event.ENTER_FRAME, gameLoop);
theStage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.removeEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
}
function checkCollissions():void{
var currentObstacle:MovieClip;
i = 0;
for (;i < obstacleArray.length;(this["sideBar"][("life" + life)].visible = false), (mcMsg.visible = true), mcMsg.gotoAndPlay(2), (mcMsg.x = 400), (mcMsg.y = 300), trace(("checkCollissions:::Life gone1 " + score)), life--, trace(("checkCollissions:::number of lives left: " + life)), (isCollision = true), if (life > 0){
stopLevel();
} else {
loseGame();
}, i++) {
currentObstacle = obstacleArray[i];
//unresolved if
trace("ENTER HIT");
//unresolved if
if (!muteflag){
soundChannel.stop();
soundChannel = _crashing.play();
continue;
var _slot1 = e;
};
};
}
function loseScreen():void{
var loseScreen:* = new Tiger_Loses_screen();
addChild(loseScreen);
var playAgainButton:* = new Play_Again_button();
addChild(playAgainButton);
playAgainButton.addEventListener(MouseEvent.CLICK, playAgain);
playAgainButton.y = 500;
}
function steer():void{
if (arrowUp){
if (ignation){
if (!muteflag){
ignation = false;
soundChannel = _startmovingsound.play();
};
};
if (speed < 9){
speed = (speed + STEER_SENSITIVITY);
};
};
if (arrowDown){
if (ignation){
if (!muteflag){
ignation = false;
soundChannel = _startmovingsound.play();
};
};
if (speed > -9){
speed = (speed - STEER_SENSITIVITY);
};
} else {
if (((!(arrowUp)) && (!(arrowDown)))){
speed = (speed * 0.7);
};
};
if (arrowRight){
if (mainTruck.tire1.rotation < 25){
mainTruck.tire1.rotation = (mainTruck.tire1.rotation + 0.8);
mainTruck.tire2.rotation = (mainTruck.tire2.rotation + 0.8);
};
};
if (arrowLeft){
if (mainTruck.tire1.rotation > -25){
mainTruck.tire1.rotation = (mainTruck.tire1.rotation - 0.8);
mainTruck.tire2.rotation = (mainTruck.tire2.rotation - 0.8);
};
} else {
if (((!(arrowRight)) && (!(arrowLeft)))){
if (mainTruck.tire1.rotation > 0){
mainTruck.tire1.rotation = (mainTruck.tire1.rotation - 1);
mainTruck.tire2.rotation = (mainTruck.tire2.rotation - 1);
};
if (mainTruck.tire1.rotation < 0){
mainTruck.tire1.rotation = (mainTruck.tire1.rotation + 1);
mainTruck.tire2.rotation = (mainTruck.tire2.rotation + 1);
};
};
};
if (!isCollision){
mainTruck.rotation = (mainTruck.rotation + ((speed * 0.015) * mainTruck.tire1.rotation));
mainTruck.x = (mainTruck.x - (Math.sin(((mainTruck.rotation * Math.PI) / 180)) * speed));
mainTruck.y = (mainTruck.y - ((Math.cos(((mainTruck.rotation * Math.PI) / 180)) * -1) * speed));
};
}
function winGame():void{
killLevel();
winScreen();
}
function CalculateScore(){
trace(("Old score " + score));
timebonus = (10 * timeLeft);
lifebonus = (life * 400);
point = (timebonus + lifebonus);
score = ((score + timebonus) + lifebonus);
trace(("New score " + score));
}
function configureGame(){
isGameOver = false;
clearInterval(timeID);
this.addEventListener(Event.ENTER_FRAME, gameLoop);
theStage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);
theStage.addEventListener(KeyboardEvent.KEY_UP, keyUpFunction);
trace(("ConfigureGame:::Life " + life));
timeID = setInterval(timer, 1000);
sideBar.mc_level.text = level.toString();
trace(("configureGame::life: " + life));
var i:* = 1;
while (i <= maxLives) {
trace("setting sidebar lives to invisible");
this["sideBar"][("life" + i)].visible = false;
i++;
};
var j:* = 1;
while (j <= life) {
trace("setting sidebar lives to visible");
this["sideBar"][("life" + j)].visible = true;
j++;
};
}
}
}//package com.evili.AG.parkingTiger
Section 9
//DisplayObjectUtils (com.evili.utils.DisplayObjectUtils)
package com.evili.utils {
import flash.display.*;
public class DisplayObjectUtils {
public static function removeAllNestedChildren(container:DisplayObjectContainer):void{
var tempContainer:*;
var count:int = container.numChildren;
var i:int;
while (i < count) {
tempContainer = container.getChildAt(0);
if (tempContainer.numChildren > 0){
DisplayObjectUtils.removeAllNestedChildren(tempContainer);
};
container.removeChildAt(0);
tempContainer = null;
i++;
};
}
public static function removeAllChildren(container:DisplayObjectContainer):void{
var count:int = container.numChildren;
var i:int;
while (i < count) {
container.removeChildAt(0);
i++;
};
}
}
}//package com.evili.utils
Section 10
//SoundPlayer (com.evili.utils.SoundPlayer)
package com.evili.utils {
import flash.events.*;
import flash.media.*;
import flash.utils.*;
public class SoundPlayer extends EventDispatcher {
private var _currentChannel:SoundChannel;
private var _currentVolume:Number;
private var _soundTimer:Timer;
private var _fadeIncrement:Number;
private var _currentSound:Sound;
private var _maxVolume:Number;
protected static var _instance:SoundPlayer;
private function fadeInVolume(e:Event):void{
_currentVolume = (_currentVolume + _fadeIncrement);
setVolume(_currentVolume);
if (_currentVolume >= _maxVolume){
_soundTimer.stop();
_soundTimer.removeEventListener(TimerEvent.TIMER, fadeInVolume);
dispatchEvent(new Event("soundFadedIn"));
};
}
public function startFadeIn(delay:Number, repeat:Number, maxVolume:Number=1, fadeIncrement:Number=0.5):void{
_maxVolume = maxVolume;
_fadeIncrement = fadeIncrement;
_soundTimer = new Timer(delay, repeat);
_soundTimer.start();
_soundTimer.addEventListener(TimerEvent.TIMER, fadeInVolume);
}
public function stopSound():void{
if (_currentChannel != null){
_currentChannel.stop();
};
}
private function setVolume(volume:Number):void{
trace(("setVolume: " + volume.toFixed(2)));
var transform:SoundTransform = _currentChannel.soundTransform;
transform.volume = volume;
_currentChannel.soundTransform = transform;
}
public function startSound(snd:Sound, vol:Number=1, loops:Number=99, startTime:Number=0):void{
_currentSound = snd;
_currentVolume = vol;
var currentTransform:SoundTransform = new SoundTransform(_currentVolume);
_currentChannel = _currentSound.play(startTime, loops, currentTransform);
}
public function startFadeOut(delay:Number, repeat:Number, fadeIncrement:Number=0.5):void{
_fadeIncrement = fadeIncrement;
_soundTimer = new Timer(delay, repeat);
_soundTimer.start();
_soundTimer.addEventListener(TimerEvent.TIMER, fadeVolume);
}
private function fadeVolume(e:Event):void{
_currentVolume = (_currentVolume - _fadeIncrement);
setVolume(_currentVolume);
if (_currentVolume <= _fadeIncrement){
_soundTimer.stop();
_soundTimer.removeEventListener(TimerEvent.TIMER, fadeVolume);
_currentChannel.stop();
dispatchEvent(new Event("soundFaded"));
};
}
public static function get instance():SoundPlayer{
if (_instance == null){
_instance = new (SoundPlayer);
};
return (_instance);
}
}
}//package com.evili.utils
Section 11
//Tracker (com.memecounter.Tracker)
package com.memecounter {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class Tracker {
public static const ORI_DOM:String = "ori_dom";
public static const LOCALHOST:String = "localhost";
public static const LOCAL:String = "Local";
public static const TRACKER_PATH:String = "/node/tracking/trackerAS3.swf";
private static var ori_dom:String;
private static var lurl:String;
private static var _isReady:Boolean = false;
public static var a:uint = 0;
public static var root:DisplayObject;
public static var c:uint;
public static var d:String = "";
private static var _isInited:Boolean = false;
public static var mcEvent:Function;
public static var fpv:String = "";
private static var l:Loader;
private static var tracker:MovieClip;
public static var da:Array = ["distralytics.com", "distralytics.co.uk"];
private static function loadError(e:Event):void{
a++;
lc();
}
public static function init(cId:uint, r:DisplayObject):void{
var i:uint;
if (!_isInited){
_isInited = true;
c = cId;
root = r;
i = 0;
while (i < da.length) {
Security.allowDomain(("*" + da[i]));
Security.allowDomain(da[i]);
Security.allowDomain(((c + ".c.") + da[i]));
Security.allowDomain(("*." + da[i]));
i++;
};
ori_dom = (root.loaderInfo.parameters.hasOwnProperty(ORI_DOM)) ? root.loaderInfo.parameters[ORI_DOM] : "";
d = ((ori_dom)!="") ? ori_dom : ((new LocalConnection().domain.indexOf(LOCALHOST))==-1) ? new LocalConnection().domain : LOCAL;
fpv = Capabilities.version.split(" ")[1].split(",")[0];
lurl = (((((((((TRACKER_PATH + "?c=") + c) + "&r=") + Math.floor((Math.random() * 10000000000))) + "&d=") + d) + "&p=") + fpv) + "&as=3");
l = new Loader();
l.contentLoaderInfo.addEventListener(Event.INIT, loadComplete);
l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
lc();
mcEvent = kvEvent;
};
}
public static function kvClick(clickId:uint):void{
if (_isReady){
tracker.kvClick(clickId);
};
}
public static function get isReady():Boolean{
return (_isReady);
}
public static function mcClick(url:String, targ:String=null):void{
if (_isReady){
tracker.mcClick(url, targ);
};
}
public static function kvEvent(eventId):void{
if (_isReady){
tracker.kvEvent(eventId);
};
}
public static function kvCountry():String{
if (_isReady){
return (tracker.kvCountry());
};
return ("");
}
private static function lc():void{
var d:String;
var dom:String = da[(a % da.length)];
if (dom.charAt(0) === "."){
d = (("http://" + dom.substr(1, (dom.length - 1))) + lurl);
} else {
d = (((("http://" + c) + ".c.") + dom) + lurl);
};
Security.allowDomain(d);
l.load(new URLRequest(d));
}
private static function loadComplete(e:Event):void{
var e = e;
tracker = e.target.content;
tracker.init(getDefinitionByName("com.memecounter.Tracker"), root);
_isReady = true;
//unresolved jump
var _slot1 = e;
trace("Memecounter error: unable to access tracker object due to security sandbox.");
}
}
}//package com.memecounter
Section 12
//MainTimeline (ParkingTiger_14_fla.MainTimeline)
package ParkingTiger_14_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import com.evili.utils.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import com.memecounter.*;
import com.evili.AG.parkingTiger.*;
import flash.text.*;
import flash.external.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.ui.*;
import flash.xml.*;
public dynamic class MainTimeline extends MovieClip {
public var AG_Logo:AddictingGames;
public var mask_mc:MovieClip;
public var creditsBox;
public var bgSoundPlayer:SoundPlayer;
public var main_mc:Main;
public var teaser_mc:AGteaser;
public var creditsButton;
public var _startButton;
public function MainTimeline(){
addFrameScript(0, frame1, 10, frame11, 40, frame41, 50, frame51);
}
public function addCreditsButton(){
creditsButton = new Credits_button();
creditsButton.x = 169;
creditsButton.y = 347;
addChild(creditsButton);
creditsButton.addEventListener(MouseEvent.CLICK, goCredits);
}
function frame11(){
stop();
trace("entered title frame");
addStartButton();
bgSoundPlayer = new SoundPlayer();
}
public function gotoAG(e:Event):void{
trace("pressed AG button");
navigateToURL(new URLRequest("http://www.addictinggames.com"));
Tracker.kvClick(1298);
}
public function addStartButton(){
_startButton.addEventListener(MouseEvent.CLICK, goStart);
}
public function goCredits(e:Event):void{
creditsButton.removeEventListener(MouseEvent.CLICK, goCredits);
removeChild(creditsButton);
creditsButton = null;
_startButton.y = 530;
Tracker.kvEvent(8128);
gotoAndStop("credits");
}
public function goStart(e:Event):void{
trace("called goStart");
_startButton.removeEventListener(MouseEvent.CLICK, goStart);
removeChild(_startButton);
if (creditsButton != null){
creditsButton.removeEventListener(MouseEvent.CLICK, goCredits);
removeChild(creditsButton);
creditsButton = null;
};
gotoAndStop("start");
Tracker.kvEvent(8127);
}
public function onSoundFaded(e:Event):void{
trace("soundFaded");
}
function frame1(){
stop();
teaser_mc.addEventListener(Event.COMPLETE, teaserDone);
}
function frame51(){
stop();
}
public function goInstructions(e:Event):void{
stage.removeEventListener(MouseEvent.CLICK, goInstructions);
gotoAndStop("instructions");
}
function frame41(){
stop();
main_mc = new Main(stage);
addChild(main_mc);
main_mc.mask = mask_mc;
}
public function teaserDone(e:Event):void{
trace("teaserDone");
gotoAndStop("title");
}
public function startBGMusic():void{
}
}
}//package ParkingTiger_14_fla
Section 13
//AddictingGames (AddictingGames)
package {
import flash.display.*;
public dynamic class AddictingGames extends MovieClip {
public var agButton_btn:SimpleButton;
}
}//package
Section 14
//AGdom (AGdom)
package {
import flash.events.*;
import com.adobe.serialization.json.*;
import flash.net.*;
import flash.utils.*;
public class AGdom {
private var instanceLoader:URLLoader;
private var serviceTimer:Timer;
private var instanceRequest:URLRequest;
private var toolkit:Object;
public function AGdom(_arg1:Object):void{
instanceLoader = new URLLoader();
instanceRequest = new URLRequest();
super();
toolkit = _arg1;
serviceTimer = new Timer(15000, 1);
serviceTimer.addEventListener(TimerEvent.TIMER_COMPLETE, serviceTimeout);
}
private function returnServer(_arg1:Event):void{
var _local2:*;
serviceTimer.reset();
_local2 = JSON.decode(_arg1.target.data);
trace(("\ngetServerInstance response\n" + _arg1.target.data));
if (_local2["response-array"][0]["returnCode"] == "Error"){
serviceErrorReturn();
return;
};
toolkit.HSdomain = _local2["response-array"][0]["response"].instance;
toolkit.CSdomain = _local2["response-array"][0]["response"].communityInstance;
toolkit.AGdomain = toolkit.CSdomain;
toolkit.AGallowDomain(toolkit.HSdomain);
toolkit.AGallowDomain(toolkit.CSdomain);
toolkit.AGremovePreloader();
toolkit.loader.initLoader();
}
private function AGdomainStatus():void{
var _local1:int;
var _local2:*;
var _local3:String;
_local1 = (int(toolkit.AGfileLocation.indexOf("://")) + 3);
_local2 = toolkit.AGfileLocation.substring(0, _local1);
if (_local2 == "file://"){
trace("found local dev");
toolkit.AGdomain = (toolkit.CSdomain = "dev.addictinggames.com");
toolkit.HSdomain = "hsdev.addictinggames.com";
toolkit.AGdeveloper = true;
toolkit.AGmount = true;
getServer();
return;
};
_local3 = toolkit.AGfileLocation.substr(_local1);
toolkit.AGdomain = _local3.substring(0, _local3.indexOf("/"));
if (((!((_local3.indexOf("addictinggames.com") == -1))) || (!((_local3.indexOf("shockwave.com") == -1))))){
toolkit.AGmount = true;
getServer();
};
}
private function serviceErrorReturn():void{
trace("json error");
toolkit.AGserviceError();
}
private function serviceErrorSecurity(_arg1:SecurityErrorEvent):void{
trace(_arg1);
toolkit.AGserviceError();
}
private function serviceTimeout(_arg1:TimerEvent):void{
trace("timeout error");
toolkit.AGserviceError();
}
private function serviceErrorIO(_arg1:IOErrorEvent):void{
trace(_arg1);
toolkit.AGserviceError();
}
private function getServer():void{
var _local1:URLVariables;
serviceTimer.start();
toolkit.AGinitPreloader();
instanceLoader.dataFormat = URLLoaderDataFormat.TEXT;
instanceLoader.addEventListener(Event.COMPLETE, returnServer);
instanceLoader.addEventListener(IOErrorEvent.IO_ERROR, serviceErrorIO);
instanceLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, serviceErrorSecurity);
instanceRequest.method = URLRequestMethod.GET;
instanceRequest.url = (toolkit.AGdeveloper) ? (("http://" + toolkit.AGdomain) + "/scores/getServerInstance") : "/scores/getServerInstance";
trace(("\ncalling getServerInstance at: " + instanceRequest.url));
_local1 = new URLVariables();
_local1.id = 1;
_local1.gameId = toolkit.gameID;
instanceRequest.data = _local1;
instanceLoader.load(instanceRequest);
}
public function initDomain():void{
AGdomainStatus();
}
}
}//package
Section 15
//AGloader (AGloader)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public class AGloader {
private var assets:Array;
private var dataRequest:URLRequest;
private var modules:Array;
private var sequence:Array;
private var dataXML:XML;
private var index:int;// = 0
private var modContext:LoaderContext;
private var dataLoader:URLLoader;
private var modLoadInfo:LoaderInfo;
private var modRequest:URLRequest;
private var modLoader:Loader;
private var toolkit:Object;
public function AGloader(_arg1:Object):void{
index = 0;
modules = [];
assets = [];
sequence = [];
dataLoader = new URLLoader();
dataRequest = new URLRequest();
modLoader = new Loader();
modContext = new LoaderContext();
modRequest = new URLRequest();
super();
toolkit = _arg1;
}
private function initAsset(_arg1:Event):void{
toolkit[assets[index].classname].removeEventListener(Event.INIT, initAsset);
if (index < (assets.length - 1)){
index++;
loadAsset();
} else {
index = 0;
toolkit.AGremovePreloader();
loadSequence();
};
}
public function initLoader():void{
initLoadData();
}
private function parseLoadData(_arg1:Event):void{
var _local2:XMLList;
var _local3:XMLList;
var _local4:*;
var _local5:XMLList;
var _local6:*;
var _local7:XMLList;
var _local8:*;
var _local9:XMLList;
var _local10:*;
var _local11:XMLList;
var _local12:XMLList;
var _local13:XMLList;
var _local14:XMLList;
var _local15:XMLList;
var _local16:XMLList;
dataXML = new XML(dataLoader.data);
if (toolkit.AGtheme == null){
toolkit.AGtheme = dataXML.elements("theme");
};
if (!toolkit.AGdev){
toolkit.AGdev = Boolean(dataXML.elements("devpanel"));
};
toolkit.AGcompVersion = dataXML.elements("compVersion");
toolkit.AGmoduleVersion = dataXML.elements("moduleVersion");
toolkit.AGsoundOn = ((dataXML.elements("sounds"))=="on") ? true : false;
_local2 = dataXML.child("nav");
toolkit.AGassetPath = _local2.elements("assetpath");
toolkit.AGmodulePath = _local2.elements("modulepath");
toolkit.AGimagePath = _local2.elements("avatarpath");
toolkit.AGprofilePath = _local2.elements("profilepath");
toolkit.AGiconPath = _local2.elements("iconpath");
_local3 = dataXML.child("modules");
_local4 = 0;
while (_local4 < _local3.child("*").length()) {
modules[_local4] = {filename:_local3.child(_local4).@filename, classname:_local3.child(_local4).@classname, propname:_local3.child(_local4).@propname};
_local4++;
};
_local5 = dataXML.child("assets");
_local6 = 0;
while (_local6 < _local5.child("*").length()) {
assets[_local6] = {classname:_local5.child(_local6).@classname, methodname:_local5.child(_local6).@methodname};
_local6++;
};
_local7 = dataXML.child("sequence");
_local8 = 0;
while (_local8 < _local7.child("*").length()) {
sequence[_local8] = {classname:_local7.child(_local8).@classname, methodname:_local7.child(_local8).@methodname};
_local8++;
};
_local9 = dataXML.child("advertising");
_local10 = 0;
while (_local10 < _local9.child("*").length()) {
if (toolkit.AGadvert[_local10] != undefined){
} else {
toolkit.AGadvert[_local10] = {assetPath:_local9.child(_local10).@assetPath, navPath:_local9.child(_local10).@navPath};
};
_local10++;
};
_local11 = dataXML.child("messages");
_local12 = _local11.child("score");
toolkit.AGscoreMessage.high = _local12.elements("high");
toolkit.AGscoreMessage.best = _local12.elements("best");
toolkit.AGscoreMessage.tied = _local12.elements("tied");
toolkit.AGscoreMessage.less = _local12.elements("less");
toolkit.AGscoreMessage.initial = _local12.elements("initial");
toolkit.AGscoreMessage.logout = _local12.elements("logout");
toolkit.AGscoreMessage.zero = _local12.elements("zero");
_local13 = _local11.child("login");
toolkit.AGloginMessage.ondom = _local13.elements("ondom");
toolkit.AGloginMessage.offdom = _local13.elements("offdom");
_local14 = _local11.child("save");
toolkit.AGsaveMessage.screen = _local14.elements("screen");
toolkit.AGsaveMessage.submit = _local14.elements("submit");
_local15 = _local11.child("notify");
toolkit.AGnotifyMessage.screen = _local15.elements("screen");
toolkit.AGnotifyMessage.submit = _local15.elements("submit");
_local16 = _local11.child("error");
toolkit.AGerrorMessage.msg = _local16.elements("msg");
toolkit.AGerrorMessage.sub = _local16.elements("sub");
loadModule();
}
private function initModule(_arg1:Event):void{
var _local2:Class;
modLoadInfo.removeEventListener(Event.COMPLETE, initModule);
_local2 = (modLoadInfo.applicationDomain.getDefinition(modules[index].classname) as Class);
toolkit[modules[index].propname] = new _local2(toolkit);
if (index < (modules.length - 1)){
index++;
loadModule();
} else {
index = 0;
loadAsset();
};
}
private function loadSequence():void{
toolkit[sequence[index].classname].addEventListener(Event.INIT, initSequence);
var _local1 = toolkit[sequence[index].classname];
_local1[sequence[index].methodname]();
}
private function initLoadData():void{
var _local1:String;
var _local2:String;
_local1 = "config/AGloadData1.0.xml";
_local2 = (("http://" + toolkit.AGdomain) + "/sdk/hs/as3/config/AGloadData1.0.xml");
dataRequest.url = ((toolkit.AGassetLocation)=="remote") ? _local2 : _local1;
dataLoader.addEventListener(Event.COMPLETE, parseLoadData);
dataLoader.load(dataRequest);
}
private function loadAsset():void{
toolkit[assets[index].classname].addEventListener(Event.INIT, initAsset);
var _local1 = toolkit[assets[index].classname];
_local1[assets[index].methodname]();
}
private function loadModule():void{
var _local1:*;
var _local2:*;
_local1 = ((("modules/" + modules[index].propname) + "/") + modules[index].filename);
_local2 = ((("http://" + toolkit.AGdomain) + toolkit.AGmodulePath) + modules[index].filename);
modRequest.url = ((toolkit.AGassetLocation)=="remote") ? _local2 : _local1;
modContext.applicationDomain = ApplicationDomain.currentDomain;
modLoadInfo = modLoader.contentLoaderInfo;
modLoadInfo.addEventListener(Event.COMPLETE, initModule);
modLoader.load(modRequest, modContext);
}
private function initSequence(_arg1:Event):void{
toolkit[sequence[index].classname].removeEventListener(Event.INIT, initSequence);
if (index < (sequence.length - 1)){
index++;
loadSequence();
} else {
toolkit.gameInit();
};
}
}
}//package
Section 16
//AGteaser (AGteaser)
package {
import flash.events.*;
import flash.display.*;
public dynamic class AGteaser extends MovieClip {
public function AGteaser(){
addFrameScript(133, frame134);
}
function frame134(){
stop();
this.dispatchEvent(new Event(Event.COMPLETE));
}
}
}//package
Section 17
//AGtoolkit (AGtoolkit)
package {
import flash.events.*;
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
import flash.external.*;
public class AGtoolkit extends MovieClip {
public var AGerrorMessage:Object;
public var loader:AGloader;
public var gameAuthor:String;
public var gameInit:Function;// = null
public var AGnotifyMessage:Object;
public var AGdev:Boolean;// = false
public var AGscoreMessage:Object;
public var AGassetLocation:String;// = "remote"
public var AGmoduleVersion:String;// = "1.0"
public var AGdomain:String;// = null
public var AGiconPath:String;// = null
public var AGsoundOn:Boolean;// = false
public var AGdeveloper:Boolean;// = false
public var AGfileLocation:String;// = null
public var screen:Object;
public var gameID:String;
public var AGimagePath:String;// = null
public var domain:AGdom;
public var AGgameoverScreenControl:Boolean;// = true
public var AGcompVersion:String;// = "1.0"
public var gameWidth:int;
public var comm:Object;
public var gamePause:Function;// = null
public var gameMute:Function;// = null
public var doc:Object;
public var CSdomain:String;// = null
public var AGdomains:Array;
public var AGmodulePath:String;// = null
public var AGtheme:String;// = null
public var AGadvert:Array;
public var toolbar:Object;
public var AGloginMessage:Object;
public var AGprofilePath:String;// = null
public var gameTitle:String;
public var AGpauseScreenControl:Boolean;// = true
public var HSdomain:String;// = null
public var gameVolume:Function;// = null
public var AGmount:Boolean;// = false
public var gameHeight:int;
public var gameRestart:Function;// = null
public var gameScore:Object;
public var AGassetPath:String;// = null
public var gameStats:Array;
public var AGsaveMessage:Object;
public var AGflashVersion:String;// = "AS3"
public function AGtoolkit(_arg1:Object, _arg2:String, _arg3:String, _arg4:String):void{
var _local5:*;
gameInit = null;
gameRestart = null;
gamePause = null;
gameMute = null;
gameVolume = null;
AGdomains = ["www.addictinggames.com"];
AGdomain = null;
HSdomain = null;
CSdomain = null;
AGassetPath = null;
AGmodulePath = null;
AGimagePath = null;
AGprofilePath = null;
AGiconPath = null;
AGassetLocation = "remote";
AGflashVersion = "AS3";
AGcompVersion = "1.0";
AGmoduleVersion = "1.0";
AGtheme = null;
AGsoundOn = false;
AGfileLocation = null;
AGmount = false;
AGdeveloper = false;
AGpauseScreenControl = true;
gameScore = {prop:null, label:null, type:null, precision:0, value:0, tstamp:0};
gameStats = [];
AGgameoverScreenControl = true;
AGscoreMessage = {high:"You set the High Score!", best:"You set a new personal best!", tied:"You tied your best score!", less:"Good game, but not your best!", initial:"Save your first score!", logout:" ", zero:" "};
AGloginMessage = {ondom:"Want to save your score?", offdom:"Want to save your score?"};
AGsaveMessage = {screen:"Want to save your score?", submit:"Your score has been saved!"};
AGnotifyMessage = {screen:"Congratulations! You just beat # Friends!", submit:"Your Friends have been served!"};
AGerrorMessage = {msg:"Sorry, an error occurred", sub:"please return to your game"};
AGadvert = [];
AGdev = false;
super();
addFrameScript(0, frame1);
doc = _arg1;
gameID = _arg2;
gameTitle = _arg3;
gameAuthor = _arg4;
gameWidth = doc.stage.stageWidth;
gameHeight = doc.stage.stageHeight;
AGfileLocation = doc.loaderInfo.url;
doc.stage.scaleMode = StageScaleMode.NO_SCALE;
for (_local5 in AGdomains) {
AGallowDomain(AGdomains[_local5]);
};
AGallowDomain("cdn.gigya.com");
AGinitPreloader();
domain = new AGdom(this);
loader = new AGloader(this);
}
public function AGsetTeaser(_arg1:String, _arg2:String):void{
AGadvert[0] = {assetPath:_arg1, navPath:_arg2};
}
public function AGpauseScreen(_arg1:Boolean):void{
AGpauseScreenControl = _arg1;
}
public function AGgameScore(_arg1:String, _arg2:String, _arg3:String, _arg4:Number=0):void{
gameScore.prop = _arg1;
gameScore.label = _arg2;
gameScore.type = _arg3;
if (_arg4 != 0){
gameScore.precision = _arg4;
};
}
public function AGreloadPage(_arg1:MouseEvent):void{
var _local2:*;
_local2 = (ExternalInterface.available) ? ExternalInterface.call("function(){return document.location.href;}") : null;
if (_local2 == null){
_local2 = "http://www.addictinggames.com";
};
navigateToURL(new URLRequest(_local2));
}
function frame1(){
stop();
}
public function AGaddAdvert(_arg1:String, _arg2:String):void{
AGadvert.push({assetPath:_arg1, navPath:_arg2});
}
public function AGsetTheme(_arg1:String):void{
AGtheme = _arg1;
}
public function AGinitPreloader():void{
var _local1:Sprite;
var _local2:*;
_local1 = new Sprite();
_local1.name = "preloader";
_local1.graphics.beginFill(0, 0.5);
_local1.graphics.drawRect(0, 0, gameWidth, gameHeight);
_local1.graphics.endFill();
_local2 = new LoadProcessor();
_local2.x = (gameWidth / 2);
_local2.y = ((gameHeight - 40) / 2);
_local1.addChild(_local2);
doc.addChild(_local1);
}
public function AGinitToolkit(_arg1:Function):void{
gameInit = _arg1;
domain.initDomain();
}
public function AGsubmitReplay():void{
comm.initSubmitReplay();
}
public function dataOutput(_arg1, _arg2):void{
if (AGdev){
screen.dataOutput(_arg1, _arg2);
};
}
public function AGgameStatsStat(_arg1:String, _arg2:String, _arg3:String, _arg4:Number=0):void{
var _local5:Object;
_local5 = {prop:null, label:null, type:null, precision:0, value:0, tstamp:0};
_local5.prop = _arg1;
_local5.label = _arg2;
_local5.type = _arg3;
if (_arg4 != 0){
_local5.precision = _arg4;
};
gameStats.push(_local5);
}
public function AGsetToolbar(_arg1:String, _arg2:Function):void{
switch (_arg1){
case "restart":
gameRestart = _arg2;
break;
case "pause":
gamePause = _arg2;
break;
case "mute":
gameMute = _arg2;
break;
case "volume":
gameVolume = _arg2;
break;
};
}
public function AGgetUser(_arg1:Function):void{
comm.DEVgetUser(_arg1);
}
public function AGremovePreloader():void{
doc.removeChild(doc.getChildByName("preloader"));
}
public function AGgameoverScreen(_arg1:Boolean):void{
AGgameoverScreenControl = _arg1;
}
public function AGserviceError():void{
var _local1:Sprite;
var _local2:*;
_local1 = new Sprite();
_local1.graphics.beginFill(0, 0.75);
_local1.graphics.drawRect(0, 0, gameWidth, gameHeight);
_local1.graphics.endFill();
_local2 = new ErrorScreen();
_local2.x = (gameWidth / 2);
_local2.y = (gameHeight / 2);
_local2.okBtn.addEventListener(MouseEvent.CLICK, AGreloadPage);
_local1.addChild(_local2);
doc.addChild(_local1);
}
public function AGsubmitScore(_arg1:Function=null):void{
gameRestart = ((_arg1)==null) ? gameRestart : _arg1;
gameScore.tstamp = new Date().getTime();
gameScore.value = doc[gameScore.prop];
screen.initGameOverSequence();
}
public function AGallowDomain(_arg1:String):void{
if (AGdomains.indexOf(_arg1) != -1){
return;
};
AGdomains.push(_arg1);
Security.allowDomain(_arg1, ("http://" + _arg1), ("https://" + _arg1));
Security.allowInsecureDomain(_arg1, ("http://" + _arg1), ("https://" + _arg1));
}
public function AGsetGameMessage(_arg1:String, _arg2:String, _arg3:String):void{
switch (_arg1){
case "score":
AGscoreMessage[_arg2] = _arg3;
break;
case "login":
AGloginMessage[_arg2] = _arg3;
break;
case "save":
AGsaveMessage[_arg2] = _arg3;
break;
case "notify":
AGnotifyMessage[_arg2] = _arg3;
break;
case "error":
AGerrorMessage[_arg2] = _arg3;
break;
};
}
public function dataTrace(_arg1):void{
if (AGdev){
screen.dataTrace(_arg1);
};
}
public function AGgetLeaderboard(_arg1:Function, _arg2:String, _arg3:String):void{
comm.DEVgetLeaderboard(_arg1, _arg2, _arg3);
}
public function AGgameover(_arg1:Function=null):void{
gameRestart = ((_arg1)==null) ? gameRestart : _arg1;
gameScore.tstamp = new Date().getTime();
gameScore.value = doc[gameScore.prop];
if (AGgameoverScreenControl){
screen.initGameOverScreen();
};
}
}
}//package
Section 18
//applause (applause)
package {
import flash.media.*;
public dynamic class applause extends Sound {
}
}//package
Section 19
//bakhoe (bakhoe)
package {
import flash.display.*;
public dynamic class bakhoe extends MovieClip {
public var tire1:MovieClip;
public var tire2:MovieClip;
public var tire3:MovieClip;
public var tire4:MovieClip;
}
}//package
Section 20
//button_Start (button_Start)
package {
import flash.display.*;
public dynamic class button_Start extends SimpleButton {
}
}//package
Section 21
//congrats_onrig (congrats_onrig)
package {
import flash.display.*;
public dynamic class congrats_onrig extends MovieClip {
public var parking:MovieClip;
public function congrats_onrig(){
addFrameScript(0, frame1, 2, frame3, 23, frame24);
}
function frame1(){
stop();
this.visible = false;
}
function frame3(){
this.visible = true;
}
function frame24(){
stop();
}
}
}//package
Section 22
//Crash (Crash)
package {
import flash.media.*;
public dynamic class Crash extends Sound {
}
}//package
Section 23
//Credits_button (Credits_button)
package {
import flash.display.*;
public dynamic class Credits_button extends SimpleButton {
}
}//package
Section 24
//cresh (cresh)
package {
import flash.display.*;
public dynamic class cresh extends MovieClip {
public function cresh(){
addFrameScript(0, frame1, 19, frame20);
}
function frame20(){
stop();
}
function frame1(){
stop();
}
}
}//package
Section 25
//dumperTruck (dumperTruck)
package {
import flash.display.*;
public dynamic class dumperTruck extends MovieClip {
public var tire1:MovieClip;
public var tire2:MovieClip;
public var tire3:MovieClip;
public var tire4:MovieClip;
}
}//package
Section 26
//ErrorScreen (ErrorScreen)
package {
import flash.display.*;
public dynamic class ErrorScreen extends MovieClip {
public var okBtn:SimpleButton;
}
}//package
Section 27
//Level_Trophy_popup (Level_Trophy_popup)
package {
import flash.display.*;
public dynamic class Level_Trophy_popup extends MovieClip {
}
}//package
Section 28
//level1_road (level1_road)
package {
import flash.display.*;
public dynamic class level1_road extends MovieClip {
public var obstacle1:MovieClip;
public var obstacle2:MovieClip;
public var parkArea:MovieClip;
}
}//package
Section 29
//level2_road (level2_road)
package {
import flash.display.*;
public dynamic class level2_road extends MovieClip {
public var obstacle1:MovieClip;
public var parkArea:MovieClip;
}
}//package
Section 30
//level3_road (level3_road)
package {
import flash.display.*;
public dynamic class level3_road extends MovieClip {
public var obstacle1:MovieClip;
public var parkArea:MovieClip;
}
}//package
Section 31
//level4_road (level4_road)
package {
import flash.display.*;
public dynamic class level4_road extends MovieClip {
public var obstacle1:MovieClip;
public var parkArea:MovieClip;
}
}//package
Section 32
//levelCup (levelCup)
package {
import flash.display.*;
public dynamic class levelCup extends MovieClip {
}
}//package
Section 33
//LoadProcessor (LoadProcessor)
package {
import flash.events.*;
import flash.display.*;
public dynamic class LoadProcessor extends MovieClip {
public var ringB:MovieClip;
public var ringC:MovieClip;
public var ringA:MovieClip;
public var spd:int;
public function LoadProcessor(){
addFrameScript(0, frame1);
}
public function rotate(_arg1:Event):void{
ringA.rotation = (ringA.rotation + spd);
ringB.rotation = (ringB.rotation - spd);
ringC.rotation = (ringC.rotation + spd);
}
function frame1(){
alpha = 0.7;
spd = 5;
addEventListener(Event.ENTER_FRAME, rotate);
}
}
}//package
Section 34
//newDumper (newDumper)
package {
import flash.display.*;
public dynamic class newDumper extends MovieClip {
public var tire1:MovieClip;
public var tire2:MovieClip;
public var tire3:MovieClip;
public var tire4:MovieClip;
}
}//package
Section 35
//PixelPerfectCollisionDetection (PixelPerfectCollisionDetection)
package {
import flash.display.*;
import flash.geom.*;
public class PixelPerfectCollisionDetection {
public static function getCollisionRect(target1:DisplayObject, target2:DisplayObject, commonParent:DisplayObjectContainer, pixelPrecise:Boolean=false, tolerance:Number=0):Rectangle{
var alpha1:BitmapData;
var alpha2:BitmapData;
var searchColor:uint;
var collisionRect:Rectangle;
var byte:int;
var rect1:Rectangle = target1.getBounds(commonParent);
var rect2:Rectangle = target2.getBounds(commonParent);
var intersectionRect:Rectangle = rect1.intersection(rect2);
if (intersectionRect.size.length > 0){
if (pixelPrecise){
intersectionRect.width = Math.ceil(intersectionRect.width);
intersectionRect.height = Math.ceil(intersectionRect.height);
alpha1 = getAlphaMap(target1, intersectionRect, BitmapDataChannel.RED, commonParent);
alpha2 = getAlphaMap(target2, intersectionRect, BitmapDataChannel.GREEN, commonParent);
alpha1.draw(alpha2, null, null, BlendMode.LIGHTEN);
if (tolerance <= 0){
searchColor = 65792;
} else {
if (tolerance > 1){
tolerance = 1;
};
byte = Math.round((tolerance * 0xFF));
searchColor = (((byte << 16) | (byte << 8)) | 0);
};
collisionRect = alpha1.getColorBoundsRect(searchColor, searchColor);
collisionRect.x = (collisionRect.x + intersectionRect.x);
collisionRect.y = (collisionRect.y + intersectionRect.y);
return (collisionRect);
} else {
return (intersectionRect);
};
//unresolved jump
};
return (null);
}
public static function isColliding(target1:DisplayObject, target2:DisplayObject, commonParent:DisplayObjectContainer, pixelPrecise:Boolean=false, tolerance:Number=0):Boolean{
var collisionRect:Rectangle = getCollisionRect(target1, target2, commonParent, pixelPrecise, tolerance);
if (((!((collisionRect == null))) && ((collisionRect.size.length > 0)))){
return (true);
};
return (false);
}
public static function getCollisionPoint(target1:DisplayObject, target2:DisplayObject, commonParent:DisplayObjectContainer, pixelPrecise:Boolean=false, tolerance:Number=0):Point{
var x:Number;
var y:Number;
var collisionRect:Rectangle = getCollisionRect(target1, target2, commonParent, pixelPrecise, tolerance);
if (((!((collisionRect == null))) && ((collisionRect.size.length > 0)))){
x = ((collisionRect.left + collisionRect.right) / 2);
y = ((collisionRect.top + collisionRect.bottom) / 2);
return (new Point(x, y));
};
return (null);
}
private static function getAlphaMap(target:DisplayObject, rect:Rectangle, channel:uint, commonParent:DisplayObjectContainer):BitmapData{
var parentXformInvert:Matrix = commonParent.transform.concatenatedMatrix.clone();
parentXformInvert.invert();
var targetXform:Matrix = target.transform.concatenatedMatrix.clone();
targetXform.concat(parentXformInvert);
targetXform.translate(-(rect.x), -(rect.y));
var bitmapData:BitmapData = new BitmapData(rect.width, rect.height, true, 0);
bitmapData.draw(target, targetXform);
var alphaChannel:BitmapData = new BitmapData(rect.width, rect.height, false, 0);
alphaChannel.copyChannel(bitmapData, bitmapData.rect, new Point(0, 0), BitmapDataChannel.ALPHA, channel);
return (alphaChannel);
}
}
}//package
Section 36
//Play_Again_button (Play_Again_button)
package {
import flash.display.*;
public dynamic class Play_Again_button extends SimpleButton {
}
}//package
Section 37
//SideBar (SideBar)
package {
import flash.display.*;
import flash.text.*;
public dynamic class SideBar extends MovieClip {
public var life1:MovieClip;
public var life2:MovieClip;
public var life3:MovieClip;
public var life4:MovieClip;
public var life5:MovieClip;
public var mc_level:TextField;
public var mc_timer:TextField;
}
}//package
Section 38
//SpacebarCrash (SpacebarCrash)
package {
import flash.display.*;
public dynamic class SpacebarCrash extends MovieClip {
}
}//package
Section 39
//StartMovingSound (StartMovingSound)
package {
import flash.media.*;
public dynamic class StartMovingSound extends Sound {
}
}//package
Section 40
//Tiger_Loses_screen (Tiger_Loses_screen)
package {
import flash.display.*;
public dynamic class Tiger_Loses_screen extends MovieClip {
}
}//package
Section 41
//Tiger_Wins_screen (Tiger_Wins_screen)
package {
import flash.display.*;
public dynamic class Tiger_Wins_screen extends MovieClip {
}
}//package
Section 42
//WinningCup (WinningCup)
package {
import flash.display.*;
public dynamic class WinningCup extends MovieClip {
}
}//package
Section 43
//Wrecked_escalade (Wrecked_escalade)
package {
import flash.display.*;
public dynamic class Wrecked_escalade extends MovieClip {
}
}//package