Section 1
//mc_48 (assets_fla.mc_48)
package assets_fla {
import flash.display.*;
public dynamic class mc_48 extends MovieClip {
public function mc_48(){
addFrameScript(33, this.frame34);
}
function frame34(){
stop();
}
}
}//package assets_fla
Section 2
//ui_115 (assets_fla.ui_115)
package assets_fla {
import flash.display.*;
public dynamic class ui_115 extends MovieClip {
public var hole:MovieClip;
public var foreground:MovieClip;
public var logo:MovieClip;
public var sign:MovieClip;
public function ui_115(){
addFrameScript(28, this.frame29, 41, this.frame42, 42, this.frame43, 81, this.frame82, 168, this.frame169);
}
function frame42(){
this.sign.gotoAndPlay(1);
}
function frame43(){
stop();
}
function frame82(){
this.sign.gotoAndPlay("loop");
}
function frame29(){
this.foreground.play();
}
function frame169(){
stop();
}
}
}//package assets_fla
Section 3
//ui_117 (assets_fla.ui_117)
package assets_fla {
import flash.display.*;
public dynamic class ui_117 extends MovieClip {
public var _inner:MovieClip;
public function ui_117(){
addFrameScript(24, this.frame25, 51, this.frame52);
}
function frame25(){
stop();
}
function frame52(){
stop();
}
}
}//package assets_fla
Section 4
//ui_118 (assets_fla.ui_118)
package assets_fla {
import flash.display.*;
public dynamic class ui_118 extends MovieClip {
public function ui_118(){
addFrameScript(0, this.frame1, 1, this.frame2);
}
function frame1(){
stop();
}
function frame2(){
stop();
}
}
}//package assets_fla
Section 5
//ui_153 (assets_fla.ui_153)
package assets_fla {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.utils.*;
import flash.net.*;
import flash.media.*;
import flash.text.*;
import flash.system.*;
import flash.ui.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.desktop.*;
import flash.errors.*;
import flash.external.*;
import flash.filters.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.text.engine.*;
import flash.xml.*;
public dynamic class ui_153 extends MovieClip {
public function ui_153(){
addFrameScript(0, this.frame1, 61, this.frame62);
}
function frame62(){
stop();
this["parent"].play();
}
function frame1(){
stop();
}
}
}//package assets_fla
Section 6
//ui_164 (assets_fla.ui_164)
package assets_fla {
import flash.display.*;
public dynamic class ui_164 extends MovieClip {
public function ui_164(){
addFrameScript(16, this.frame17);
}
function frame17(){
stop();
}
}
}//package assets_fla
Section 7
//ui_171 (assets_fla.ui_171)
package assets_fla {
import flash.display.*;
public dynamic class ui_171 extends MovieClip {
public function ui_171(){
addFrameScript(44, this.frame45);
}
function frame45(){
stop();
}
}
}//package assets_fla
Section 8
//ui_174 (assets_fla.ui_174)
package assets_fla {
import flash.display.*;
public dynamic class ui_174 extends MovieClip {
public function ui_174(){
addFrameScript(20, this.frame21);
}
function frame21(){
stop();
}
}
}//package assets_fla
Section 9
//ui_175 (assets_fla.ui_175)
package assets_fla {
import flash.display.*;
public dynamic class ui_175 extends MovieClip {
public function ui_175(){
addFrameScript(57, this.frame58);
}
function frame58(){
stop();
}
}
}//package assets_fla
Section 10
//ui_177 (assets_fla.ui_177)
package assets_fla {
import flash.display.*;
public dynamic class ui_177 extends MovieClip {
public function ui_177(){
addFrameScript(45, this.frame46);
}
function frame46(){
stop();
}
}
}//package assets_fla
Section 11
//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(empty:Boolean=true, newCampaign:Boolean=false){
super();
_empty = empty;
_new = newCampaign;
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function isNew():Boolean{
return (_new);
}
public function get utmcn():String{
return ("1");
}
public function isEmpty():Boolean{
return (_empty);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (((!(isEmpty())) && (isNew()))){
variables.utmcn = utmcn;
};
if (((!(isEmpty())) && (!(isNew())))){
variables.utmcr = utmcr;
};
return (variables);
}
public function get utmcr():String{
return ("1");
}
}
}//package com.google.analytics.campaign
Section 12
//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(){
super();
}
}
}//package com.google.analytics.campaign
Section 13
//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(config:Configuration, debug:DebugConfiguration, buffer:Buffer, domainHash:Number, referrer:String, timeStamp:Number){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_domainHash = domainHash;
_referrer = referrer;
_timeStamp = timeStamp;
}
public function getCampaignInformation(search:String, noSessionInformation:Boolean):CampaignInfo{
var campaignTracker:CampaignTracker;
var oldTracker:CampaignTracker;
var sessionCount:int;
var campInfo:CampaignInfo = new CampaignInfo();
var duplicateCampaign:Boolean;
var campNoOverride:Boolean;
var responseCount:int;
if (((_config.allowLinker) && (_buffer.isGenuine()))){
if (!_buffer.hasUTMZ()){
return (campInfo);
};
};
campaignTracker = getTrackerFromSearchString(search);
if (isValid(campaignTracker)){
campNoOverride = hasNoOverride(search);
if (((campNoOverride) && (!(_buffer.hasUTMZ())))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
campaignTracker = getOrganicCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(campaignTracker)))){
return (campInfo);
};
};
if (((!(isValid(campaignTracker))) && (noSessionInformation))){
campaignTracker = getReferrerCampaign();
if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(campaignTracker)))){
return (campInfo);
};
};
if (!isValid(campaignTracker)){
if (((!(_buffer.hasUTMZ())) && (noSessionInformation))){
campaignTracker = getDirectCampaign();
};
};
if (!isValid(campaignTracker)){
return (campInfo);
};
if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){
oldTracker = new CampaignTracker();
oldTracker.fromTrackerString(_buffer.utmz.campaignTracking);
duplicateCampaign = (oldTracker.toTrackerString() == campaignTracker.toTrackerString());
responseCount = _buffer.utmz.responseCount;
};
if (((!(duplicateCampaign)) || (noSessionInformation))){
sessionCount = _buffer.utma.sessionCount;
responseCount++;
if (sessionCount == 0){
sessionCount = 1;
};
_buffer.utmz.domainHash = _domainHash;
_buffer.utmz.campaignCreation = _timeStamp;
_buffer.utmz.campaignSessions = sessionCount;
_buffer.utmz.responseCount = responseCount;
_buffer.utmz.campaignTracking = campaignTracker.toTrackerString();
_debug.info(_buffer.utmz.toString(), VisualDebugMode.geek);
campInfo = new CampaignInfo(false, true);
} else {
campInfo = new CampaignInfo(false, false);
};
return (campInfo);
}
public function hasNoOverride(search:String):Boolean{
var key:CampaignKey = _config.campaignKey;
if (search == ""){
return (false);
};
var variables:Variables = new Variables(search);
var value:String = "";
if (variables.hasOwnProperty(key.UCNO)){
value = variables[key.UCNO];
switch (value){
case "1":
return (true);
case "":
case "0":
default:
return (false);
};
};
return (false);
}
public function getTrackerFromSearchString(search:String):CampaignTracker{
var organicCampaign:CampaignTracker = getOrganicCampaign();
var camp:CampaignTracker = new CampaignTracker();
var key:CampaignKey = _config.campaignKey;
if (search == ""){
return (camp);
};
var variables:Variables = new Variables(search);
if (variables.hasOwnProperty(key.UCID)){
camp.id = variables[key.UCID];
};
if (variables.hasOwnProperty(key.UCSR)){
camp.source = variables[key.UCSR];
};
if (variables.hasOwnProperty(key.UGCLID)){
camp.clickId = variables[key.UGCLID];
};
if (variables.hasOwnProperty(key.UCCN)){
camp.name = variables[key.UCCN];
} else {
camp.name = "(not set)";
};
if (variables.hasOwnProperty(key.UCMD)){
camp.medium = variables[key.UCMD];
} else {
camp.medium = "(not set)";
};
if (variables.hasOwnProperty(key.UCTR)){
camp.term = variables[key.UCTR];
} else {
if (((organicCampaign) && (!((organicCampaign.term == ""))))){
camp.term = organicCampaign.term;
};
};
if (variables.hasOwnProperty(key.UCCT)){
camp.content = variables[key.UCCT];
};
return (camp);
}
public function getOrganicCampaign():CampaignTracker{
var camp:CampaignTracker;
var tmp:Array;
var currentOrganicSource:OrganicReferrer;
var keyword:String;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
var ref:URL = new URL(_referrer);
var name:String = "";
if (ref.hostName != ""){
if (ref.hostName.indexOf(".") > -1){
tmp = ref.hostName.split(".");
switch (tmp.length){
case 2:
name = tmp[0];
break;
case 3:
name = tmp[1];
break;
};
};
};
if (_config.organic.match(name)){
currentOrganicSource = _config.organic.getReferrerByName(name);
keyword = _config.organic.getKeywordValue(currentOrganicSource, ref.search);
camp = new CampaignTracker();
camp.source = currentOrganicSource.engine;
camp.name = "(organic)";
camp.medium = "organic";
camp.term = keyword;
};
return (camp);
}
public function getDirectCampaign():CampaignTracker{
var camp:CampaignTracker = new CampaignTracker();
camp.source = "(direct)";
camp.name = "(direct)";
camp.medium = "(none)";
return (camp);
}
public function isIgnoredKeyword(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "organic")))){
return (_config.organic.isIgnoredKeyword(tracker.term));
};
return (false);
}
public function isIgnoredReferral(tracker:CampaignTracker):Boolean{
if (((tracker) && ((tracker.medium == "referral")))){
return (_config.organic.isIgnoredReferral(tracker.source));
};
return (false);
}
public function isValid(tracker:CampaignTracker):Boolean{
if (((tracker) && (tracker.isValid()))){
return (true);
};
return (false);
}
public function getReferrerCampaign():CampaignTracker{
var camp:CampaignTracker;
if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){
return (camp);
};
var ref:URL = new URL(_referrer);
var hostname:String = ref.hostName;
var content:String = ref.path;
if (hostname.indexOf("www.") == 0){
hostname = hostname.substr(4);
};
camp = new CampaignTracker();
camp.source = hostname;
camp.name = "(referral)";
camp.medium = "referral";
camp.content = content;
return (camp);
}
public static function isInvalidReferrer(referrer:String):Boolean{
var url:URL;
if ((((((referrer == "")) || ((referrer == "-")))) || ((referrer == "0")))){
return (true);
};
if (referrer.indexOf("://") > -1){
url = new URL(referrer);
if ((((url.protocol == Protocols.file)) || ((url.protocol == Protocols.none)))){
return (true);
};
};
return (false);
}
public static function isFromGoogleCSE(referrer:String, config:Configuration):Boolean{
var url:URL = new URL(referrer);
if (url.hostName.indexOf(config.google) > -1){
if (url.search.indexOf((config.googleSearchParam + "=")) > -1){
if (url.path == ("/" + config.googleCsePath)){
return (true);
};
};
};
return (false);
}
}
}//package com.google.analytics.campaign
Section 14
//CampaignTracker (com.google.analytics.campaign.CampaignTracker)
package com.google.analytics.campaign {
import com.google.analytics.utils.*;
public class CampaignTracker {
public var content:String;
public var source:String;
public var clickId:String;
public var name:String;
public var term:String;
public var medium:String;
public var id:String;
public function CampaignTracker(id:String="", source:String="", clickId:String="", name:String="", medium:String="", term:String="", content:String=""){
super();
this.id = id;
this.source = source;
this.clickId = clickId;
this.name = name;
this.medium = medium;
this.term = term;
this.content = content;
}
public function isValid():Boolean{
if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){
return (true);
};
return (false);
}
public function toTrackerString():String{
var data:Array = [];
_addIfNotEmpty(data, "utmcid=", id);
_addIfNotEmpty(data, "utmcsr=", source);
_addIfNotEmpty(data, "utmgclid=", clickId);
_addIfNotEmpty(data, "utmccn=", name);
_addIfNotEmpty(data, "utmcmd=", medium);
_addIfNotEmpty(data, "utmctr=", term);
_addIfNotEmpty(data, "utmcct=", content);
return (data.join(CampaignManager.trackingDelimiter));
}
private function _addIfNotEmpty(arr:Array, field:String, value:String):void{
if (value != ""){
value = value.split("+").join("%20");
value = value.split(" ").join("%20");
arr.push((field + value));
};
}
public function fromTrackerString(tracker:String):void{
var data:String = tracker.split(CampaignManager.trackingDelimiter).join("&");
var vars:Variables = new Variables(data);
if (vars.hasOwnProperty("utmcid")){
this.id = vars["utmcid"];
};
if (vars.hasOwnProperty("utmcsr")){
this.source = vars["utmcsr"];
};
if (vars.hasOwnProperty("utmccn")){
this.name = vars["utmccn"];
};
if (vars.hasOwnProperty("utmcmd")){
this.medium = vars["utmcmd"];
};
if (vars.hasOwnProperty("utmctr")){
this.term = vars["utmctr"];
};
if (vars.hasOwnProperty("utmcct")){
this.content = vars["utmcct"];
};
if (vars.hasOwnProperty("utmgclid")){
this.clickId = vars["utmgclid"];
};
}
}
}//package com.google.analytics.campaign
Section 15
//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(config:Configuration, info:Environment){
super();
_config = config;
_info = info;
}
public function get utmul():String{
return (_info.language.toLowerCase());
}
public function get utmje():String{
return ("0");
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function get utmsr():String{
return (((_info.screenWidth + "x") + _info.screenHeight));
}
public function get utmfl():String{
var v:Version;
if (_config.detectFlash){
v = _info.flashVersion;
return (((((v.major + ".") + v.minor) + " r") + v.build));
};
return ("-");
}
public function get utmcs():String{
return (_info.languageEncoding);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
variables.utmcs = utmcs;
variables.utmsr = utmsr;
variables.utmsc = utmsc;
variables.utmul = utmul;
variables.utmje = utmje;
variables.utmfl = utmfl;
return (variables);
}
public function get utmsc():String{
return ((_info.screenColorDepth + "-bit"));
}
}
}//package com.google.analytics.core
Section 16
//Buffer (com.google.analytics.core.Buffer)
package com.google.analytics.core {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
import flash.net.*;
import com.google.analytics.data.*;
public dynamic class Buffer {
private var _SO:SharedObject;
private var _data:Object;
private var _OBJ:Object;
private var _utmb:UTMB;
private var _utmc:UTMC;
private var _utma:UTMA;
private var _debug:DebugConfiguration;
private var _utmk:UTMK;
private var _config:Configuration;
private var _utmv:UTMV;
private var _utmx:UTMX;
private var _utmz:UTMZ;
private var _volatile:Boolean;
public function Buffer(config:Configuration, debug:DebugConfiguration, volatile:Boolean=false, data:Object=null){
var prop:String;
super();
_config = config;
_debug = debug;
_data = data;
_volatile = volatile;
if (_volatile){
_OBJ = new Object();
if (_data){
for (prop in _data) {
_OBJ[prop] = _data[prop];
};
};
};
}
public function save():void{
var flushStatus:String;
if (!isVolatile()){
flushStatus = null;
flushStatus = _SO.flush();
//unresolved jump
var _slot1 = e;
_debug.warning("Error...Could not write SharedObject to disk");
switch (flushStatus){
case SharedObjectFlushStatus.PENDING:
_debug.info("Requesting permission to save object...");
_SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
break;
case SharedObjectFlushStatus.FLUSHED:
_debug.info("Value flushed to disk.");
break;
};
};
}
public function get utmv():UTMV{
if (!hasUTMV()){
_createUMTV();
};
return (_utmv);
}
public function get utmx():UTMX{
if (!hasUTMX()){
_createUMTX();
};
return (_utmx);
}
public function get utmz():UTMZ{
if (!hasUTMZ()){
_createUMTZ();
};
return (_utmz);
}
public function hasUTMA():Boolean{
if (_utma){
return (true);
};
return (false);
}
public function hasUTMB():Boolean{
if (_utmb){
return (true);
};
return (false);
}
public function hasUTMC():Boolean{
if (_utmc){
return (true);
};
return (false);
}
public function clearCookies():void{
utma.reset();
utmb.reset();
utmc.reset();
utmz.reset();
utmv.reset();
utmk.reset();
}
public function resetCurrentSession():void{
_clearUTMB();
_clearUTMC();
save();
}
public function hasUTMK():Boolean{
if (_utmk){
return (true);
};
return (false);
}
public function getLinkerUrl(targetUrl:String="", useHash:Boolean=false):String{
var linkerParams:String = toLinkerParams();
var formattedUrl:String = targetUrl;
var urlFields:Array = targetUrl.split("#");
if (linkerParams){
if (useHash){
if (1 >= urlFields.length){
formattedUrl = (formattedUrl + ("#" + linkerParams));
} else {
formattedUrl = (formattedUrl + ("&" + linkerParams));
};
} else {
if (1 >= urlFields.length){
if (targetUrl.indexOf("?") > -1){
formattedUrl = (formattedUrl + "&");
} else {
formattedUrl = (formattedUrl + "?");
};
formattedUrl = (formattedUrl + linkerParams);
} else {
formattedUrl = urlFields[0];
if (targetUrl.indexOf("?") > -1){
formattedUrl = (formattedUrl + "&");
} else {
formattedUrl = (formattedUrl + "?");
};
formattedUrl = (formattedUrl + ((linkerParams + "#") + urlFields[1]));
};
};
};
return (formattedUrl);
}
public function generateCookiesHash():Number{
var value:String = "";
value = (value + utma.valueOf());
value = (value + utmb.valueOf());
value = (value + utmc.valueOf());
value = (value + utmx.valueOf());
value = (value + utmz.valueOf());
value = (value + utmv.valueOf());
return (Utils.generateHash(value));
}
private function _createUMTA():void{
_utma = new UTMA();
_utma.proxy = this;
}
private function _createUMTB():void{
_utmb = new UTMB();
_utmb.proxy = this;
}
private function _createUMTC():void{
_utmc = new UTMC();
}
public function hasUTMV():Boolean{
if (_utmv){
return (true);
};
return (false);
}
private function _createUMTK():void{
_utmk = new UTMK();
_utmk.proxy = this;
}
public function hasUTMX():Boolean{
if (_utmx){
return (true);
};
return (false);
}
public function hasUTMZ():Boolean{
if (_utmz){
return (true);
};
return (false);
}
private function _createUMTV():void{
_utmv = new UTMV();
_utmv.proxy = this;
}
private function _createUMTX():void{
_utmx = new UTMX();
_utmx.proxy = this;
}
private function _createUMTZ():void{
_utmz = new UTMZ();
_utmz.proxy = this;
}
public function updateUTMA(timestamp:Number):void{
if (_debug.verbose){
_debug.info((("updateUTMA( " + timestamp) + " )"), VisualDebugMode.advanced);
};
if (!utma.isEmpty()){
if (isNaN(utma.sessionCount)){
utma.sessionCount = 1;
} else {
utma.sessionCount = (utma.sessionCount + 1);
};
utma.lastTime = utma.currentTime;
utma.currentTime = timestamp;
};
}
public function isGenuine():Boolean{
if (!hasUTMK()){
return (true);
};
return ((utmk.hash == generateCookiesHash()));
}
private function _onFlushStatus(event:NetStatusEvent):void{
_debug.info("User closed permission dialog...");
switch (event.info.code){
case "SharedObject.Flush.Success":
_debug.info("User granted permission -- value saved.");
break;
case "SharedObject.Flush.Failed":
_debug.info("User denied permission -- value not saved.");
break;
};
_SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus);
}
public function toLinkerParams():String{
var output:String = "";
output = (output + utma.toURLString());
output = (output + ("&" + utmb.toURLString()));
output = (output + ("&" + utmc.toURLString()));
output = (output + ("&" + utmx.toURLString()));
output = (output + ("&" + utmz.toURLString()));
output = (output + ("&" + utmv.toURLString()));
output = (output + ("&__utmk=" + generateCookiesHash()));
return (output);
}
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(name:String, value):void{
if (isVolatile()){
_OBJ[name] = value;
} else {
_SO.data[name] = value;
};
}
public function createSO():void{
var saveSO:Boolean;
UTMZ.defaultTimespan = _config.conversionTimeout;
UTMB.defaultTimespan = _config.sessionTimeout;
if (!_volatile){
_SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath);
//unresolved jump
var _slot1 = e;
if (_debug.active){
_debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + _slot1.message));
};
saveSO = false;
if (_SO.data.utma){
if (!hasUTMA()){
_createUMTA();
};
_utma.fromSharedObject(_SO.data.utma);
if (_debug.verbose){
_debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek);
};
if (_utma.isExpired()){
if (_debug.verbose){
_debug.warning("UTMA has expired", VisualDebugMode.advanced);
};
_clearUTMA();
saveSO = true;
};
};
if (_SO.data.utmb){
if (!hasUTMB()){
_createUMTB();
};
_utmb.fromSharedObject(_SO.data.utmb);
if (_debug.verbose){
_debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek);
};
if (_utmb.isExpired()){
if (_debug.verbose){
_debug.warning("UTMB has expired", VisualDebugMode.advanced);
};
_clearUTMB();
saveSO = true;
};
};
if (_SO.data.utmc){
delete _SO.data.utmc;
saveSO = true;
};
if (_SO.data.utmk){
if (!hasUTMK()){
_createUMTK();
};
_utmk.fromSharedObject(_SO.data.utmk);
if (_debug.verbose){
_debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek);
};
};
if (!hasUTMX()){
_createUMTX();
};
if (_SO.data.utmv){
if (!hasUTMV()){
_createUMTV();
};
_utmv.fromSharedObject(_SO.data.utmv);
if (_debug.verbose){
_debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek);
};
if (_utmv.isExpired()){
if (_debug.verbose){
_debug.warning("UTMV has expired", VisualDebugMode.advanced);
};
_clearUTMV();
saveSO = true;
};
};
if (_SO.data.utmz){
if (!hasUTMZ()){
_createUMTZ();
};
_utmz.fromSharedObject(_SO.data.utmz);
if (_debug.verbose){
_debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek);
};
if (_utmz.isExpired()){
if (_debug.verbose){
_debug.warning("UTMZ has expired", VisualDebugMode.advanced);
};
_clearUTMZ();
saveSO = true;
};
};
if (saveSO){
save();
};
};
}
private function _clearUTMZ():void{
_utmz = null;
if (!isVolatile()){
_SO.data.utmz = null;
delete _SO.data.utmz;
};
}
private function _clearUTMV():void{
_utmv = null;
if (!isVolatile()){
_SO.data.utmv = null;
delete _SO.data.utmv;
};
}
public function isVolatile():Boolean{
return (_volatile);
}
public function get utma():UTMA{
if (!hasUTMA()){
_createUMTA();
};
return (_utma);
}
public function get utmb():UTMB{
if (!hasUTMB()){
_createUMTB();
};
return (_utmb);
}
public function get utmc():UTMC{
if (!hasUTMC()){
_createUMTC();
};
return (_utmc);
}
public function get utmk():UTMK{
if (!hasUTMK()){
_createUMTK();
};
return (_utmk);
}
}
}//package com.google.analytics.core
Section 17
//DocumentInfo (com.google.analytics.core.DocumentInfo)
package com.google.analytics.core {
import com.google.analytics.v4.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
public class DocumentInfo {
private var _pageURL:String;
private var _utmr:String;
private var _config:Configuration;
private var _adSense:AdSenseGlobals;
private var _info:Environment;
public function DocumentInfo(config:Configuration, info:Environment, formatedReferrer:String, pageURL:String=null, adSense:AdSenseGlobals=null){
super();
_config = config;
_info = info;
_utmr = formatedReferrer;
_pageURL = pageURL;
_adSense = adSense;
}
public function get utmr():String{
if (!_utmr){
return ("-");
};
return (_utmr);
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
private function _renderPageURL(pageURL:String=""):String{
var pathname:String = _info.locationPath;
var search:String = _info.locationSearch;
if (((!(pageURL)) || ((pageURL == "")))){
pageURL = (pathname + unescape(search));
if (pageURL == ""){
pageURL = "/";
};
};
return (pageURL);
}
public function get utmp():String{
return (_renderPageURL(_pageURL));
}
public function get utmhid():String{
return (String(_generateHitId()));
}
private function _generateHitId():Number{
var hid:Number;
if (((_adSense.hid) && (!((_adSense.hid == ""))))){
hid = Number(_adSense.hid);
} else {
hid = Math.round((Math.random() * 2147483647));
_adSense.hid = String(hid);
};
return (hid);
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (((_config.detectTitle) && (!((utmdt == ""))))){
variables.utmdt = utmdt;
};
variables.utmhid = utmhid;
variables.utmr = utmr;
variables.utmp = utmp;
return (variables);
}
public function get utmdt():String{
return (_info.documentTitle);
}
}
}//package com.google.analytics.core
Section 18
//Domain (com.google.analytics.core.Domain)
package com.google.analytics.core {
import com.google.analytics.debug.*;
public class Domain {
private var _mode:DomainNameMode;
private var _debug:DebugConfiguration;
private var _name:String;
public function Domain(mode:DomainNameMode=null, name:String="", debug:DebugConfiguration=null){
super();
_debug = debug;
if (mode == null){
mode = DomainNameMode.auto;
};
_mode = mode;
if (mode == DomainNameMode.custom){
this.name = name;
} else {
_name = name;
};
}
public function get mode():DomainNameMode{
return (_mode);
}
public function set mode(value:DomainNameMode):void{
_mode = value;
if (_mode == DomainNameMode.none){
_name = "";
};
}
public function get name():String{
return (_name);
}
public function set name(value:String):void{
if (((!((value.charAt(0) == "."))) && (_debug))){
_debug.warning(("missing leading period \".\", cookie will only be accessible on " + value), VisualDebugMode.geek);
};
_name = value;
}
}
}//package com.google.analytics.core
Section 19
//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(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 20
//Ecommerce (com.google.analytics.core.Ecommerce)
package com.google.analytics.core {
import com.google.analytics.debug.*;
import com.google.analytics.ecommerce.*;
public class Ecommerce {
private var _debug:DebugConfiguration;
private var _trans:Array;
public function Ecommerce(debug:DebugConfiguration){
super();
this._debug = debug;
_trans = new Array();
}
public function getTransLength():Number{
return (_trans.length);
}
public function getTransFromArray(i:Number):Transaction{
return (_trans[i]);
}
public function addTransaction(id:String, affiliation:String, total:String, tax:String, shipping:String, city:String, state:String, country:String):Transaction{
var newTrans:Transaction;
newTrans = getTransaction(id);
if (newTrans == null){
newTrans = new Transaction(id, affiliation, total, tax, shipping, city, state, country);
_trans.push(newTrans);
} else {
newTrans.affiliation = affiliation;
newTrans.total = total;
newTrans.tax = tax;
newTrans.shipping = shipping;
newTrans.city = city;
newTrans.state = state;
newTrans.country = country;
};
return (newTrans);
}
public function getTransaction(orderId:String):Transaction{
var i:Number;
i = 0;
while (i < _trans.length) {
if (_trans[i].id == orderId){
return (_trans[i]);
};
i++;
};
return (null);
}
}
}//package com.google.analytics.core
Section 21
//EventInfo (com.google.analytics.core.EventInfo)
package com.google.analytics.core {
import com.google.analytics.data.*;
import com.google.analytics.utils.*;
public class EventInfo {
private var _ext10:X10;
private var _isEventHit:Boolean;
private var _x10:X10;
public function EventInfo(isEventHit:Boolean, xObject:X10, extObject:X10=null){
super();
_isEventHit = isEventHit;
_x10 = xObject;
_ext10 = extObject;
}
public function toURLString():String{
var v:Variables = toVariables();
return (v.toString());
}
public function get utmt():String{
return ("event");
}
public function get utme():String{
return (_x10.renderMergedUrlString(_ext10));
}
public function toVariables():Variables{
var variables:Variables = new Variables();
variables.URIencode = true;
if (_isEventHit){
variables.utmt = utmt;
};
variables.utme = utme;
return (variables);
}
}
}//package com.google.analytics.core
Section 22
//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(name:String, parent:GoogleAnalyticsAPI){
super();
this.name = name;
_parent = parent;
}
public function trackEvent(action:String, label:String=null, value:Number=NaN):Boolean{
return (_parent.trackEvent(name, action, label, value));
}
}
}//package com.google.analytics.core
Section 23
//ga_internal (com.google.analytics.core.ga_internal)
package com.google.analytics.core {
public namespace ga_internal;
}//package com.google.analytics.core
Section 24
//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(config:Configuration, debug:DebugConfiguration, buffer:Buffer, info:Environment){
super();
_config = config;
_debug = debug;
_buffer = buffer;
_info = info;
_count = 0;
_alertcount = 0;
_requests = [];
}
public function get utmn():String{
return ((Utils.generate32bitRandom() as String));
}
public function onIOError(event:IOErrorEvent):void{
var url:String = _lastRequest.url;
var id:String = String((_requests.length - 1));
var msg = (("Gif Request #" + id) + " failed");
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" \"" + url) + "\" does not exists or is unreachable"));
};
_debug.failure(msg);
} else {
_debug.warning(msg);
};
_removeListeners(event.target);
}
public function send(account:String, variables:Variables=null, force:Boolean=false, rateLimit:Boolean=false):void{
var localPath:String;
var localImage:URLRequest;
var remoteImage:URLRequest;
_utmac = account;
if (!variables){
variables = new Variables();
};
variables.URIencode = false;
variables.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"];
variables.post = ["utmcc"];
if (_debug.verbose){
_debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek);
};
if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (force))){
if (rateLimit){
updateToken();
};
if (((((force) || (!(rateLimit)))) || ((_buffer.utmb.token >= 1)))){
if (((!(force)) && (rateLimit))){
_buffer.utmb.token = (_buffer.utmb.token - 1);
};
_buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1);
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
variables.utmwv = utmwv;
variables.utmn = Utils.generate32bitRandom();
if (_info.domainName != ""){
variables.utmhn = _info.domainName;
};
if (_config.sampleRate < 1){
variables.utmsp = (_config.sampleRate * 100);
};
if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){
localPath = _info.locationSWFPath;
if (localPath.lastIndexOf("/") > 0){
localPath = localPath.substring(0, localPath.lastIndexOf("/"));
};
localImage = new URLRequest();
if (_config.localGIFpath.indexOf("http") == 0){
localImage.url = _config.localGIFpath;
} else {
localImage.url = (localPath + _config.localGIFpath);
};
localImage.url = (localImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(localImage);
} else {
sendRequest(localImage);
};
};
if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){
remoteImage = new URLRequest();
if (_info.protocol == Protocols.HTTPS){
remoteImage.url = _config.secureRemoteGIFpath;
} else {
if (_info.protocol == Protocols.HTTP){
remoteImage.url = _config.remoteGIFpath;
} else {
remoteImage.url = _config.remoteGIFpath;
};
};
variables.utmac = utmac;
variables.utmcc = encodeURIComponent(utmcc);
remoteImage.url = (remoteImage.url + ("?" + variables.toString()));
if (((_debug.active) && (_debug.GIFRequests))){
_debugSend(remoteImage);
} else {
sendRequest(remoteImage);
};
};
};
};
}
public function onSecurityError(event:SecurityErrorEvent):void{
if (_debug.GIFRequests){
_debug.failure(event.text);
};
}
public function get utmsp():String{
return (((_config.sampleRate * 100) as String));
}
public function get utmcc():String{
var cookies:Array = [];
if (_buffer.hasUTMA()){
cookies.push((_buffer.utma.toURLString() + ";"));
};
if (_buffer.hasUTMZ()){
cookies.push((_buffer.utmz.toURLString() + ";"));
};
if (_buffer.hasUTMV()){
cookies.push((_buffer.utmv.toURLString() + ";"));
};
return (cookies.join("+"));
}
public function get utmac():String{
return (_utmac);
}
public function get utmwv():String{
return (_config.version);
}
public function sendRequest(request:URLRequest):void{
var request = request;
var loader:Loader = new Loader();
loader.name = String(_count++);
var context:LoaderContext = new LoaderContext(false);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_lastRequest = request;
_requests[loader.name] = new RequestObject(request);
loader.load(request, context);
//unresolved jump
var _slot1 = e;
_debug.failure("\"Loader.load()\" could not instanciate Gif Request");
}
private function _removeListeners(target:Object):void{
target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError);
target.removeEventListener(Event.COMPLETE, onComplete);
}
public function updateToken():void{
var tokenDelta:Number;
var timestamp:Number = new Date().getTime();
tokenDelta = ((timestamp - _buffer.utmb.lastTime) * (_config.tokenRate / 1000));
if (_debug.verbose){
_debug.info(("tokenDelta: " + tokenDelta), VisualDebugMode.geek);
};
if (tokenDelta >= 1){
_buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + tokenDelta)), _config.bucketCapacity);
_buffer.utmb.lastTime = timestamp;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.geek);
};
};
}
public function get utmhn():String{
return (_info.domainName);
}
private function _shortenURL(url:String):String{
var paths:Array;
if (url.length > 60){
paths = url.split("/");
while (url.length > 60) {
paths.shift();
url = ("../" + paths.join("/"));
};
};
return (url);
}
private function _debugSend(request:URLRequest):void{
var _local3:String;
var data:String = "";
switch (_debug.mode){
case VisualDebugMode.geek:
data = ((("Gif Request #" + _alertcount) + ":\n") + request.url);
break;
case VisualDebugMode.advanced:
_local3 = request.url;
if (_local3.indexOf("?") > -1){
_local3 = _local3.split("?")[0];
};
_local3 = _shortenURL(_local3);
data = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?");
break;
case VisualDebugMode.basic:
default:
data = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?");
};
_debug.alertGifRequest(data, request, this);
_alertcount++;
}
public function onComplete(event:Event):void{
var id:String = event.target.loader.name;
_requests[id].complete();
var msg = (("Gif Request #" + id) + " sent");
var url:String = _requests[id].request.url;
if (_debug.GIFRequests){
if (!_debug.verbose){
if (url.indexOf("?") > -1){
url = url.split("?")[0];
};
url = _shortenURL(url);
};
if (int(_debug.mode) > int(VisualDebugMode.basic)){
msg = (msg + ((" to \"" + url) + "\""));
};
_debug.success(msg);
} else {
_debug.info(msg);
};
_removeListeners(event.target);
}
}
}//package com.google.analytics.core
Section 25
//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 _stage:Stage;
private var _loop:Timer;
private var _lastMove:int;
private var _inactivity:Number;
private var _debug:DebugConfiguration;
private var _session:Timer;
private var _buffer:Buffer;
public function IdleTimer(config:Configuration, debug:DebugConfiguration, display:DisplayObject, buffer:Buffer){
super();
var delay:Number = config.idleLoop;
var inactivity:Number = config.idleTimeout;
var sessionTimeout:Number = config.sessionTimeout;
_loop = new Timer((delay * 1000));
_session = new Timer((sessionTimeout * 1000), 1);
_debug = debug;
_stage = display.stage;
_buffer = buffer;
_lastMove = getTimer();
_inactivity = (inactivity * 1000);
_loop.addEventListener(TimerEvent.TIMER, checkForIdle);
_session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession);
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_debug.info(((((("delay: " + delay) + "sec , inactivity: ") + inactivity) + "sec, sessionTimeout: ") + sessionTimeout), VisualDebugMode.geek);
_loop.start();
}
private function onMouseMove(event:MouseEvent):void{
_lastMove = getTimer();
if (_session.running){
_debug.info("session timer reset", VisualDebugMode.geek);
_session.reset();
};
}
public function endSession(event: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(event:TimerEvent):void{
var current:int = getTimer();
if ((current - _lastMove) >= _inactivity){
if (!_session.running){
_debug.info("session timer start", VisualDebugMode.geek);
_session.start();
};
};
}
}
}//package com.google.analytics.core
Section 26
//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(){
super();
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
_ignoredReferrals = [];
_ignoredReferralsCache = {};
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function isIgnoredKeyword(keyword:String):Boolean{
if (_ignoredKeywordsCache.hasOwnProperty(keyword)){
return (true);
};
return (false);
}
public function getKeywordValue(or:OrganicReferrer, path:String):String{
var keyword:String = or.keyword;
return (getKeywordValueFromPath(keyword, path));
}
public function isIgnoredReferral(referrer:String):Boolean{
if (_ignoredReferralsCache.hasOwnProperty(referrer)){
return (true);
};
return (false);
}
public function clear():void{
clearEngines();
clearIgnoredReferrals();
clearIgnoredKeywords();
}
public function get count():int{
return (_sources.length);
}
public function get ignoredKeywordsCount():int{
return (_ignoredKeywords.length);
}
public function match(name:String):Boolean{
if (name == ""){
return (false);
};
name = name.toLowerCase();
if (_sourcesEngine[name] != undefined){
return (true);
};
return (false);
}
public function clearIgnoredKeywords():void{
_ignoredKeywords = [];
_ignoredKeywordsCache = {};
}
public function addSource(engine:String, keyword:String):void{
var orgref:OrganicReferrer = new OrganicReferrer(engine, keyword);
if (_sourcesCache[orgref.toString()] == undefined){
_sources.push(orgref);
_sourcesCache[orgref.toString()] = (_sources.length - 1);
if (_sourcesEngine[orgref.engine] == undefined){
_sourcesEngine[orgref.engine] = [(_sources.length - 1)];
} else {
_sourcesEngine[orgref.engine].push((_sources.length - 1));
};
} else {
if (throwErrors){
throw (new Error((orgref.toString() + " already exists, we don't add it.")));
};
};
}
public function clearEngines():void{
_sources = [];
_sourcesCache = [];
_sourcesEngine = [];
}
public function get ignoredReferralsCount():int{
return (_ignoredReferrals.length);
}
public function addIgnoredReferral(referrer:String):void{
if (_ignoredReferralsCache[referrer] == undefined){
_ignoredReferrals.push(referrer);
_ignoredReferralsCache[referrer] = (_ignoredReferrals.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + referrer) + "\" already exists, we don't add it.")));
};
};
}
public function clearIgnoredReferrals():void{
_ignoredReferrals = [];
_ignoredReferralsCache = {};
}
public function getReferrerByName(name:String):OrganicReferrer{
var index:int;
if (match(name)){
index = _sourcesEngine[name][0];
return (_sources[index]);
};
return (null);
}
public function addIgnoredKeyword(keyword:String):void{
if (_ignoredKeywordsCache[keyword] == undefined){
_ignoredKeywords.push(keyword);
_ignoredKeywordsCache[keyword] = (_ignoredKeywords.length - 1);
} else {
if (throwErrors){
throw (new Error((("\"" + keyword) + "\" already exists, we don't add it.")));
};
};
}
public function get sources():Array{
return (_sources);
}
public static function getKeywordValueFromPath(keyword:String, path:String):String{
var value:String;
var vars:Variables;
if (path.indexOf((keyword + "=")) > -1){
if (path.charAt(0) == "?"){
path = path.substr(1);
};
path = path.split("+").join("%20");
vars = new Variables(path);
value = vars[keyword];
};
return (value);
}
}
}//package com.google.analytics.core
Section 27
//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(engine:String, keyword:String){
super();
this.engine = engine;
this.keyword = keyword;
}
public function get keyword():String{
return (_keyword);
}
public function get engine():String{
return (_engine);
}
public function set engine(value:String):void{
_engine = value.toLowerCase();
}
public function toString():String{
return (((engine + "?") + keyword));
}
public function set keyword(value:String):void{
_keyword = value.toLowerCase();
}
}
}//package com.google.analytics.core
Section 28
//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 end:int;
public var request:URLRequest;
public function RequestObject(request:URLRequest){
super();
start = getTimer();
this.request = request;
}
public function hasCompleted():Boolean{
return ((end > 0));
}
public function toString():String{
var data:Array = [];
data.push((("duration: " + duration) + "ms"));
data.push(("url: " + request.url));
return ((("{ " + data.join(", ")) + " }"));
}
public function complete():void{
end = getTimer();
}
public function get duration():int{
if (!hasCompleted()){
return (0);
};
return ((end - start));
}
}
}//package com.google.analytics.core
Section 29
//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(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.core
Section 30
//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(tracker:GoogleAnalyticsAPI=null){
super();
this.tracker = tracker;
_ar = [];
}
public function size():uint{
return (_ar.length);
}
public function flush():void{
var o:Object;
var name:String;
var args:Array;
var l:int;
var i:int;
if (tracker == null){
return;
};
if (size() > 0){
l = _ar.length;
while (i < l) {
o = _ar.shift();
name = (o.name as String);
args = (o.args as Array);
if (((!((name == null))) && ((name in tracker)))){
(tracker[name] as Function).apply(tracker, args);
};
i++;
};
};
}
public function enqueue(name:String, ... _args):Boolean{
if (name == null){
return (false);
};
_ar.push({name:name, args:_args});
return (true);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
enqueue("link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
enqueue("addOrganic", newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
enqueue("setAllowLinker", enable);
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
enqueue("trackEvent", category, action, label, value);
return (true);
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment."));
};
return ("");
}
public function getClientInfo():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment."));
};
return (false);
}
public function trackTrans():void{
enqueue("trackTrans");
}
public function trackPageview(pageURL:String=""):void{
enqueue("trackPageview", pageURL);
}
public function setClientInfo(enable:Boolean):void{
enqueue("setClientInfo", enable);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
enqueue("linkByPost", formObject, useHash);
}
public function setCookieTimeout(newDefaultTimeout:int):void{
enqueue("setCookieTimeout", newDefaultTimeout);
}
public function isEmpty():Boolean{
return ((_ar.length == 0));
}
public function getDetectTitle():Boolean{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment."));
};
return (false);
}
public function resetSession():void{
enqueue("resetSession");
}
public function setDetectFlash(enable:Boolean):void{
enqueue("setDetectFlash", enable);
}
public function clear():void{
_ar = [];
}
public function setCampNameKey(newCampNameKey:String):void{
enqueue("setCampNameKey", newCampNameKey);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
enqueue("addItem", item, sku, name, category, price, quantity);
}
public function createEventTracker(objName:String):EventTracker{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment."));
};
return (null);
}
public function clearIgnoredOrganic():void{
enqueue("clearIgnoredOrganic");
}
public function setVar(newVal:String):void{
enqueue("setVar", newVal);
}
public function setDomainName(newDomainName:String):void{
enqueue("setDomainName", newDomainName);
}
public function setCampSourceKey(newCampSrcKey:String):void{
enqueue("setCampSourceKey", newCampSrcKey);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
if (CACHE_THROW_ERROR){
throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment."));
};
}
public function setCampContentKey(newCampContentKey:String):void{
enqueue("setCampContentKey", newCampContentKey);
}
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(enable:Boolean):void{
enqueue("setAllowAnchor", enable);
}
public function clearIgnoredRef():void{
enqueue("clearIgnoredRef");
}
public function setLocalGifPath(newLocalGifPath:String):void{
enqueue("setLocalGifPath", newLocalGifPath);
}
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(newCookiePath:String):void{
enqueue("setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
enqueue("setSampleRate", newRate);
}
public function setDetectTitle(enable:Boolean):void{
enqueue("setDetectTitle", enable);
}
public function setAllowHash(enable:Boolean):void{
enqueue("setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
enqueue("addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
enqueue("setCampNOKey", newCampNOKey);
}
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(newPath:String):void{
enqueue("cookiePathCopy", newPath);
}
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(enable:Boolean):void{
enqueue("setCampaignTrack", enable);
}
public function clearOrganic():void{
enqueue("clearOrganic");
}
public function setCampTermKey(newCampTermKey:String):void{
enqueue("setCampTermKey", newCampTermKey);
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
enqueue("addIgnoredRef", newIgnoredReferrer);
}
public function setCampMediumKey(newCampMedKey:String):void{
enqueue("setCampMediumKey", newCampMedKey);
}
public function setSessionTimeout(newTimeout:int):void{
enqueue("setSessionTimeout", newTimeout);
}
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 31
//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";
public function TrackerMode(){
super();
}
}
}//package com.google.analytics.core
Section 32
//Utils (com.google.analytics.core.Utils)
package com.google.analytics.core {
public class Utils {
public function Utils(){
super();
}
public static function trim(raw:String, everything:Boolean=false):String{
var i:int;
var iLeft:int;
var iRight:int;
if (raw == ""){
return ("");
};
var whitespaces:Array = [" ", "\n", "\r", "\t"];
var str:String = raw;
if (everything){
i = 0;
while ((((i < whitespaces.length)) && ((str.indexOf(whitespaces[i]) > -1)))) {
str = str.split(whitespaces[i]).join("");
i++;
};
} else {
iLeft = 0;
while ((((iLeft < str.length)) && ((whitespaces.indexOf(str.charAt(iLeft)) > -1)))) {
iLeft++;
};
str = str.substr(iLeft);
iRight = (str.length - 1);
while ((((iRight >= 0)) && ((whitespaces.indexOf(str.charAt(iRight)) > -1)))) {
iRight--;
};
str = str.substring(0, (iRight + 1));
};
return (str);
}
public static function generateHash(input:String):int{
var pos:int;
var current:int;
var hash = 1;
var leftMost7:int;
if (((!((input == null))) && (!((input == ""))))){
hash = 0;
pos = (input.length - 1);
while (pos >= 0) {
current = input.charCodeAt(pos);
hash = ((((hash << 6) & 268435455) + current) + (current << 14));
leftMost7 = (hash & 266338304);
if (leftMost7 != 0){
hash = (hash ^ (leftMost7 >> 21));
};
pos--;
};
};
return (hash);
}
public static function generate32bitRandom():int{
return (Math.round((Math.random() * 2147483647)));
}
public static function validateAccount(account:String):Boolean{
var rel:RegExp = /^UA-[0-9]*-[0-9]*$/;
return (rel.test(account));
}
}
}//package com.google.analytics.core
Section 33
//Cookie (com.google.analytics.data.Cookie)
package com.google.analytics.data {
public interface Cookie {
function fromSharedObject(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\data;Cookie.as:Object):void;
function toURLString():String;
function get creation():Date;
function toSharedObject():Object;
function isExpired():Boolean;
function set creation(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\data;Cookie.as:Date):void;
function set expiration(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\data;Cookie.as:Date):void;
function get expiration():Date;
}
}//package com.google.analytics.data
Section 34
//UTMA (com.google.analytics.data.UTMA)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMA extends UTMCookie {
private var _sessionId:Number;
private var _domainHash:Number;
private var _firstTime:Number;
private var _currentTime:Number;
private var _lastTime:Number;
private var _sessionCount:Number;
public function UTMA(domainHash:Number=NaN, sessionId:Number=NaN, firstTime:Number=NaN, lastTime:Number=NaN, currentTime:Number=NaN, sessionCount:Number=NaN){
super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.sessionId = sessionId;
this.firstTime = firstTime;
this.lastTime = lastTime;
this.currentTime = currentTime;
this.sessionCount = sessionCount;
}
public function get lastTime():Number{
return (_lastTime);
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function set currentTime(value:Number):void{
_currentTime = value;
update();
}
public function get sessionId():Number{
return (_sessionId);
}
public function get sessionCount():Number{
return (_sessionCount);
}
public function get firstTime():Number{
return (_firstTime);
}
public function get currentTime():Number{
return (_currentTime);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set sessionId(value:Number):void{
_sessionId = value;
update();
}
public function set sessionCount(value:Number):void{
_sessionCount = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function set firstTime(value:Number):void{
_firstTime = value;
update();
}
}
}//package com.google.analytics.data
Section 35
//UTMB (com.google.analytics.data.UTMB)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMB extends UTMCookie {
private var _trackCount:Number;
private var _lastTime:Number;
private var _domainHash:Number;
private var _token:Number;
public static var defaultTimespan:Number = Timespan.thirtyminutes;
public function UTMB(domainHash:Number=NaN, trackCount:Number=NaN, token:Number=NaN, lastTime:Number=NaN){
super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.trackCount = trackCount;
this.token = token;
this.lastTime = lastTime;
}
public function set token(value:Number):void{
_token = value;
update();
}
public function set trackCount(value:Number):void{
_trackCount = value;
update();
}
public function get lastTime():Number{
return (_lastTime);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set lastTime(value:Number):void{
_lastTime = value;
update();
}
public function get domainHash():Number{
return (_domainHash);
}
public function get token():Number{
return (_token);
}
public function get trackCount():Number{
return (_trackCount);
}
}
}//package com.google.analytics.data
Section 36
//UTMC (com.google.analytics.data.UTMC)
package com.google.analytics.data {
public class UTMC extends UTMCookie {
private var _domainHash:Number;
public function UTMC(domainHash:Number=NaN){
super("utmc", "__utmc", ["domainHash"]);
this.domainHash = domainHash;
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
}
}//package com.google.analytics.data
Section 37
//UTMCookie (com.google.analytics.data.UTMCookie)
package com.google.analytics.data {
import com.google.analytics.core.*;
public class UTMCookie implements Cookie {
protected var inURL:String;
protected var name:String;
private var _creation:Date;
private var _expiration:Date;
public var proxy:Buffer;
protected var fields:Array;
private var _timespan:Number;
public function UTMCookie(name:String, inURL:String, fields:Array, timespan:Number=0){
super();
this.name = name;
this.inURL = inURL;
this.fields = fields;
_timestamp(timespan);
}
public function isEmpty():Boolean{
var field:String;
var empty:int;
var i:int;
while (i < fields.length) {
field = fields[i];
if ((((this[field] is Number)) && (isNaN(this[field])))){
empty++;
} else {
if ((((this[field] is String)) && ((this[field] == "")))){
empty++;
};
};
i++;
};
if (empty == fields.length){
return (true);
};
return (false);
}
public function resetTimestamp(timespan:Number=NaN):void{
if (!isNaN(timespan)){
_timespan = timespan;
};
_creation = null;
_expiration = null;
_timestamp(_timespan);
}
protected function update():void{
resetTimestamp();
if (proxy){
proxy.update(name, toSharedObject());
};
}
public function reset():void{
var field:String;
var i:int;
while (i < fields.length) {
field = fields[i];
if ((this[field] is Number)){
this[field] = NaN;
} else {
if ((this[field] is String)){
this[field] = "";
};
};
i++;
};
resetTimestamp();
update();
}
public function fromSharedObject(data:Object):void{
var field:String;
var len:int = fields.length;
var i:int;
while (i < len) {
field = fields[i];
if (data[field]){
this[field] = data[field];
};
i++;
};
if (data.creation){
this.creation = data.creation;
};
if (data.expiration){
this.expiration = data.expiration;
};
}
private function _timestamp(timespan:Number):void{
creation = new Date();
_timespan = timespan;
if (timespan > 0){
expiration = new Date((creation.valueOf() + timespan));
};
}
public function isExpired():Boolean{
var current:Date = new Date();
var diff:Number = (expiration.valueOf() - current.valueOf());
if (diff <= 0){
return (true);
};
return (false);
}
public function set expiration(value:Date):void{
_expiration = value;
}
public function get creation():Date{
return (_creation);
}
public function valueOf():String{
var field:String;
var value:*;
var testData:Array;
var data:Array = [];
var testOut:String = "";
var i:int;
while (i < fields.length) {
field = fields[i];
value = this[field];
if ((value is String)){
if (value == ""){
value = "-";
data.push(value);
} else {
data.push(value);
};
} else {
if ((value is Number)){
if (value == 0){
data.push(value);
} else {
if (isNaN(value)){
value = "-";
data.push(value);
} else {
data.push(value);
};
};
};
};
i++;
};
if (isEmpty()){
return ("-");
};
return (("" + data.join(".")));
}
public function toURLString():String{
return (((inURL + "=") + valueOf()));
}
public function get expiration():Date{
if (_expiration){
return (_expiration);
};
return (new Date((new Date().valueOf() + 1000)));
}
public function toSharedObject():Object{
var field:String;
var value:*;
var data:Object = {};
var i:int;
for (;i < fields.length;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data[field] = value;
} else {
if (value == 0){
data[field] = value;
} else {
if (isNaN(value)){
continue;
} else {
data[field] = value;
};
};
};
};
data.creation = creation;
data.expiration = expiration;
return (data);
}
public function toString(showTimestamp:Boolean=false):String{
var field:String;
var value:*;
var data:Array = [];
var len:int = fields.length;
var i:int;
for (;i < len;i++) {
field = fields[i];
value = this[field];
if ((value is String)){
data.push((((field + ": \"") + value) + "\""));
} else {
if (value == 0){
data.push(((field + ": ") + value));
} else {
if (isNaN(value)){
continue;
} else {
data.push(((field + ": ") + value));
};
};
};
};
var str = (((name.toUpperCase() + " {") + data.join(", ")) + "}");
if (showTimestamp){
str = (str + (((" creation:" + creation) + ", expiration:") + expiration));
};
return (str);
}
public function set creation(value:Date):void{
_creation = value;
}
}
}//package com.google.analytics.data
Section 38
//UTMK (com.google.analytics.data.UTMK)
package com.google.analytics.data {
public class UTMK extends UTMCookie {
private var _hash:Number;
public function UTMK(hash:Number=NaN){
super("utmk", "__utmk", ["hash"]);
this.hash = hash;
}
public function set hash(value:Number):void{
_hash = value;
update();
}
public function get hash():Number{
return (_hash);
}
}
}//package com.google.analytics.data
Section 39
//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(domainHash:Number=NaN, value:String=""){
super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000));
this.domainHash = domainHash;
this.value = value;
}
public function get value():String{
return (_value);
}
public function get domainHash():Number{
return (_domainHash);
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set value(value:String):void{
_value = value;
update();
}
}
}//package com.google.analytics.data
Section 40
//UTMX (com.google.analytics.data.UTMX)
package com.google.analytics.data {
public class UTMX extends UTMCookie {
private var _value:String;
public function UTMX(){
super("utmx", "__utmx", ["value"], 0);
_value = "-";
}
public function get value():String{
return (_value);
}
public function set value(value:String):void{
_value = value;
}
}
}//package com.google.analytics.data
Section 41
//UTMZ (com.google.analytics.data.UTMZ)
package com.google.analytics.data {
import com.google.analytics.utils.*;
public class UTMZ extends UTMCookie {
private var _campaignTracking:String;
private var _campaignCreation:Number;
private var _responseCount:Number;
private var _domainHash:Number;
private var _campaignSessions:Number;
public static var defaultTimespan:Number = Timespan.sixmonths;
public function UTMZ(domainHash:Number=NaN, campaignCreation:Number=NaN, campaignSessions:Number=NaN, responseCount:Number=NaN, campaignTracking:String=""){
super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000));
this.domainHash = domainHash;
this.campaignCreation = campaignCreation;
this.campaignSessions = campaignSessions;
this.responseCount = responseCount;
this.campaignTracking = campaignTracking;
}
public function set responseCount(value:Number):void{
_responseCount = value;
update();
}
public function set domainHash(value:Number):void{
_domainHash = value;
update();
}
public function set campaignCreation(value:Number):void{
_campaignCreation = value;
update();
}
public function get campaignTracking():String{
return (_campaignTracking);
}
public function get campaignSessions():Number{
return (_campaignSessions);
}
public function get domainHash():Number{
return (_domainHash);
}
public function get responseCount():Number{
return (_responseCount);
}
public function get campaignCreation():Number{
return (_campaignCreation);
}
public function set campaignSessions(value:Number):void{
_campaignSessions = value;
update();
}
public function set campaignTracking(value:String):void{
_campaignTracking = value;
update();
}
}
}//package com.google.analytics.data
Section 42
//X10 (com.google.analytics.data.X10)
package com.google.analytics.data {
public class X10 {
private var _delimEnd:String;// = ")"
private var _minimum:int;
private var _delimSet:String;// = "*"
private var _escapeChar:String;// = "'"
private var _delimBegin:String;// = "("
private var _delimNumValue:String;// = "!"
private var _key:String;// = "k"
private var _set:Array;
private var _hasData:int;
private var _escapeCharMap:Object;
private var _projectData:Object;
private var _value:String;// = "v"
public function X10(){
_set = [_key, _value];
super();
_projectData = {};
_escapeCharMap = {};
_escapeCharMap[_escapeChar] = "'0";
_escapeCharMap[_delimEnd] = "'1";
_escapeCharMap[_delimSet] = "'2";
_escapeCharMap[_delimNumValue] = "'3";
_minimum = 1;
}
private function _setInternal(projectId:Number, type:String, num:Number, value:String):void{
if (!hasProject(projectId)){
_projectData[projectId] = {};
};
if (_projectData[projectId][type] == undefined){
_projectData[projectId][type] = [];
};
_projectData[projectId][type][num] = value;
_hasData = (_hasData + 1);
}
private function _renderProject(project:Object):String{
var i:int;
var data:Array;
var result:String = "";
var needTypeQualifier:Boolean;
var l:int = _set.length;
i = 0;
while (i < l) {
data = project[_set[i]];
if (data){
if (needTypeQualifier){
result = (result + _set[i]);
};
result = (result + _renderDataType(data));
needTypeQualifier = false;
} else {
needTypeQualifier = true;
};
i++;
};
return (result);
}
public function hasProject(projectId:Number):Boolean{
return (_projectData[projectId]);
}
public function clearKey(projectId:Number):void{
_clearInternal(projectId, _key);
}
private function _renderDataType(data:Array):String{
var str:String;
var i:int;
var result:Array = [];
i = 0;
while (i < data.length) {
if (data[i] != undefined){
str = "";
if (((!((i == _minimum))) && ((data[(i - 1)] == undefined)))){
str = (str + i.toString());
str = (str + _delimNumValue);
};
str = (str + _escapeExtensibleValue(data[i]));
result.push(str);
};
i++;
};
return (((_delimBegin + result.join(_delimSet)) + _delimEnd));
}
public function getKey(projectId:Number, num:Number):String{
return ((_getInternal(projectId, _key, num) as String));
}
public function hasData():Boolean{
return ((_hasData > 0));
}
public function renderMergedUrlString(extObject:X10=null):String{
var projectId:String;
if (!extObject){
return (renderUrlString());
};
var result:Array = [extObject.renderUrlString()];
for (projectId in _projectData) {
if (((hasProject(Number(projectId))) && (!(extObject.hasProject(Number(projectId)))))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
public function setValue(projectId:Number, num:Number, value:Number):Boolean{
if (((((!((Math.round(value) == value))) || (isNaN(value)))) || ((value == Infinity)))){
return (false);
};
_setInternal(projectId, _value, num, value.toString());
return (true);
}
public function renderUrlString():String{
var projectId:String;
var result:Array = [];
for (projectId in _projectData) {
if (hasProject(Number(projectId))){
result.push((projectId + _renderProject(_projectData[projectId])));
};
};
return (result.join(""));
}
private function _getInternal(projectId:Number, type:String, num:Number):Object{
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
return (_projectData[projectId][type][num]);
};
return (undefined);
}
public function setKey(projectId:Number, num:Number, value:String):Boolean{
_setInternal(projectId, _key, num, value);
return (true);
}
public function clearValue(projectId:Number):void{
_clearInternal(projectId, _value);
}
private function _clearInternal(projectId:Number, type:String):void{
var isEmpty:Boolean;
var i:int;
var l:int;
if (((hasProject(projectId)) && (!((_projectData[projectId][type] == undefined))))){
_projectData[projectId][type] = undefined;
isEmpty = true;
l = _set.length;
i = 0;
while (i < l) {
if (_projectData[projectId][_set[i]] != undefined){
isEmpty = false;
break;
};
i++;
};
if (isEmpty){
_projectData[projectId] = undefined;
_hasData = (_hasData - 1);
};
};
}
public function getValue(projectId:Number, num:Number){
var value:* = _getInternal(projectId, _value, num);
if (value == null){
return (null);
};
return (Number(value));
}
private function _escapeExtensibleValue(value:String):String{
var i:int;
var c:String;
var escaped:String;
var result:String = "";
i = 0;
while (i < value.length) {
c = value.charAt(i);
escaped = _escapeCharMap[c];
if (escaped){
result = (result + escaped);
} else {
result = (result + c);
};
i++;
};
return (result);
}
}
}//package com.google.analytics.data
Section 43
//_Style (com.google.analytics.debug._Style)
package com.google.analytics.debug {
import flash.net.*;
import flash.text.*;
public class _Style {
public var failureColor:uint;
public var borderColor:uint;
public var backgroundColor:uint;
private var _sheet:StyleSheet;
public var roundedCorner:uint;
public var warningColor:uint;
public var infoColor:uint;
public var alertColor:uint;
public var successColor:uint;
private var _loader:URLLoader;
private var _defaultSheet:String;
public function _Style(){
super();
_sheet = new StyleSheet();
_loader = new URLLoader();
_init();
}
private function _parseSheet(data:String):void{
_sheet.parseCSS(data);
}
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 44
//Alert (com.google.analytics.debug.Alert)
package com.google.analytics.debug {
import flash.events.*;
public class Alert extends Label {
public var autoClose:Boolean;// = true
public var actionOnNextLine:Boolean;// = true
private var _actions:Array;
public function Alert(text:String, actions:Array, tag:String="uiAlert", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false, actionOnNextLine:Boolean=true){
if (color == 0){
color = Style.alertColor;
};
if (alignement == null){
alignement = Align.center;
};
super(text, tag, color, alignement, stickToEdge);
this.selectable = true;
super.mouseChildren = true;
this.buttonMode = true;
this.mouseEnabled = true;
this.useHandCursor = true;
this.actionOnNextLine = actionOnNextLine;
_actions = [];
var i:int;
while (i < actions.length) {
actions[i].container = this;
_actions.push(actions[i]);
i++;
};
}
private function _defineActions():void{
var action:AlertAction;
var str:String = "";
if (actionOnNextLine){
str = (str + "\n");
} else {
str = (str + " |");
};
str = (str + " ");
var actions:Array = [];
var i:int;
while (i < _actions.length) {
action = _actions[i];
actions.push((((("<a href=\"event:" + action.activator) + "\">") + action.name) + "</a>"));
i++;
};
str = (str + actions.join(" | "));
appendText(str, "uiAlertAction");
}
protected function isValidAction(action:String):Boolean{
var i:int;
while (i < _actions.length) {
if (action == _actions[i].activator){
return (true);
};
i++;
};
return (false);
}
override protected function layout():void{
super.layout();
_defineActions();
}
protected function getAction(name:String):AlertAction{
var i:int;
while (i < _actions.length) {
if (name == _actions[i].activator){
return (_actions[i]);
};
i++;
};
return (null);
}
protected function spaces(num:int):String{
var str:String = "";
var spc:String = " ";
var i:int;
while (i < (num + 1)) {
str = (str + spc);
i++;
};
return (str);
}
override public function onLink(event:TextEvent):void{
var action:AlertAction;
if (isValidAction(event.text)){
action = getAction(event.text);
if (action){
action.execute();
};
};
if (autoClose){
close();
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 45
//AlertAction (com.google.analytics.debug.AlertAction)
package com.google.analytics.debug {
public class AlertAction {
public var container:Alert;
private var _callback;
public var activator:String;
public var name:String;
public function AlertAction(name:String, activator:String, callback){
super();
this.name = name;
this.activator = activator;
_callback = callback;
}
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 46
//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(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 47
//Background (com.google.analytics.debug.Background)
package com.google.analytics.debug {
import flash.display.*;
public class Background {
public function Background(){
super();
}
public static function drawRounded(target, g:Graphics, width:uint=0, height:uint=0):void{
var W:uint;
var H:uint;
var R:uint = Style.roundedCorner;
if ((((width > 0)) && ((height > 0)))){
W = width;
H = height;
} else {
W = target.width;
H = target.height;
};
if (((target.stickToEdge) && (!((target.alignement == Align.none))))){
switch (target.alignement){
case Align.top:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, R);
break;
case Align.topLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, 0, R);
break;
case Align.topRight:
g.drawRoundRectComplex(0, 0, W, H, 0, 0, R, 0);
break;
case Align.bottom:
g.drawRoundRectComplex(0, 0, W, H, R, R, 0, 0);
break;
case Align.bottomLeft:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, 0);
break;
case Align.bottomRight:
g.drawRoundRectComplex(0, 0, W, H, R, 0, 0, 0);
break;
case Align.left:
g.drawRoundRectComplex(0, 0, W, H, 0, R, 0, R);
break;
case Align.right:
g.drawRoundRectComplex(0, 0, W, H, R, 0, R, 0);
break;
case Align.center:
g.drawRoundRect(0, 0, W, H, R, R);
break;
};
} else {
g.drawRoundRect(0, 0, W, H, R, R);
};
}
}
}//package com.google.analytics.debug
Section 48
//Debug (com.google.analytics.debug.Debug)
package com.google.analytics.debug {
import flash.events.*;
import flash.ui.*;
public class Debug extends Label {
private var _lines:Array;
private var _preferredForcedWidth:uint;// = 540
private var _linediff:int;// = 0
public var maxLines:uint;// = 16
public static var count:uint;
public function Debug(color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
if (alignement == null){
alignement = Align.bottom;
};
super("", "uiLabel", color, alignement, stickToEdge);
this.name = ("Debug" + count++);
_lines = [];
selectable = true;
addEventListener(KeyboardEvent.KEY_DOWN, onKey);
}
public function writeBold(message:String):void{
write(message, true);
}
private function _getLinesToDisplay(direction:int=0):Array{
var lines:Array;
var start:uint;
var end:uint;
if ((_lines.length - 1) > maxLines){
if ((_linediff <= 0)){
_linediff = (_linediff + direction);
} else {
if ((((_linediff > 0)) && ((direction < 0)))){
_linediff = (_linediff + direction);
};
};
start = ((_lines.length - maxLines) + _linediff);
end = (start + maxLines);
lines = _lines.slice(start, end);
} else {
lines = _lines;
};
return (lines);
}
private function onKey(event:KeyboardEvent=null):void{
var lines:Array;
switch (event.keyCode){
case Keyboard.DOWN:
lines = _getLinesToDisplay(1);
break;
case Keyboard.UP:
lines = _getLinesToDisplay(-1);
break;
default:
lines = null;
};
if (lines == null){
return;
};
text = lines.join("\n");
}
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!);
}
public function write(message:String, bold:Boolean=false):void{
var inputLines:Array;
if (message.indexOf("") > -1){
inputLines = message.split("\n");
} else {
inputLines = [message];
};
var pre:String = "";
var post:String = "";
if (bold){
pre = "<b>";
post = "</b>";
};
var i:int;
while (i < inputLines.length) {
_lines.push(((pre + inputLines[i]) + post));
i++;
};
var lines:Array = _getLinesToDisplay();
text = lines.join("\n");
}
public function close():void{
dispose();
}
override protected function dispose():void{
removeEventListener(KeyboardEvent.KEY_DOWN, onKey);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 49
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration)
package com.google.analytics.debug {
import com.google.analytics.core.*;
import flash.net.*;
import flash.utils.*;
public class DebugConfiguration {
public var showHideKey:Number;// = 32
private var _mode:VisualDebugMode;
private var _verbose:Boolean;// = false
public var destroyKey:Number;// = 8
public var GIFRequests:Boolean;// = false
public var showInfos:Boolean;// = true
public var infoTimeout:Number;// = 1000
public var minimizedOnStart:Boolean;// = false
private var _active:Boolean;// = false
public var traceOutput:Boolean;// = false
public var layout:ILayout;
public var warningTimeout:Number;// = 1500
public var javascript:Boolean;// = false
public var showWarnings:Boolean;// = true
private var _visualInitialized:Boolean;// = false
public function DebugConfiguration(){
_mode = VisualDebugMode.basic;
super();
}
public function get verbose():Boolean{
return (_verbose);
}
public function set verbose(value:Boolean):void{
_verbose = value;
}
public function set mode(value):void{
if ((value is String)){
switch (value){
case "geek":
value = VisualDebugMode.geek;
break;
case "advanced":
value = VisualDebugMode.advanced;
break;
case "basic":
default:
value = VisualDebugMode.basic;
};
};
_mode = value;
}
public function success(message:String):void{
if (layout){
layout.createSuccessAlert(message);
};
if (traceOutput){
trace((("[+] " + message) + " !!"));
};
}
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(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showWarnings))){
layout.createWarning(message);
};
if (traceOutput){
trace((("## " + message) + " ##"));
};
}
private function _filter(mode:VisualDebugMode=null):Boolean{
return (((mode) && ((int(mode) >= int(this.mode)))));
}
public function failure(message:String):void{
if (layout){
layout.createFailureAlert(message);
};
if (traceOutput){
trace((("[-] " + message) + " !!"));
};
}
public function get mode(){
return (_mode);
}
public function set active(value:Boolean):void{
_active = value;
if (_active){
_initializeVisual();
} else {
_destroyVisual();
};
}
protected function trace(message:String):void{
var msgs:Array;
var j:int;
var messages:Array = [];
var pre0:String = "";
var pre1:String = "";
if (this.mode == VisualDebugMode.geek){
pre0 = (getTimer() + " - ");
pre1 = (new Array(pre0.length).join(" ") + " ");
};
if (message.indexOf("\n") > -1){
msgs = message.split("\n");
j = 0;
while (j < msgs.length) {
if (msgs[j] == ""){
} else {
if (j == 0){
messages.push((pre0 + msgs[j]));
} else {
messages.push((pre1 + msgs[j]));
};
};
j++;
};
} else {
messages.push((pre0 + message));
};
var len:int = messages.length;
var i:int;
while (i < len) {
trace(messages[i]);
i++;
};
}
public function alert(message:String):void{
if (layout){
layout.createAlert(message);
};
if (traceOutput){
trace((("!! " + message) + " !!"));
};
}
public function info(message:String, mode:VisualDebugMode=null):void{
if (_filter(mode)){
return;
};
if (((layout) && (showInfos))){
layout.createInfo(message);
};
if (traceOutput){
trace(message);
};
}
public function alertGifRequest(message:String, request:URLRequest, ref:GIFRequest):void{
if (layout){
layout.createGIFRequestAlert(message, request, ref);
};
if (traceOutput){
trace(((">> " + message) + " <<"));
};
}
}
}//package com.google.analytics.debug
Section 50
//FailureAlert (com.google.analytics.debug.FailureAlert)
package com.google.analytics.debug {
public class FailureAlert extends Alert {
public function FailureAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align = Align.bottomLeft;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiFailure", Style.failureColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 51
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert)
package com.google.analytics.debug {
public class GIFRequestAlert extends Alert {
public function GIFRequestAlert(text:String, actions:Array){
super(text, actions);
}
}
}//package com.google.analytics.debug
Section 52
//ILayout (com.google.analytics.debug.ILayout)
package com.google.analytics.debug {
import flash.display.*;
import com.google.analytics.core.*;
import flash.net.*;
public interface ILayout {
function createAlert(:String):void;
function addToStage(:DisplayObject):void;
function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void;
function createWarning(:String):void;
function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void;
function createInfo(:String):void;
function createFailureAlert(:String):void;
function addToPanel(_arg1:String, _arg2:DisplayObject):void;
function init():void;
function createSuccessAlert(:String):void;
function createVisualDebug():void;
function destroy():void;
function bringToFront(:DisplayObject):void;
function isAvailable():Boolean;
}
}//package com.google.analytics.debug
Section 53
//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(text:String="", timeout:uint=3000){
super(text, "uiInfo", Style.infoColor, Align.top, true);
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function onComplete(event:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 54
//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 _color:uint;
private var _background:Shape;
private var _textField:TextField;
public var stickToEdge:Boolean;
private var _text:String;
protected var selectable:Boolean;
private var _tag:String;
public static var count:uint = 0;
public function Label(text:String="", tag:String="uiLabel", color:uint=0, alignement:Align=null, stickToEdge:Boolean=false){
super();
this.name = ("Label" + count++);
selectable = false;
_background = new Shape();
_textField = new TextField();
_text = text;
_tag = tag;
if (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (color == 0){
color = Style.backgroundColor;
};
_color = color;
_textField.addEventListener(TextEvent.LINK, onLink);
}
public function get tag():String{
return (_tag);
}
private function _draw():void{
var g:Graphics = _background.graphics;
g.clear();
g.beginFill(_color);
var W:uint = _textField.width;
var H:uint = _textField.height;
if (forcedWidth > 0){
W = forcedWidth;
};
Background.drawRounded(this, g, W, H);
g.endFill();
}
public function get text():String{
return (_textField.text);
}
public function appendText(value:String, newtag:String=""):void{
if (value == ""){
return;
};
if (newtag == ""){
newtag = tag;
};
_textField.htmlText = (_textField.htmlText + (((("<span class=\"" + newtag) + "\">") + value) + "</span>"));
_text = (_text + value);
_draw();
resize();
}
public function set text(value:String):void{
if (value == ""){
value = _text;
};
_textField.htmlText = (((("<span class=\"" + tag) + "\">") + value) + "</span>");
_text = value;
_draw();
resize();
}
override protected function layout():void{
_textField.type = TextFieldType.DYNAMIC;
_textField.autoSize = TextFieldAutoSize.LEFT;
_textField.background = false;
_textField.selectable = selectable;
_textField.multiline = true;
_textField.styleSheet = Style.sheet;
this.text = _text;
addChild(_background);
addChild(_textField);
}
public function set tag(value:String):void{
_tag = value;
text = "";
}
public function onLink(event:TextEvent):void{
}
override protected function dispose():void{
_textField.removeEventListener(TextEvent.LINK, onLink);
super.dispose();
}
}
}//package com.google.analytics.debug
Section 55
//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(debug:DebugConfiguration, display:DisplayObject){
super();
_display = display;
_debug = debug;
_hasWarning = false;
_hasInfo = false;
_hasDebug = false;
_hasGRAlert = false;
_warningQueue = [];
_infoQueue = [];
_GRAlertQueue = [];
}
private function onKey(event:KeyboardEvent=null):void{
switch (event.keyCode){
case _debug.showHideKey:
_mainPanel.visible = !(_mainPanel.visible);
break;
case _debug.destroyKey:
destroy();
break;
};
}
public function createWarning(message:String):void{
if (((_hasWarning) || (!(isAvailable())))){
_warningQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasWarning = true;
var w:Warning = new Warning(message, _debug.warningTimeout);
addToPanel("analytics", w);
w.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
public function bringToFront(visual:DisplayObject):void{
_display.stage.setChildIndex(visual, (_display.stage.numChildren - 1));
}
public function createFailureAlert(message:String):void{
var actionClose:AlertAction;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
var fa:Alert = new FailureAlert(_debug, message, [actionClose]);
addToPanel("analytics", fa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function init():void{
var spaces = 10;
var W:uint = (_display.stage.stageWidth - (spaces * 2));
var H:uint = (_display.stage.stageHeight - (spaces * 2));
var mp:Panel = new Panel("analytics", W, H);
mp.alignement = Align.top;
mp.stickToEdge = false;
mp.title = ("Google Analytics v" + GATracker.version);
_mainPanel = mp;
addToStage(mp);
bringToFront(mp);
if (_debug.minimizedOnStart){
_mainPanel.onToggle();
};
createVisualDebug();
_display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true);
}
public function addToPanel(name:String, visual:DisplayObject):void{
var panel:Panel;
var d:DisplayObject = _display.stage.getChildByName(name);
if (d){
panel = (d as Panel);
panel.addData(visual);
} else {
trace((("panel \"" + name) + "\" not found"));
};
}
private function _clearInfo(event:Event):void{
_hasInfo = false;
if (_infoQueue.length > 0){
createInfo(_infoQueue.shift());
};
}
private function _filterMaxChars(message:String, maxCharPerLine:int=0):String{
var line:String;
var CRLF:String = "\n";
var output:Array = [];
var lines:Array = message.split(CRLF);
if (maxCharPerLine == 0){
maxCharPerLine = _maxCharPerLine;
};
var i:int;
while (i < lines.length) {
line = lines[i];
while (line.length > maxCharPerLine) {
output.push(line.substr(0, maxCharPerLine));
line = line.substring(maxCharPerLine);
};
output.push(line);
i++;
};
return (output.join(CRLF));
}
private function _clearGRAlert(event:Event):void{
_hasGRAlert = false;
if (_GRAlertQueue.length > 0){
createGIFRequestAlert.apply(this, _GRAlertQueue.shift());
};
}
public function createSuccessAlert(message:String):void{
var actionClose:AlertAction;
if (_debug.verbose){
message = _filterMaxChars(message);
actionClose = new AlertAction("Close", "close", "close");
} else {
actionClose = new AlertAction("X", "close", "close");
};
var sa:Alert = new SuccessAlert(_debug, message, [actionClose]);
addToPanel("analytics", sa);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.writeBold(message);
};
}
public function isAvailable():Boolean{
return (!((_display.stage == null)));
}
public function createAlert(message:String):void{
message = _filterMaxChars(message);
var a:Alert = new Alert(message, [new AlertAction("Close", "close", "close")]);
addToPanel("analytics", a);
if (_hasDebug){
visualDebug.writeBold(message);
};
}
public function createInfo(message:String):void{
if (((_hasInfo) || (!(isAvailable())))){
_infoQueue.push(message);
return;
};
message = _filterMaxChars(message);
_hasInfo = true;
var i:Info = new Info(message, _debug.infoTimeout);
addToPanel("analytics", i);
i.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true);
if (_hasDebug){
visualDebug.write(message);
};
}
public function createGIFRequestAlert(message:String, request:URLRequest, ref:GIFRequest):void{
var message = message;
var request = request;
var ref = ref;
if (_hasGRAlert){
_GRAlertQueue.push([message, request, ref]);
return;
};
_hasGRAlert = true;
var f:Function = function ():void{
ref.sendRequest(request);
};
message = _filterMaxChars(message);
var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]);
addToPanel("analytics", gra);
gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true);
if (_hasDebug){
if (_debug.verbose){
message = message.split("\n").join("");
message = _filterMaxChars(message, 66);
};
visualDebug.write(message);
};
}
public function createVisualDebug():void{
if (!visualDebug){
visualDebug = new Debug();
visualDebug.alignement = Align.bottom;
visualDebug.stickToEdge = true;
addToPanel("analytics", visualDebug);
_hasDebug = true;
};
}
public function addToStage(visual:DisplayObject):void{
_display.stage.addChild(visual);
}
private function _clearWarning(event:Event):void{
_hasWarning = false;
if (_warningQueue.length > 0){
createWarning(_warningQueue.shift());
};
}
public function createPanel(name:String, width:uint, height:uint):void{
var p:Panel = new Panel(name, width, height);
p.alignement = Align.center;
p.stickToEdge = false;
addToStage(p);
bringToFront(p);
}
public function destroy():void{
_mainPanel.close();
_debug.layout = null;
}
}
}//package com.google.analytics.debug
Section 56
//Margin (com.google.analytics.debug.Margin)
package com.google.analytics.debug {
public class Margin {
public var top:int;
public var left:int;
public var bottom:int;
public var right:int;
public function Margin(top:int=0, bottom:int=0, left:int=0, right:int=0){
super();
this.top = top;
this.bottom = bottom;
this.left = left;
this.right = right;
}
}
}//package com.google.analytics.debug
Section 57
//Panel (com.google.analytics.debug.Panel)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class Panel extends UISprite {
private var _savedH:uint;
private var _data:UISprite;
private var _mask:Sprite;
private var _background:Shape;
private var _savedW:uint;
private var _stickToEdge:Boolean;
private var _border:Shape;
private var _borderColor:uint;
protected var baseAlpha:Number;
private var _backgroundColor:uint;
private var _title:Label;
private var _colapsed:Boolean;
private var _name:String;
public function Panel(name:String, width:uint, height:uint, backgroundColor:uint=0, borderColor:uint=0, baseAlpha:Number=0.3, alignement:Align=null, stickToEdge:Boolean=false){
super();
_name = name;
this.name = name;
this.mouseEnabled = false;
_colapsed = false;
forcedWidth = width;
forcedHeight = height;
this.baseAlpha = baseAlpha;
_background = new Shape();
_data = new UISprite();
_data.forcedWidth = width;
_data.forcedHeight = height;
_data.mouseEnabled = false;
_title = new Label(name, "uiLabel", 0xFFFFFF, Align.topLeft, stickToEdge);
_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 (alignement == null){
alignement = Align.none;
};
this.alignement = alignement;
this.stickToEdge = stickToEdge;
if (backgroundColor == 0){
backgroundColor = Style.backgroundColor;
};
_backgroundColor = backgroundColor;
if (borderColor == 0){
borderColor = Style.borderColor;
};
_borderColor = borderColor;
}
public function get stickToEdge():Boolean{
return (_stickToEdge);
}
public function onToggle(event:MouseEvent=null):void{
if (_colapsed){
_data.visible = true;
} else {
_data.visible = false;
};
_colapsed = !(_colapsed);
_update();
resize();
}
public function set stickToEdge(value:Boolean):void{
_stickToEdge = value;
_title.stickToEdge = value;
}
override protected function dispose():void{
_title.removeEventListener(MouseEvent.CLICK, onToggle);
super.dispose();
}
private function _draw():void{
var W:uint;
var H:uint;
if (((_savedW) && (_savedH))){
forcedWidth = _savedW;
forcedHeight = _savedH;
};
if (!_colapsed){
W = forcedWidth;
H = forcedHeight;
} else {
W = _title.width;
H = _title.height;
_savedW = forcedWidth;
_savedH = forcedHeight;
forcedWidth = W;
forcedHeight = H;
};
var g0:Graphics = _background.graphics;
g0.clear();
g0.beginFill(_backgroundColor);
Background.drawRounded(this, g0, W, H);
g0.endFill();
var g01:Graphics = _data.graphics;
g01.clear();
g01.beginFill(_backgroundColor, 0);
Background.drawRounded(this, g01, W, H);
g01.endFill();
var g1:Graphics = _border.graphics;
g1.clear();
g1.lineStyle(0.1, _borderColor);
Background.drawRounded(this, g1, W, H);
g1.endFill();
var g2:Graphics = _mask.graphics;
g2.clear();
g2.beginFill(_backgroundColor);
Background.drawRounded(this, g2, (W + 1), (H + 1));
g2.endFill();
}
public function get title():String{
return (_title.text);
}
private function _update():void{
_draw();
if (baseAlpha < 1){
_background.alpha = baseAlpha;
_border.alpha = baseAlpha;
};
}
public function addData(child:DisplayObject):void{
_data.addChild(child);
}
override protected function layout():void{
_update();
addChild(_background);
addChild(_data);
addChild(_title);
addChild(_border);
addChild(_mask);
mask = _mask;
}
public function set title(value:String):void{
_title.text = value;
}
public function close():void{
dispose();
if (parent != null){
parent.removeChild(this);
};
}
}
}//package com.google.analytics.debug
Section 58
//Style (com.google.analytics.debug.Style)
package com.google.analytics.debug {
public const Style:_Style = new _Style();
}//package com.google.analytics.debug
Section 59
//SuccessAlert (com.google.analytics.debug.SuccessAlert)
package com.google.analytics.debug {
public class SuccessAlert extends Alert {
public function SuccessAlert(debug:DebugConfiguration, text:String, actions:Array){
var alignement:Align = Align.bottomLeft;
var stickToEdge:Boolean;
var actionOnNextLine:Boolean;
if (debug.verbose){
text = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + text);
alignement = Align.center;
stickToEdge = false;
actionOnNextLine = true;
};
super(text, actions, "uiSuccess", Style.successColor, alignement, stickToEdge, actionOnNextLine);
}
}
}//package com.google.analytics.debug
Section 60
//UISprite (com.google.analytics.debug.UISprite)
package com.google.analytics.debug {
import flash.display.*;
import flash.events.*;
public class UISprite extends Sprite {
private var _forcedWidth:uint;
public var margin:Margin;
protected var alignTarget:DisplayObject;
protected var listenResize:Boolean;
public var alignement:Align;
private var _forcedHeight:uint;
public function UISprite(alignTarget:DisplayObject=null){
super();
listenResize = false;
alignement = Align.none;
this.alignTarget = alignTarget;
margin = new Margin();
addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
}
public function get forcedHeight():uint{
if (_forcedHeight){
return (_forcedHeight);
};
return (height);
}
private function _onAddedToStage(event:Event):void{
layout();
resize();
}
protected function dispose():void{
var d:DisplayObject;
var i:int;
while (i < numChildren) {
d = getChildAt(i);
if (d){
removeChild(d);
};
i++;
};
}
public function set forcedHeight(value:uint):void{
_forcedHeight = value;
}
public function set forcedWidth(value:uint):void{
_forcedWidth = value;
}
protected function layout():void{
}
public function get forcedWidth():uint{
if (_forcedWidth){
return (_forcedWidth);
};
return (width);
}
public function alignTo(alignement:Align, target:DisplayObject=null):void{
var H:uint;
var W:uint;
var X:uint;
var Y:uint;
var t:UISprite;
if (target == null){
if ((parent is Stage)){
target = this.stage;
} else {
target = parent;
};
};
if (target == this.stage){
if (this.stage == null){
return;
};
H = this.stage.stageHeight;
W = this.stage.stageWidth;
X = 0;
Y = 0;
} else {
t = (target as UISprite);
if (t.forcedHeight){
H = t.forcedHeight;
} else {
H = t.height;
};
if (t.forcedWidth){
W = t.forcedWidth;
} else {
W = t.width;
};
X = 0;
Y = 0;
};
switch (alignement){
case Align.top:
x = ((W / 2) - (forcedWidth / 2));
y = (Y + margin.top);
break;
case Align.bottom:
x = ((W / 2) - (forcedWidth / 2));
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.left:
x = (X + margin.left);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.right:
x = (((X + W) - forcedWidth) - margin.right);
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.center:
x = ((W / 2) - (forcedWidth / 2));
y = ((H / 2) - (forcedHeight / 2));
break;
case Align.topLeft:
x = (X + margin.left);
y = (Y + margin.top);
break;
case Align.topRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (Y + margin.top);
break;
case Align.bottomLeft:
x = (X + margin.left);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
case Align.bottomRight:
x = (((X + W) - forcedWidth) - margin.right);
y = (((Y + H) - forcedHeight) - margin.bottom);
break;
};
if (((!(listenResize)) && (!((alignement == Align.none))))){
target.addEventListener(Event.RESIZE, onResize, false, 0, true);
listenResize = true;
};
this.alignement = alignement;
this.alignTarget = target;
}
private function _onRemovedFromStage(event:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage);
removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage);
dispose();
}
public function resize():void{
if (alignement != Align.none){
alignTo(alignement, alignTarget);
};
}
protected function onResize(event:Event):void{
resize();
}
}
}//package com.google.analytics.debug
Section 61
//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(text:String="", timeout:uint=3000){
super(text, "uiWarning", Style.warningColor, Align.top, false);
margin.top = 32;
if (timeout > 0){
_timer = new Timer(timeout, 1);
_timer.start();
_timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true);
};
}
public function close():void{
if (parent != null){
parent.removeChild(this);
};
}
override public function onLink(event:TextEvent):void{
switch (event.text){
case "hide":
close();
break;
};
}
public function onComplete(event:TimerEvent):void{
close();
}
}
}//package com.google.analytics.debug
Section 62
//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(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.debug
Section 63
//Item (com.google.analytics.ecommerce.Item)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Item {
private var _price:String;
private var _id:String;
private var _sku:String;
private var _category:String;
private var _quantity:String;
private var _name:String;
public function Item(id:String, sku:String, name:String, category:String, price:String, quantity:String){
super();
this._id = id;
this._sku = sku;
this._name = name;
this._category = category;
this._price = price;
this._quantity = quantity;
}
public function set sku(value:String):void{
_sku = value;
}
public function get price():String{
return (_price);
}
public function get name():String{
return (_name);
}
public function get quantity():String{
return (_quantity);
}
public function set name(value:String):void{
_name = value;
}
public function set price(value:String):void{
_price = value;
}
public function get id():String{
return (_id);
}
public function get sku():String{
return (_sku);
}
public function set quantity(value:String):void{
_quantity = value;
}
public function toGifParams():Variables{
var vars:Variables = new Variables();
vars.URIencode = true;
vars.post = ["utmt", "utmtid", "utmipc", "utmipn", "utmiva", "utmipr", "utmiqt"];
vars.utmt = "item";
vars.utmtid = _id;
vars.utmipc = _sku;
vars.utmipn = _name;
vars.utmiva = _category;
vars.utmipr = _price;
vars.utmiqt = _quantity;
return (vars);
}
public function set id(value:String):void{
_id = value;
}
public function set category(value:String):void{
_category = value;
}
public function get category():String{
return (_category);
}
}
}//package com.google.analytics.ecommerce
Section 64
//Transaction (com.google.analytics.ecommerce.Transaction)
package com.google.analytics.ecommerce {
import com.google.analytics.utils.*;
public class Transaction {
private var _items:Array;
private var _total:String;
private var _vars:Variables;
private var _shipping:String;
private var _city:String;
private var _state:String;
private var _country:String;
private var _tax:String;
private var _affiliation:String;
private var _id:String;
public function Transaction(id:String, affiliation:String, total:String, tax:String, shipping:String, city:String, state:String, country:String){
super();
this._id = id;
this._affiliation = affiliation;
this._total = total;
this._tax = tax;
this._shipping = shipping;
this._city = city;
this._state = state;
this._country = country;
_items = new Array();
}
public function get total():String{
return (_total);
}
public function getItemFromArray(i:Number):Item{
return (_items[i]);
}
public function set total(value:String):void{
_total = value;
}
public function getItem(sku:String):Item{
var i:Number;
i = 0;
while (i < _items.length) {
if (_items[i].sku == sku){
return (_items[i]);
};
i++;
};
return (null);
}
public function getItemsLength():Number{
return (_items.length);
}
public function addItem(sku:String, name:String, category:String, price:String, quantity:String):void{
var newItem:Item;
newItem = getItem(sku);
if (newItem == null){
newItem = new Item(_id, sku, name, category, price, quantity);
_items.push(newItem);
} else {
newItem.name = name;
newItem.category = category;
newItem.price = price;
newItem.quantity = quantity;
};
}
public function set shipping(value:String):void{
_shipping = value;
}
public function get country():String{
return (_country);
}
public function get state():String{
return (_state);
}
public function set tax(value:String):void{
_tax = value;
}
public function set affiliation(value:String):void{
_affiliation = value;
}
public function set state(value:String):void{
_state = value;
}
public function get id():String{
return (_id);
}
public function get tax():String{
return (_tax);
}
public function toGifParams():Variables{
var vars:Variables = new Variables();
vars.URIencode = true;
vars.utmt = "tran";
vars.utmtid = id;
vars.utmtst = affiliation;
vars.utmtto = total;
vars.utmttx = tax;
vars.utmtsp = shipping;
vars.utmtci = city;
vars.utmtrg = state;
vars.utmtco = country;
vars.post = ["utmtid", "utmtst", "utmtto", "utmttx", "utmtsp", "utmtci", "utmtrg", "utmtco"];
return (vars);
}
public function get affiliation():String{
return (_affiliation);
}
public function get city():String{
return (_city);
}
public function get shipping():String{
return (_shipping);
}
public function set id(value:String):void{
_id = value;
}
public function set city(value:String):void{
_city = value;
}
public function set country(value:String):void{
_country = value;
}
}
}//package com.google.analytics.ecommerce
Section 65
//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(type:String, tracker:AnalyticsTracker, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
this.tracker = tracker;
}
override public function clone():Event{
return (new AnalyticsEvent(type, tracker, bubbles, cancelable));
}
}
}//package com.google.analytics.events
Section 66
//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(debug:DebugConfiguration){
super(debug);
}
public function set vid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.vid", value);
}
public function get hid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.hid"));
}
public function set hid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.hid", value);
}
public function get dh():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.dh"));
}
public function get sid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.sid"));
}
public function get vid():String{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal.vid"));
}
private function _verify():void{
if (!_gaGlobalVerified){
executeBlock(gaGlobal_js);
_gaGlobalVerified = true;
};
}
public function set sid(value:String):void{
if (!isAvailable()){
return;
};
_verify();
setProperty("gaGlobal.sid", value);
}
public function get gaGlobal():Object{
if (!isAvailable()){
return (null);
};
_verify();
return (getProperty("gaGlobal"));
}
}
}//package com.google.analytics.external
Section 67
//HTMLDOM (com.google.analytics.external.HTMLDOM)
package com.google.analytics.external {
import com.google.analytics.debug.*;
public class HTMLDOM extends JavascriptProxy {
private var _referrer:String;
private var _language:String;
private var _host:String;
private var _pathname:String;
private var _location:String;
private var _search:String;
private var _characterSet:String;
private var _title:String;
private var _protocol:String;
private var _colorDepth:String;
public static var cache_properties_js:XML = <script>
<![CDATA[
function()
{
var obj = {};
obj.host = document.location.host;
obj.language = navigator.language ? navigator.language : navigator.browserLanguage;
obj.characterSet = document.characterSet ? document.characterSet : document.charset;
obj.colorDepth = window.screen.colorDepth;
obj.location = document.location.toString();
obj.pathname = document.location.pathname;
obj.protocol = document.location.protocol;
obj.search = document.location.search;
obj.referrer = document.referrer;
obj.title = document.title;
return obj;
}
]]>
</script>
;
public function HTMLDOM(debug:DebugConfiguration){
super(debug);
}
public function get search():String{
if (_search){
return (_search);
};
if (!isAvailable()){
return (null);
};
_search = getProperty("document.location.search");
return (_search);
}
public function get location():String{
if (_location){
return (_location);
};
if (!isAvailable()){
return (null);
};
_location = getPropertyString("document.location");
return (_location);
}
public function get pathname():String{
if (_pathname){
return (_pathname);
};
if (!isAvailable()){
return (null);
};
_pathname = getProperty("document.location.pathname");
return (_pathname);
}
public function cacheProperties():void{
if (!isAvailable()){
return;
};
var obj:Object = call(cache_properties_js);
if (obj){
_host = obj.host;
_language = obj.language;
_characterSet = obj.characterSet;
_colorDepth = obj.colorDepth;
_location = obj.location;
_pathname = obj.pathname;
_protocol = obj.protocol;
_search = obj.search;
_referrer = obj.referrer;
_title = obj.title;
};
}
public function get language():String{
if (_language){
return (_language);
};
if (!isAvailable()){
return (null);
};
var lang:String = getProperty("navigator.language");
if (lang == null){
lang = getProperty("navigator.browserLanguage");
};
_language = lang;
return (_language);
}
public function get colorDepth():String{
if (_colorDepth){
return (_colorDepth);
};
if (!isAvailable()){
return (null);
};
_colorDepth = getProperty("window.screen.colorDepth");
return (_colorDepth);
}
public function get referrer():String{
if (_referrer){
return (_referrer);
};
if (!isAvailable()){
return (null);
};
_referrer = getProperty("document.referrer");
return (_referrer);
}
public function get protocol():String{
if (_protocol){
return (_protocol);
};
if (!isAvailable()){
return (null);
};
_protocol = getProperty("document.location.protocol");
return (_protocol);
}
public function get host():String{
if (_host){
return (_host);
};
if (!isAvailable()){
return (null);
};
_host = getProperty("document.location.host");
return (_host);
}
public function get characterSet():String{
if (_characterSet){
return (_characterSet);
};
if (!isAvailable()){
return (null);
};
var cs:String = getProperty("document.characterSet");
if (cs == null){
cs = getProperty("document.charset");
};
_characterSet = cs;
return (_characterSet);
}
public function get title():String{
if (_title){
return (_title);
};
if (!isAvailable()){
return (null);
};
_title = getProperty("document.title");
return (_title);
}
}
}//package com.google.analytics.external
Section 68
//JavascriptProxy (com.google.analytics.external.JavascriptProxy)
package com.google.analytics.external {
import com.google.analytics.debug.*;
import flash.external.*;
import flash.system.*;
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(debug:DebugConfiguration){
super();
_debug = debug;
}
public function getProperty(name:String){
return (call((name + ".valueOf")));
}
public function hasProperty(path:String):Boolean{
return (call(hasProperty_js, path));
}
public function setProperty(path:String, value):void{
call(setProperty_js, path, value);
}
public function executeBlock(data:String):void{
var data = data;
if (isAvailable()){
ExternalInterface.call(data);
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
}
public function getPropertyString(name:String):String{
return (call((name + ".toString")));
}
public function setPropertyByReference(path:String, target:String):void{
call(setPropertyRef_js, path, target);
}
public function call(functionName:String, ... _args){
var output:String;
var functionName = functionName;
var args = _args;
if (isAvailable()){
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));
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML.");
};
//unresolved jump
var _slot1 = e;
if (_debug.javascript){
_debug.warning(("ExternalInterface failed to make the call\nreason: " + _slot1.message));
};
};
return (null);
}
public function isAvailable():Boolean{
var available:Boolean = ExternalInterface.available;
if (((available) && ((Capabilities.playerType == "External")))){
available = false;
};
if (((((!(available)) && (_debug.javascript))) && (_notAvailableWarning))){
_debug.warning("ExternalInterface is not available.");
_notAvailableWarning = false;
};
return (available);
}
}
}//package com.google.analytics.external
Section 69
//Environment (com.google.analytics.utils.Environment)
package com.google.analytics.utils {
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(url:String="", app:String="", version:String="", debug:DebugConfiguration=null, dom:HTMLDOM=null){
var v:Version;
super();
if (app == ""){
if (isAIR()){
app = "AIR";
} else {
app = "Flash";
};
};
if (version == ""){
v = flashVersion;
} else {
v = Version.fromString(version);
};
_url = url;
_appName = app;
_appVersion = v;
_debug = debug;
_dom = dom;
}
public function isAIR():Boolean{
return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application"))));
}
public function get screenWidth():Number{
return (Capabilities.screenResolutionX);
}
public function get playerType():String{
return (Capabilities.playerType);
}
public function get locationSearch():String{
var _search:String = _dom.search;
if (_search){
return (_search);
};
return ("");
}
public function get protocol():Protocols{
if (!_protocol){
_findProtocol();
};
return (_protocol);
}
public function get flashVersion():Version{
var v:Version = Version.fromString(Capabilities.version.split(" ")[1], ",");
return (v);
}
public function get userAgent():UserAgent{
if (!_userAgent){
_userAgent = new UserAgent(this, appName, appVersion.toString(4));
};
return (_userAgent);
}
public function get languageEncoding():String{
var _charset:String;
if (System.useCodePage){
_charset = _dom.characterSet;
if (_charset){
return (_charset);
};
return ("-");
};
return ("UTF-8");
}
public function get appName():String{
return (_appName);
}
public function get screenColorDepth():String{
var color:String;
switch (Capabilities.screenColor){
case "bw":
color = "1";
break;
case "gray":
color = "2";
break;
case "color":
default:
color = "24";
};
var _colorDepth:String = _dom.colorDepth;
if (_colorDepth){
color = _colorDepth;
};
return (color);
}
private function _findProtocol():void{
var URL:String;
var test:String;
var p:Protocols = Protocols.none;
if (_url != ""){
URL = _url.toLowerCase();
test = URL.substr(0, 5);
switch (test){
case "file:":
p = Protocols.file;
break;
case "http:":
p = Protocols.HTTP;
break;
case "https":
if (URL.charAt(5) == ":"){
p = Protocols.HTTPS;
};
break;
default:
_protocol = Protocols.none;
};
};
var _proto:String = _dom.protocol;
var proto:String = (p.toString() + ":").toLowerCase();
if (((((_proto) && (!((_proto == proto))))) && (_debug))){
_debug.warning(((("Protocol mismatch: SWF=" + proto) + ", DOM=") + _proto));
};
_protocol = p;
}
public function get locationSWFPath():String{
return (_url);
}
public function get platform():String{
var p:String = Capabilities.manufacturer;
return (p.split("Adobe ")[1]);
}
public function get operatingSystem():String{
return (Capabilities.os);
}
public function set appName(value:String):void{
_appName = value;
userAgent.applicationProduct = value;
}
function set url(value:String):void{
_url = value;
}
public function get referrer():String{
var _referrer:String = _dom.referrer;
if (_referrer){
return (_referrer);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function isInHTML():Boolean{
return ((Capabilities.playerType == "PlugIn"));
}
public function get language():String{
var _lang:String = _dom.language;
var lang:String = Capabilities.language;
if (_lang){
if ((((_lang.length > lang.length)) && ((_lang.substr(0, lang.length) == lang)))){
lang = _lang;
};
};
return (lang);
}
public function get domainName():String{
var URL:String;
var str:String;
var end:int;
if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){
URL = _url.toLowerCase();
if (protocol == Protocols.HTTP){
str = URL.split("http://").join("");
} else {
if (protocol == Protocols.HTTPS){
str = URL.split("https://").join("");
};
};
end = str.indexOf("/");
if (end > -1){
str = str.substring(0, end);
};
return (str);
};
if (protocol == Protocols.file){
return ("localhost");
};
return ("");
}
public function set userAgent(custom:UserAgent):void{
_userAgent = custom;
}
public function set appVersion(value:Version):void{
_appVersion = value;
userAgent.applicationVersion = value.toString(4);
}
public function get screenHeight():Number{
return (Capabilities.screenResolutionY);
}
public function get locationPath():String{
var _pathname:String = _dom.pathname;
if (_pathname){
return (_pathname);
};
return ("");
}
public function get documentTitle():String{
var _title:String = _dom.title;
if (_title){
return (_title);
};
return ("");
}
public function get appVersion():Version{
return (_appVersion);
}
}
}//package com.google.analytics.utils
Section 70
//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(value:int=0, name:String=""){
super();
_value = value;
_name = name;
}
public function valueOf():int{
return (_value);
}
public function toString():String{
return (_name);
}
}
}//package com.google.analytics.utils
Section 71
//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;
public function Timespan(){
super();
}
}
}//package com.google.analytics.utils
Section 72
//URL (com.google.analytics.utils.URL)
package com.google.analytics.utils {
public class URL {
private var _url:String;
public function URL(url:String=""){
super();
_url = url.toLowerCase();
}
public function get domain():String{
var parts:Array;
if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){
parts = hostName.split(".");
switch (parts.length){
case 2:
return (hostName);
case 3:
if (parts[1] == "co"){
return (hostName);
};
parts.shift();
return (parts.join("."));
case 4:
parts.shift();
return (parts.join("."));
};
};
return ("");
}
public function get path():String{
var _path:String = _url;
if (_path.indexOf("://") > -1){
_path = _path.split("://")[1];
};
if (_path.indexOf(hostName) == 0){
_path = _path.substr(hostName.length);
};
if (_path.indexOf("?") > -1){
_path = _path.split("?")[0];
};
if (_path.charAt(0) != "/"){
_path = ("/" + _path);
};
return (_path);
}
public function get protocol():Protocols{
var proto:String = _url.split("://")[0];
switch (proto){
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 hostname:String = _url;
if (hostname.indexOf("://") > -1){
hostname = hostname.split("://")[1];
};
if (hostname.indexOf("/") > -1){
hostname = hostname.split("/")[0];
};
if (hostname.indexOf("?") > -1){
hostname = hostname.split("?")[0];
};
if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){
return ("");
};
return (hostname);
}
public function get subDomain():String{
if (((!((domain == ""))) && (!((domain == hostName))))){
return (hostName.split(("." + domain)).join(""));
};
return ("");
}
public function get search():String{
var _search:String = _url;
if (_search.indexOf("://") > -1){
_search = _search.split("://")[1];
};
if (_search.indexOf(hostName) == 0){
_search = _search.substr(hostName.length);
};
if (_search.indexOf("?") > -1){
_search = _search.split("?")[1];
} else {
_search = "";
};
return (_search);
}
}
}//package com.google.analytics.utils
Section 73
//UserAgent (com.google.analytics.utils.UserAgent)
package com.google.analytics.utils {
import com.google.analytics.core.*;
import flash.system.*;
public class UserAgent {
private var _localInfo:Environment;
private var _applicationProduct:String;
private var _version:Version;
public static var minimal:Boolean = false;
public function UserAgent(localInfo:Environment, product:String="", version:String=""){
super();
_localInfo = localInfo;
applicationProduct = product;
_version = Version.fromString(version);
}
public function get tamarinProductToken():String{
if (UserAgent.minimal){
return ("");
};
if (System.vmVersion){
return (("Tamarin/" + Utils.trim(System.vmVersion, true)));
};
return ("");
}
public function get applicationVersion():String{
return (_version.toString(2));
}
public function get vendorProductToken():String{
var vp:String = "";
if (_localInfo.isAIR()){
vp = (vp + "AIR");
} else {
vp = (vp + "FlashPlayer");
};
vp = (vp + "/");
vp = (vp + _version.toString(3));
return (vp);
}
public function toString():String{
var UA:String = "";
UA = (UA + applicationProductToken);
if (applicationComment != ""){
UA = (UA + (" " + applicationComment));
};
if (tamarinProductToken != ""){
UA = (UA + (" " + tamarinProductToken));
};
if (vendorProductToken != ""){
UA = (UA + (" " + vendorProductToken));
};
return (UA);
}
public function get applicationComment():String{
var comment:Array = [];
comment.push(_localInfo.platform);
comment.push(_localInfo.playerType);
if (!UserAgent.minimal){
comment.push(_localInfo.operatingSystem);
comment.push(_localInfo.language);
};
if (Capabilities.isDebugger){
comment.push("DEBUG");
};
if (comment.length > 0){
return ((("(" + comment.join("; ")) + ")"));
};
return ("");
}
public function set applicationVersion(value:String):void{
_version = Version.fromString(value);
}
public function get applicationProductToken():String{
var token:String = applicationProduct;
if (applicationVersion != ""){
token = (token + ("/" + applicationVersion));
};
return (token);
}
public function set applicationProduct(value:String):void{
_applicationProduct = value;
}
public function get applicationProduct():String{
return (_applicationProduct);
}
}
}//package com.google.analytics.utils
Section 74
//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(source:String=null, pre:Array=null, post:Array=null){
pre = [];
post = [];
super();
if (source){
decode(source);
};
if (pre){
this.pre = pre;
};
if (post){
this.post = post;
};
}
private function _join(vars:Variables):void{
var prop:String;
if (!vars){
return;
};
for (prop in vars) {
this[prop] = vars[prop];
};
}
public function join(... _args):void{
var l:int = _args.length;
var i:int;
while (i < l) {
if (!(_args[i] is Variables)){
} else {
_join(_args[i]);
};
i++;
};
}
public function toString():String{
var value:String;
var p:String;
var component:String;
var i:int;
var j:int;
var priority:String;
var last:String;
var data:Array = [];
for (p in this) {
value = this[p];
if (URIencode){
value = encodeURI(value);
};
data.push(((p + "=") + value));
};
if (sort){
data.sort();
};
if (pre.length > 0){
pre.reverse();
i = 0;
while (i < pre.length) {
priority = pre[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(priority) == 0){
data.unshift(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
pre.reverse();
};
if (post.length > 0){
i = 0;
while (i < post.length) {
last = post[i];
j = 0;
while (j < data.length) {
component = data[j];
if (component.indexOf(last) == 0){
data.push(data.splice(j, 1)[0]);
};
j++;
};
i++;
};
};
return (data.join("&"));
}
public function decode(source:String):void{
var data:Array;
var prop:String;
var name:String;
var value:String;
var tmp:Array;
if (source == ""){
return;
};
if (source.charAt(0) == "?"){
source = source.substr(1, source.length);
};
if (source.indexOf("&") > -1){
data = source.split("&");
} else {
data = [source];
};
var i:int;
while (i < data.length) {
prop = data[i];
if (prop.indexOf("=") > -1){
tmp = prop.split("=");
name = tmp[0];
value = decodeURI(tmp[1]);
this[name] = value;
};
i++;
};
}
public function toURLVariables():URLVariables{
var p:String;
var urlvars:URLVariables = new URLVariables();
for (p in this) {
urlvars[p] = this[p];
};
return (urlvars);
}
}
}//package com.google.analytics.utils
Section 75
//Version (com.google.analytics.utils.Version)
package com.google.analytics.utils {
public class Version {
private var _revision:uint;
private var _maxBuild:uint;// = 0xFF
private var _maxMinor:uint;// = 15
private var _maxMajor:uint;// = 15
private var _separator:String;// = "."
private var _maxRevision:uint;// = 0xFFFF
private var _build:uint;
private var _major:uint;
private var _minor:uint;
public function Version(major:uint=0, minor:uint=0, build:uint=0, revision:uint=0){
var v:Version;
super();
if ((((((((major > _maxMajor)) && ((minor == 0)))) && ((build == 0)))) && ((revision == 0)))){
v = Version.fromNumber(major);
major = v.major;
minor = v.minor;
build = v.build;
revision = v.revision;
};
this.major = major;
this.minor = minor;
this.build = build;
this.revision = revision;
}
public function toString(fields:int=0):String{
var arr:Array;
if ((((fields <= 0)) || ((fields > 4)))){
fields = getFields();
};
switch (fields){
case 1:
arr = [major];
break;
case 2:
arr = [major, minor];
break;
case 3:
arr = [major, minor, build];
break;
case 4:
default:
arr = [major, minor, build, revision];
};
return (arr.join(_separator));
}
public function set revision(value:uint):void{
_revision = Math.min(value, _maxRevision);
}
public function get revision():uint{
return (_revision);
}
public function set build(value:uint):void{
_build = Math.min(value, _maxBuild);
}
public function set minor(value:uint):void{
_minor = Math.min(value, _maxMinor);
}
public function get build():uint{
return (_build);
}
public function set major(value:uint):void{
_major = Math.min(value, _maxMajor);
}
public function get minor():uint{
return (_minor);
}
private function getFields():int{
var f = 4;
if (revision == 0){
f--;
};
if ((((f == 3)) && ((build == 0)))){
f--;
};
if ((((f == 2)) && ((minor == 0)))){
f--;
};
return (f);
}
public function valueOf():uint{
return (((((major << 28) | (minor << 24)) | (build << 16)) | revision));
}
public function get major():uint{
return (_major);
}
public function equals(o):Boolean{
if (!(o is Version)){
return (false);
};
if ((((((((o.major == major)) && ((o.minor == minor)))) && ((o.build == build)))) && ((o.revision == revision)))){
return (true);
};
return (false);
}
public static function fromString(value:String="", separator:String="."):Version{
var values:Array;
var v:Version = new (Version);
if ((((value == "")) || ((value == null)))){
return (v);
};
if (value.indexOf(separator) > -1){
values = value.split(separator);
v.major = parseInt(values[0]);
v.minor = parseInt(values[1]);
v.build = parseInt(values[2]);
v.revision = parseInt(values[3]);
} else {
v.major = parseInt(value);
};
return (v);
}
public static function fromNumber(value:Number=0):Version{
var v:Version = new (Version);
if (((((((((((isNaN(value)) || ((value == 0)))) || ((value < 0)))) || ((value == Number.MAX_VALUE)))) || ((value == Number.POSITIVE_INFINITY)))) || ((value == Number.NEGATIVE_INFINITY)))){
return (v);
};
v.major = (value >>> 28);
v.minor = ((value & 251658240) >>> 24);
v.build = ((value & 0xFF0000) >>> 16);
v.revision = (value & 0xFFFF);
return (v);
}
}
}//package com.google.analytics.utils
Section 76
//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(account:String, debug:DebugConfiguration, jsproxy:JavascriptProxy){
var msg0:String;
var msg1:String;
var msg2:String;
super();
_account = account;
_debug = debug;
_proxy = jsproxy;
if (!_checkGAJS()){
msg0 = "";
msg0 = (msg0 + "ga.js not found, be sure to check if\n");
msg0 = (msg0 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n");
msg0 = (msg0 + "is included in the HTML.");
_debug.warning(msg0);
throw (new Error(msg0));
};
if (!_hasGATracker){
if (((_debug.javascript) && (_debug.verbose))){
msg1 = "";
msg1 = (msg1 + "The Google Analytics tracking code was not found on the container page\n");
msg1 = (msg1 + "we create it");
_debug.info(msg1, VisualDebugMode.advanced);
};
_injectTrackingObject();
};
if (Utils.validateAccount(account)){
_createTrackingObject(account);
} else {
if (_checkTrackingObject(account)){
_linkTrackingObject(account);
} else {
msg2 = "";
msg2 = (msg2 + (("JS Object \"" + account) + "\" doesn't exist in DOM\n"));
msg2 = (msg2 + "Bridge object not created.");
_debug.warning(msg2);
throw (new Error(msg2));
};
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_debug.info((((("link( " + targetUrl) + ", ") + useHash) + " )"));
_call("_link", targetUrl, useHash);
}
public function addOrganic(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_call("_addOrganic", newOrganicEngine);
}
public function setAllowLinker(enable:Boolean):void{
_debug.info((("setAllowLinker( " + enable) + " )"));
_call("_setAllowLinker", enable);
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
_debug.info((((("getLinkerUrl(" + url) + ", ") + useHash) + ")"));
return (_call("_getLinkerUrl", url, useHash));
}
private function _linkTrackingObject(path:String):void{
_proxy.call(_linkTrackingObject_js, _jsContainer, path);
}
public function setClientInfo(enable:Boolean):void{
_debug.info((("setClientInfo( " + enable) + " )"));
_call("_setClientInfo", enable);
}
public function trackTrans():void{
_debug.info("trackTrans()");
_call("_trackTrans");
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
var param = 2;
if (((label) && (!((label == ""))))){
param = 3;
};
if ((((param == 3)) && (!(isNaN(value))))){
param = 4;
};
switch (param){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label, value));
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
return (_call("_trackEvent", category, action, label));
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
return (_call("_trackEvent", category, action));
};
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_debug.info((("setCookieTimeout( " + newDefaultTimeout) + " )"));
_call("_setCookieTimeout", newDefaultTimeout);
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
_call("_trackPageview", pageURL);
}
private function _checkValidTrackingObject(account:String):Boolean{
return (_proxy.call(_checkValidTrackingObject_js, account));
}
private function _checkGAJS():Boolean{
return (_proxy.call(_checkGAJS_js));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning((((("linkByPost( " + formObject) + ", ") + useHash) + " ) not implemented"));
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_call("_getClientInfo"));
}
private function _call(functionName:String, ... _args){
_args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + functionName));
return (_proxy.call.apply(_proxy, _args));
}
public function hasGAJS():Boolean{
return (_checkGAJS());
}
private function _checkTrackingObject(account:String):Boolean{
var hasObj:Boolean = _proxy.hasProperty(account);
var isTracker:Boolean = _proxy.hasProperty((account + "._getAccount"));
return (((hasObj) && (isTracker)));
}
public function resetSession():void{
_debug.warning("resetSession() not implemented");
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_call("_getDetectTitle"));
}
public function setCampNameKey(newCampNameKey:String):void{
_debug.info((("setCampNameKey( " + newCampNameKey) + " )"));
_call("_setCampNameKey", newCampNameKey);
}
public function setDetectFlash(enable:Boolean):void{
_debug.info((("setDetectFlash( " + enable) + " )"));
_call("_setDetectFlash", enable);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_debug.info((("addItem( " + [item, sku, name, category, price, quantity].join(", ")) + " )"));
_call("_addItem", item, sku, name, category, price, quantity);
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_call("_clearIgnoreOrganic");
}
public function setVar(newVal:String):void{
_debug.info((("setVar( " + newVal) + " )"));
_call("_setVar", newVal);
}
public function setDomainName(newDomainName:String):void{
_debug.info((("setDomainName( " + newDomainName) + " )"));
_call("_setDomainName", newDomainName);
}
public function hasTrackingAccount(account:String):Boolean{
if (Utils.validateAccount(account)){
return (_checkValidTrackingObject(account));
};
return (_checkTrackingObject(account));
}
public function setCampSourceKey(newCampSrcKey:String):void{
_debug.info((("setCampSourceKey( " + newCampSrcKey) + " )"));
_call("_setCampSourceKey", newCampSrcKey);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
_debug.info((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " )"));
_call("_addTrans", orderId, affiliation, total, tax, shipping, city, state, country);
}
public function setCampContentKey(newCampContentKey:String):void{
_debug.info((("setCampContentKey( " + newCampContentKey) + " )"));
_call("_setCampContentKey", newCampContentKey);
}
public function setLocalServerMode():void{
_debug.info("setLocalServerMode()");
_call("_setLocalServerMode");
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_call("_getLocalGifPath"));
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_call("_clearIgnoreRef");
}
public function setAllowAnchor(enable:Boolean):void{
_debug.info((("setAllowAnchor( " + enable) + " )"));
_call("_setAllowAnchor", enable);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_debug.info((("setLocalGifPath( " + newLocalGifPath) + " )"));
_call("_setLocalGifPath", newLocalGifPath);
}
public function getVersion():String{
_debug.info("getVersion()");
return (_call("_getVersion"));
}
private function _injectTrackingObject():void{
_proxy.executeBlock(_injectTrackingObject_js);
_hasGATracker = true;
}
public function setCookiePath(newCookiePath:String):void{
_debug.info((("setCookiePath( " + newCookiePath) + " )"));
_call("_setCookiePath", newCookiePath);
}
public function setSampleRate(newRate:Number):void{
_debug.info((("setSampleRate( " + newRate) + " )"));
_call("_setSampleRate", newRate);
}
public function setAllowHash(enable:Boolean):void{
_debug.info((("setAllowHash( " + enable) + " )"));
_call("_setAllowHash", enable);
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_call("_addIgnoredOrganic", newIgnoredOrganicKeyword);
}
public function setCampNOKey(newCampNOKey:String):void{
_debug.info((("setCampNOKey( " + newCampNOKey) + " )"));
_call("_setCampNOKey", newCampNOKey);
}
public function cookiePathCopy(newPath:String):void{
_debug.info((("cookiePathCopy( " + newPath) + " )"));
_call("_cookiePathCopy", newPath);
}
public function setLocalRemoteServerMode():void{
_debug.info("setLocalRemoteServerMode()");
_call("_setLocalRemoteServerMode");
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_call("_getServiceMode"));
}
public function setDetectTitle(enable:Boolean):void{
_debug.info((("setDetectTitle( " + enable) + " )"));
_call("_setDetectTitle", enable);
}
private function _createTrackingObject(account:String):void{
_proxy.call(_createTrackingObject_js, account);
}
public function setCampaignTrack(enable:Boolean):void{
_debug.info((("setCampaignTrack( " + enable) + " )"));
_call("_setCampaignTrack", enable);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_call("_clearOrganic");
}
public function setCampTermKey(newCampTermKey:String):void{
_debug.info((("setCampTermKey( " + newCampTermKey) + " )"));
_call("_setCampTermKey", newCampTermKey);
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_call("_getDetectFlash"));
}
public function setCampMediumKey(newCampMedKey:String):void{
_debug.info((("setCampMediumKey( " + newCampMedKey) + " )"));
_call("_setCampMediumKey", newCampMedKey);
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_call("_addIgnoredRef", newIgnoredReferrer);
}
public function setSessionTimeout(newTimeout:int):void{
_debug.info((("setSessionTimeout( " + newTimeout) + " )"));
_call("_setSessionTimeout", newTimeout);
}
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 77
//Configuration (com.google.analytics.v4.Configuration)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import com.google.analytics.utils.*;
import com.google.analytics.campaign.*;
public class Configuration {
public var serverMode:ServerOperationMode;
public var detectFlash:Boolean;// = true
public var hasSiteOverlay:Boolean;// = false
public var allowLocalTracking:Boolean;// = true
public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif"
private var _version:String;// = "4.3as"
public var allowDomainHash:Boolean;// = true
public var detectClientInfo:Boolean;// = true
public var idleLoop:Number;// = 30
public var isTrackOutboundSubdomains:Boolean;// = false
public var cookiePath:String;// = "/"
public var transactionFieldDelim:String;// = "|"
private var _organic:Organic;
private var _cookieName:String;// = "analytics"
public var campaignKey:CampaignKey;
public var google:String;// = "google"
public var googleCsePath:String;// = "cse"
public var bucketCapacity:Number;// = 10
private var _sampleRate:Number;// = 1
public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif"
public var googleSearchParam:String;// = "q"
public var allowLinker:Boolean;// = false
public var maxOutboundLinkExamined:Number;// = 1000
private var _debug:DebugConfiguration;
public var allowAnchor:Boolean;// = false
private var _domain:Domain;
private var _trackingLimitPerSession:int;// = 500
public var tokenCliff:int;// = 10
public var sessionTimeout:Number;
public var idleTimeout:Number;// = 60
public var campaignTracking:Boolean;// = true
public var domainName:String;// = ""
public var detectTitle:Boolean;// = true
public var tokenRate:Number;// = 0.2
public var conversionTimeout:Number;
public var localGIFpath:String;// = "/__utm.gif"
public function Configuration(debug:DebugConfiguration=null){
_organic = new Organic();
conversionTimeout = Timespan.sixmonths;
sessionTimeout = Timespan.thirtyminutes;
campaignKey = new CampaignKey();
serverMode = ServerOperationMode.remote;
super();
_debug = debug;
_domain = new Domain(DomainNameMode.auto, "", _debug);
serverMode = ServerOperationMode.remote;
_initOrganicSources();
}
public function get organic():Organic{
return (_organic);
}
public function get cookieName():String{
return (_cookieName);
}
public function get trackingLimitPerSession():int{
return (_trackingLimitPerSession);
}
private function _initOrganicSources():void{
addOrganicSource(google, googleSearchParam);
addOrganicSource("yahoo", "p");
addOrganicSource("msn", "q");
addOrganicSource("aol", "query");
addOrganicSource("aol", "encquery");
addOrganicSource("lycos", "query");
addOrganicSource("ask", "q");
addOrganicSource("altavista", "q");
addOrganicSource("netscape", "query");
addOrganicSource("cnn", "query");
addOrganicSource("looksmart", "qt");
addOrganicSource("about", "terms");
addOrganicSource("mamma", "query");
addOrganicSource("alltheweb", "q");
addOrganicSource("gigablast", "q");
addOrganicSource("voila", "rdata");
addOrganicSource("virgilio", "qs");
addOrganicSource("live", "q");
addOrganicSource("baidu", "wd");
addOrganicSource("alice", "qs");
addOrganicSource("yandex", "text");
addOrganicSource("najdi", "q");
addOrganicSource("aol", "q");
addOrganicSource("club-internet", "q");
addOrganicSource("mama", "query");
addOrganicSource("seznam", "q");
addOrganicSource("search", "q");
addOrganicSource("wp", "szukaj");
addOrganicSource("onet", "qt");
addOrganicSource("netsprint", "q");
addOrganicSource("google.interia", "q");
addOrganicSource("szukacz", "q");
addOrganicSource("yam", "k");
addOrganicSource("pchome", "q");
addOrganicSource("kvasir", "searchExpr");
addOrganicSource("sesam", "q");
addOrganicSource("ozu", "q");
addOrganicSource("terra", "query");
addOrganicSource("nostrum", "query");
addOrganicSource("mynet", "q");
addOrganicSource("ekolay", "q");
addOrganicSource("search.ilse", "search_for");
}
public function get sampleRate():Number{
return (_sampleRate);
}
public function addOrganicSource(engine:String, keyword:String):void{
var engine = engine;
var keyword = keyword;
_organic.addSource(engine, keyword);
//unresolved jump
var _slot1 = e;
if (((_debug) && (_debug.active))){
_debug.warning(_slot1.message);
};
}
public function get domain():Domain{
return (_domain);
}
public function set sampleRate(value:Number):void{
if (value <= 0){
value = 0.1;
};
if (value > 1){
value = 1;
};
value = Number(value.toFixed(2));
_sampleRate = value;
}
public function get version():String{
return (_version);
}
}
}//package com.google.analytics.v4
Section 78
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
public interface GoogleAnalyticsAPI {
function setCampSourceKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setDetectTitle(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setLocalRemoteServerMode():void;
function resetSession():void;
function setLocalServerMode():void;
function setCampContentKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function addOrganic(_arg1:String, _arg2:String):void;
function setDetectFlash(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setAllowLinker(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean;
function setCampTermKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setCampNameKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String;
function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void;
function clearIgnoredRef():void;
function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void;
function getDetectFlash():Boolean;
function setCampaignTrack(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function createEventTracker(void:String):EventTracker;
function setCookieTimeout(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:int):void;
function setAllowAnchor(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function trackTrans():void;
function clearOrganic():void;
function trackPageview(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String=""):void;
function setLocalGifPath(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getVersion():String;
function getLocalGifPath():String;
function getServiceMode():ServerOperationMode;
function setVar(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function clearIgnoredOrganic():void;
function setCampMediumKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function addIgnoredRef(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setClientInfo(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function setCookiePath(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setSampleRate(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Number):void;
function setSessionTimeout(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:int):void;
function setRemoteServerMode():void;
function setDomainName(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function addIgnoredOrganic(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function setAllowHash(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:Boolean):void;
function getAccount():String;
function linkByPost(_arg1:Object, _arg2:Boolean=false):void;
function link(_arg1:String, _arg2:Boolean=false):void;
function setCampNOKey(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getClientInfo():Boolean;
function cookiePathCopy(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics\v4;GoogleAnalyticsAPI.as:String):void;
function getDetectTitle():Boolean;
}
}//package com.google.analytics.v4
Section 79
//Tracker (com.google.analytics.v4.Tracker)
package com.google.analytics.v4 {
import com.google.analytics.core.*;
import com.google.analytics.debug.*;
import flash.net.*;
import com.google.analytics.data.*;
import com.google.analytics.external.*;
import com.google.analytics.utils.*;
import com.google.analytics.ecommerce.*;
import com.google.analytics.campaign.*;
public class Tracker implements GoogleAnalyticsAPI {
private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3;
private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1;
private const EVENT_TRACKER_PROJECT_ID:int = 5;
private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1;
private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2;
private var _adSense:AdSenseGlobals;
private var _eventTracker:X10;
private var _noSessionInformation:Boolean;// = false
private var _browserInfo:BrowserInfo;
private var _debug:DebugConfiguration;
private var _isNewVisitor:Boolean;// = false
private var _buffer:Buffer;
private var _config:Configuration;
private var _x10Module:X10;
private var _campaign:CampaignManager;
private var _formatedReferrer:String;
private var _timeStamp:Number;
private var _info:Environment;
private var _domainHash:Number;
private var _campaignInfo:CampaignInfo;
private var _gifRequest:GIFRequest;
private var _hasInitData:Boolean;// = false
private var _ecom:Ecommerce;
private var _account:String;
public function Tracker(account:String, config:Configuration, debug:DebugConfiguration, info:Environment, buffer:Buffer, gifRequest:GIFRequest, adSense:AdSenseGlobals, ecom:Ecommerce){
var msg:String;
super();
_account = account;
_config = config;
_debug = debug;
_info = info;
_buffer = buffer;
_gifRequest = gifRequest;
_adSense = adSense;
_ecom = ecom;
if (!Utils.validateAccount(account)){
msg = (("Account \"" + account) + "\" is not valid.");
_debug.warning(msg);
throw (new Error(msg));
};
}
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(newOrganicEngine:String, newOrganicKeyword:String):void{
_debug.info((("addOrganic( " + [newOrganicEngine, newOrganicKeyword].join(", ")) + " )"));
_config.organic.addSource(newOrganicEngine, newOrganicKeyword);
}
public function setAllowLinker(enable:Boolean):void{
_config.allowLinker = enable;
_debug.info((("setAllowLinker( " + _config.allowLinker) + " )"));
}
public function getLinkerUrl(targetUrl:String="", useHash:Boolean=false):String{
_initData();
_debug.info((((("getLinkerUrl( " + targetUrl) + ", ") + useHash.toString()) + " )"));
return (_buffer.getLinkerUrl(targetUrl, useHash));
}
public function trackEvent(category:String, action:String, label:String=null, value:Number=NaN):Boolean{
_initData();
var success:Boolean;
var params = 2;
if (((!((category == ""))) && (!((action == ""))))){
_eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID);
_eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, category);
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, action);
if (((label) && (!((label == ""))))){
success = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, label);
params = 3;
if (!isNaN(value)){
success = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, value);
params = 4;
};
};
if (success){
_debug.info(((("valid event tracking call\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
_sendXEvent(_eventTracker);
};
} else {
_debug.warning(((("event tracking call is not valid, failed!\ncategory: " + category) + "\naction: ") + action), VisualDebugMode.geek);
success = false;
};
switch (params){
case 4:
_debug.info((("trackEvent( " + [category, action, label, value].join(", ")) + " )"));
break;
case 3:
_debug.info((("trackEvent( " + [category, action, label].join(", ")) + " )"));
break;
case 2:
default:
_debug.info((("trackEvent( " + [category, action].join(", ")) + " )"));
};
return (success);
}
public function trackPageview(pageURL:String=""):void{
_debug.info((("trackPageview( " + pageURL) + " )"));
if (_doTracking()){
_initData();
_trackMetrics(pageURL);
_noSessionInformation = false;
} else {
_debug.warning((("trackPageview( " + pageURL) + " ) failed"));
};
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_config.conversionTimeout = newDefaultTimeout;
_debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )"));
}
public function trackTrans():void{
var i:Number;
var j:Number;
var curTrans:Transaction;
_initData();
var searchStrings:Array = new Array();
if (_takeSample()){
i = 0;
while (i < _ecom.getTransLength()) {
curTrans = _ecom.getTransFromArray(i);
searchStrings.push(curTrans.toGifParams());
j = 0;
while (j < curTrans.getItemsLength()) {
searchStrings.push(curTrans.getItemFromArray(j).toGifParams());
j++;
};
i++;
};
i = 0;
while (i < searchStrings.length) {
_gifRequest.send(_account, searchStrings[i]);
i++;
};
};
}
public function setClientInfo(enable:Boolean):void{
_config.detectClientInfo = enable;
_debug.info((("setClientInfo( " + _config.detectClientInfo) + " )"));
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_debug.warning("linkByPost not implemented in AS3 mode");
}
private function _initData():void{
var data0:String;
var data:String;
if (!_hasInitData){
_updateDomainName();
_domainHash = _getDomainHash();
_timeStamp = Math.round((new Date().getTime() / 1000));
if (_debug.verbose){
data0 = "";
data0 = (data0 + "_initData 0");
data0 = (data0 + ("\ndomain name: " + _config.domainName));
data0 = (data0 + ("\ndomain hash: " + _domainHash));
data0 = (data0 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_doTracking()){
_handleCookie();
};
if (!_hasInitData){
if (_doTracking()){
_formatedReferrer = _formatReferrer();
_browserInfo = new BrowserInfo(_config, _info);
_debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced);
if (_config.campaignTracking){
_campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp);
_campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation);
_debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced);
_debug.info(("Search: " + _info.locationSearch));
_debug.info(("CampaignTrackig: " + _buffer.utmz.campaignTracking));
};
};
_x10Module = new X10();
_eventTracker = new X10();
_hasInitData = true;
};
if (_config.hasSiteOverlay){
_debug.warning("Site Overlay is not supported");
};
if (_debug.verbose){
data = "";
data = (data + "_initData (misc)");
data = (data + ("\nflash version: " + _info.flashVersion.toString(4)));
data = (data + ("\nprotocol: " + _info.protocol));
data = (data + (("\ndefault domain name (auto): \"" + _info.domainName) + "\""));
data = (data + ("\nlanguage: " + _info.language));
data = (data + ("\ndomain hash: " + _getDomainHash()));
data = (data + ("\nuser-agent: " + _info.userAgent));
_debug.info(data, VisualDebugMode.geek);
};
}
public function getDetectTitle():Boolean{
_debug.info("getDetectTitle()");
return (_config.detectTitle);
}
public function resetSession():void{
_debug.info("resetSession()");
_buffer.resetCurrentSession();
}
public function getClientInfo():Boolean{
_debug.info("getClientInfo()");
return (_config.detectClientInfo);
}
private function _sendXEvent(opt_xObj:X10=null):void{
var searchVariables:Variables;
var eventInfo:EventInfo;
var eventvars:Variables;
var generalvars:Variables;
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
eventInfo = new EventInfo(true, _x10Module, opt_xObj);
eventvars = eventInfo.toVariables();
generalvars = _renderMetricsSearchVariables();
searchVariables.join(eventvars, generalvars);
_gifRequest.send(_account, searchVariables, false, true);
};
}
public function setDetectFlash(enable:Boolean):void{
_config.detectFlash = enable;
_debug.info((("setDetectFlash( " + _config.detectFlash) + " )"));
}
public function setCampNameKey(newCampNameKey:String):void{
_config.campaignKey.UCCN = newCampNameKey;
var msg = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCN]"));
} else {
_debug.info(msg);
};
}
private function _formatReferrer():String{
var domainName:String;
var ref:URL;
var dom:URL;
var referrer:String = _info.referrer;
if ((((referrer == "")) || ((referrer == "localhost")))){
referrer = "-";
} else {
domainName = _info.domainName;
ref = new URL(referrer);
dom = new URL(("http://" + domainName));
if (ref.hostName == domainName){
return ("-");
};
if (dom.domain == ref.domain){
if (dom.subDomain != ref.subDomain){
referrer = "0";
};
};
if ((((referrer.charAt(0) == "[")) && (referrer.charAt((referrer.length - 1))))){
referrer = "-";
};
};
_debug.info(("formated referrer: " + referrer), VisualDebugMode.advanced);
return (referrer);
}
private function _visitCode():Number{
if (_debug.verbose){
_debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek);
};
return (_buffer.utma.sessionId);
}
public function createEventTracker(objName:String):EventTracker{
_debug.info((("createEventTracker( " + objName) + " )"));
return (new EventTracker(objName, this));
}
public function addItem(id:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
var parentTrans:Transaction;
parentTrans = _ecom.getTransaction(id);
if (parentTrans == null){
parentTrans = _ecom.addTransaction(id, "", "", "", "", "", "", "");
};
parentTrans.addItem(sku, name, category, price.toString(), quantity.toString());
if (_debug.active){
_debug.info((("addItem( " + [id, sku, name, category, price, quantity].join(", ")) + " )"));
};
}
public function clearIgnoredOrganic():void{
_debug.info("clearIgnoredOrganic()");
_config.organic.clearIgnoredKeywords();
}
public function setVar(newVal:String):void{
var variables:Variables;
if (((!((newVal == ""))) && (_isNotGoogleSearch()))){
_initData();
_buffer.utmv.domainHash = _domainHash;
_buffer.utmv.value = encodeURI(newVal);
if (_debug.verbose){
_debug.info(_buffer.utmv.toString(), VisualDebugMode.geek);
};
_debug.info((("setVar( " + newVal) + " )"));
if (_takeSample()){
variables = new Variables();
variables.utmt = "var";
_gifRequest.send(_account, variables);
};
} else {
_debug.warning((("setVar \"" + newVal) + "\" is ignored"));
};
}
public function setDomainName(newDomainName:String):void{
if (newDomainName == "auto"){
_config.domain.mode = DomainNameMode.auto;
} else {
if (newDomainName == "none"){
_config.domain.mode = DomainNameMode.none;
} else {
_config.domain.mode = DomainNameMode.custom;
_config.domain.name = newDomainName;
};
};
_updateDomainName();
_debug.info((("setDomainName( " + _config.domainName) + " )"));
}
private function _updateDomainName():void{
var domainName:String;
if (_config.domain.mode == DomainNameMode.auto){
domainName = _info.domainName;
if (domainName.substring(0, 4) == "www."){
domainName = domainName.substring(4);
};
_config.domain.name = domainName;
};
_config.domainName = _config.domain.name.toLowerCase();
_debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced);
}
public function addTrans(orderId:String, affiliation:String, total:Number, tax:Number, shipping:Number, city:String, state:String, country:String):void{
_ecom.addTransaction(orderId, affiliation, total.toString(), tax.toString(), shipping.toString(), city, state, country);
if (_debug.active){
_debug.info((("addTrans( " + [orderId, affiliation, total, tax, shipping, city, state, country].join(", ")) + " );"));
};
}
private function _renderMetricsSearchVariables(pageURL:String=""):Variables{
var campvars:Variables;
var variables:Variables = new Variables();
variables.URIencode = true;
var docInfo:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, pageURL, _adSense);
_debug.info(("docInfo: " + docInfo.toURLString()), VisualDebugMode.geek);
if (_config.campaignTracking){
campvars = _campaignInfo.toVariables();
};
var browservars:Variables = _browserInfo.toVariables();
variables.join(docInfo.toVariables(), browservars, campvars);
return (variables);
}
public function setCampContentKey(newCampContentKey:String):void{
_config.campaignKey.UCCT = newCampContentKey;
var msg = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCCT]"));
} else {
_debug.info(msg);
};
}
private function _handleCookie():void{
var data0:String;
var data1:String;
var vid:Array;
var data2:String;
if (_config.allowLinker){
};
_buffer.createSO();
if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){
if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){
_buffer.updateUTMA(_timeStamp);
_noSessionInformation = true;
};
if (_debug.verbose){
_debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek);
};
} else {
_debug.info("create a new utma", VisualDebugMode.advanced);
_buffer.utma.domainHash = _domainHash;
_buffer.utma.sessionId = _getUniqueSessionId();
_buffer.utma.firstTime = _timeStamp;
_buffer.utma.lastTime = _timeStamp;
_buffer.utma.currentTime = _timeStamp;
_buffer.utma.sessionCount = 1;
if (_debug.verbose){
_debug.info(_buffer.utma.toString(), VisualDebugMode.geek);
};
_noSessionInformation = true;
_isNewVisitor = true;
};
if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){
if (_adSense.sid){
_buffer.utma.currentTime = Number(_adSense.sid);
if (_debug.verbose){
data0 = "";
data0 = (data0 + "AdSense sid found\n");
data0 = (data0 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data0, VisualDebugMode.geek);
};
};
if (_isNewVisitor){
if (_adSense.sid){
_buffer.utma.lastTime = Number(_adSense.sid);
if (_debug.verbose){
data1 = "";
data1 = (data1 + "AdSense sid found (new visitor)\n");
data1 = (data1 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")"));
_debug.info(data1, VisualDebugMode.geek);
};
};
if (_adSense.vid){
vid = _adSense.vid.split(".");
_buffer.utma.sessionId = Number(vid[0]);
_buffer.utma.firstTime = Number(vid[1]);
if (_debug.verbose){
data2 = "";
data2 = (data2 + "AdSense vid found (new visitor)\n");
data2 = (data2 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(vid[0])) + ")\n"));
data2 = (data2 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(vid[1])) + ")"));
_debug.info(data2, VisualDebugMode.geek);
};
};
if (_debug.verbose){
_debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek);
};
};
};
_buffer.utmb.domainHash = _domainHash;
if (isNaN(_buffer.utmb.trackCount)){
_buffer.utmb.trackCount = 0;
};
if (isNaN(_buffer.utmb.token)){
_buffer.utmb.token = _config.tokenCliff;
};
if (isNaN(_buffer.utmb.lastTime)){
_buffer.utmb.lastTime = _buffer.utma.currentTime;
};
_buffer.utmc.domainHash = _domainHash;
if (_debug.verbose){
_debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced);
_debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced);
};
}
public function setLocalServerMode():void{
_config.serverMode = ServerOperationMode.local;
_debug.info("setLocalServerMode()");
}
public function clearIgnoredRef():void{
_debug.info("clearIgnoredRef()");
_config.organic.clearIgnoredReferrals();
}
public function setCampSourceKey(newCampSrcKey:String):void{
_config.campaignKey.UCSR = newCampSrcKey;
var msg = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCSR]"));
} else {
_debug.info(msg);
};
}
public function getLocalGifPath():String{
_debug.info("getLocalGifPath()");
return (_config.localGIFpath);
}
public function setLocalGifPath(newLocalGifPath:String):void{
_config.localGIFpath = newLocalGifPath;
_debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )"));
}
public function getVersion():String{
_debug.info("getVersion()");
return (_config.version);
}
public function setAllowAnchor(enable:Boolean):void{
_config.allowAnchor = enable;
_debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )"));
}
private function _isNotGoogleSearch():Boolean{
var domainName:String = _config.domainName;
var g0 = (domainName.indexOf("www.google.") < 0);
var g1 = (domainName.indexOf(".google.") < 0);
var g2 = (domainName.indexOf("google.") < 0);
var g4 = (domainName.indexOf("google.org") > -1);
return (((((((((g0) || (g1))) || (g2))) || (!((_config.cookiePath == "/"))))) || (g4)));
}
public function setSampleRate(newRate:Number):void{
if (newRate < 0){
_debug.warning("sample rate can not be negative, ignoring value.");
} else {
_config.sampleRate = newRate;
};
_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(newCookiePath:String):void{
_config.cookiePath = newCookiePath;
_debug.info((("setCookiePath( " + _config.cookiePath) + " )"));
}
public function setAllowHash(enable:Boolean):void{
_config.allowDomainHash = enable;
_debug.info((("setAllowHash( " + _config.allowDomainHash) + " )"));
}
private function _generateUserDataHash():Number{
var hash:String = "";
hash = (hash + _info.appName);
hash = (hash + _info.appVersion);
hash = (hash + _info.language);
hash = (hash + _info.platform);
hash = (hash + _info.userAgent.toString());
hash = (hash + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth));
hash = (hash + _info.referrer);
return (Utils.generateHash(hash));
}
public function setCampNOKey(newCampNOKey:String):void{
_config.campaignKey.UCNO = newCampNOKey;
var msg = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCNO]"));
} else {
_debug.info(msg);
};
}
public function addIgnoredOrganic(newIgnoredOrganicKeyword:String):void{
_debug.info((("addIgnoredOrganic( " + newIgnoredOrganicKeyword) + " )"));
_config.organic.addIgnoredKeyword(newIgnoredOrganicKeyword);
}
public function setLocalRemoteServerMode():void{
_config.serverMode = ServerOperationMode.both;
_debug.info("setLocalRemoteServerMode()");
}
public function cookiePathCopy(newPath:String):void{
_debug.warning((("cookiePathCopy( " + newPath) + " ) not implemented"));
}
public function setDetectTitle(enable:Boolean):void{
_config.detectTitle = enable;
_debug.info((("setDetectTitle( " + _config.detectTitle) + " )"));
}
public function setCampTermKey(newCampTermKey:String):void{
_config.campaignKey.UCTR = newCampTermKey;
var msg = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCTR]"));
} else {
_debug.info(msg);
};
}
public function getServiceMode():ServerOperationMode{
_debug.info("getServiceMode()");
return (_config.serverMode);
}
private function _trackMetrics(pageURL:String=""):void{
var searchVariables:Variables;
var x10vars:Variables;
var generalvars:Variables;
var eventInfo:EventInfo;
if (_takeSample()){
searchVariables = new Variables();
searchVariables.URIencode = true;
if (((_x10Module) && (_x10Module.hasData()))){
eventInfo = new EventInfo(false, _x10Module);
x10vars = eventInfo.toVariables();
};
generalvars = _renderMetricsSearchVariables(pageURL);
searchVariables.join(x10vars, generalvars);
_gifRequest.send(_account, searchVariables);
};
}
public function setCampaignTrack(enable:Boolean):void{
_config.campaignTracking = enable;
_debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )"));
}
public function addIgnoredRef(newIgnoredReferrer:String):void{
_debug.info((("addIgnoredRef( " + newIgnoredReferrer) + " )"));
_config.organic.addIgnoredReferral(newIgnoredReferrer);
}
public function clearOrganic():void{
_debug.info("clearOrganic()");
_config.organic.clearEngines();
}
public function getDetectFlash():Boolean{
_debug.info("getDetectFlash()");
return (_config.detectFlash);
}
public function setCampMediumKey(newCampMedKey:String):void{
_config.campaignKey.UCMD = newCampMedKey;
var msg = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )");
if (_debug.mode == VisualDebugMode.geek){
_debug.info((msg + " [UCMD]"));
} else {
_debug.info(msg);
};
}
private function _getUniqueSessionId():Number{
var sessionID:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647);
_debug.info(("Session ID: " + sessionID), VisualDebugMode.geek);
return (sessionID);
}
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(newTimeout:int):void{
_config.sessionTimeout = newTimeout;
_debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )"));
}
public function getAccount():String{
_debug.info("getAccount()");
return (_account);
}
public function link(targetUrl:String, useHash:Boolean=false):void{
var targetUrl = targetUrl;
var useHash = useHash;
_initData();
var out:String = _buffer.getLinkerUrl(targetUrl, useHash);
var request:URLRequest = new URLRequest(out);
_debug.info((("link( " + [targetUrl, useHash].join(",")) + " )"));
navigateToURL(request, "_top");
//unresolved jump
var _slot1 = e;
_debug.warning(("An error occured in link() msg: " + _slot1.message));
}
public function setRemoteServerMode():void{
_config.serverMode = ServerOperationMode.remote;
_debug.info("setRemoteServerMode()");
}
}
}//package com.google.analytics.v4
Section 80
//AnalyticsTracker (com.google.analytics.AnalyticsTracker)
package com.google.analytics {
import flash.events.*;
import com.google.analytics.v4.*;
import com.google.analytics.debug.*;
public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher {
function set account(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics;AnalyticsTracker.as:String):void;
function get config():Configuration;
function get mode():String;
function set config(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics;AnalyticsTracker.as:Configuration):void;
function set mode(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics;AnalyticsTracker.as:String):void;
function set debug(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics;AnalyticsTracker.as:DebugConfiguration):void;
function get visualDebug():Boolean;
function get account():String;
function set visualDebug(C:\JOBS\Seek\Truffle Hunter\src;com\google\analytics;AnalyticsTracker.as:Boolean):void;
function isReady():Boolean;
function get debug():DebugConfiguration;
}
}//package com.google.analytics
Section 81
//API (com.google.analytics.API)
package com.google.analytics {
import com.google.analytics.utils.*;
public class API {
public static var version:Version = new Version();
public function API(){
super();
}
version.major = 1;
version.minor = 0;
version.build = 1;
version.revision = "$Rev: 319 $ ".split(" ")[1];
}
}//package com.google.analytics
Section 82
//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 _ecom:Ecommerce;
private var _account:String;
private var _tracker:GoogleAnalyticsAPI;
public static var version:Version = API.version;
public static var autobuild:Boolean = true;
public function GATracker(display:DisplayObject, account:String, mode:String="AS3", visualDebug:Boolean=false, config:Configuration=null, debug:DebugConfiguration=null){
super();
_display = display;
_eventDispatcher = new EventDispatcher(this);
_tracker = new TrackerCache();
this.account = account;
this.mode = mode;
this.visualDebug = visualDebug;
if (!debug){
this.debug = new DebugConfiguration();
};
if (!config){
this.config = new Configuration(debug);
};
if (autobuild){
_factory();
};
}
public function link(targetUrl:String, useHash:Boolean=false):void{
_tracker.link(targetUrl, useHash);
}
public function addOrganic(Layout:String, Layout:String):void{
_tracker.addOrganic(Layout, Layout);
}
public function setAllowLinker(enable:Boolean):void{
_tracker.setAllowLinker(enable);
}
public function trackEvent(TrackerCache:String, TrackerCache:String, TrackerCache:String=null, TrackerCache:Number=NaN):Boolean{
return (_tracker.trackEvent(TrackerCache, TrackerCache, TrackerCache, TrackerCache));
}
public function getLinkerUrl(url:String="", useHash:Boolean=false):String{
return (_tracker.getLinkerUrl(url, useHash));
}
public function setCookieTimeout(newDefaultTimeout:int):void{
_tracker.setCookieTimeout(newDefaultTimeout);
}
public function trackTrans():void{
_tracker.trackTrans();
}
public function getClientInfo():Boolean{
return (_tracker.getClientInfo());
}
public function trackPageview(pageURL:String=""):void{
_tracker.trackPageview(pageURL);
}
public function setClientInfo(Layout:Boolean):void{
_tracker.setClientInfo(Layout);
}
public function get account():String{
return (_account);
}
public function linkByPost(formObject:Object, useHash:Boolean=false):void{
_tracker.linkByPost(formObject, useHash);
}
public function getDetectTitle():Boolean{
return (_tracker.getDetectTitle());
}
public function dispatchEvent(event:Event):Boolean{
return (_eventDispatcher.dispatchEvent(event));
}
public function get config():Configuration{
return (_config);
}
public function set mode(value:String):void{
_mode = value;
}
public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void{
_eventDispatcher.removeEventListener(type, listener, useCapture);
}
public function setDetectFlash(Layout:Boolean):void{
_tracker.setDetectFlash(Layout);
}
public function resetSession():void{
_tracker.resetSession();
}
public function setCampNameKey(newCampNameKey:String):void{
_tracker.setCampNameKey(newCampNameKey);
}
public function get debug():DebugConfiguration{
return (_debug);
}
public function addItem(item:String, sku:String, name:String, category:String, price:Number, quantity:int):void{
_tracker.addItem(item, sku, name, category, price, quantity);
}
private function _bridgeFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account));
return (new Bridge(account, _debug, _jsproxy));
}
public function clearIgnoredOrganic():void{
_tracker.clearIgnoredOrganic();
}
public function set account(value:String):void{
_account = value;
}
public function setVar(newVal:String):void{
_tracker.setVar(newVal);
}
public function build():void{
if (!isReady()){
_factory();
};
}
public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void{
_eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
}
public function setDomainName(newDomainName:String):void{
_tracker.setDomainName(newDomainName);
}
public function createEventTracker(useCapture:String):EventTracker{
return (_tracker.createEventTracker(useCapture));
}
public function setCampSourceKey(newCampSrcKey:String):void{
_tracker.setCampSourceKey(newCampSrcKey);
}
public function set config(value:Configuration):void{
_config = value;
}
public function addTrans(Layout:String, Layout:String, Layout:Number, Layout:Number, Layout:Number, Layout:String, Layout:String, Layout:String):void{
_tracker.addTrans(Layout, Layout, Layout, Layout, Layout, Layout, Layout, Layout);
}
public function setCampContentKey(newCampContentKey:String):void{
_tracker.setCampContentKey(newCampContentKey);
}
public function willTrigger(type:String):Boolean{
return (_eventDispatcher.willTrigger(type));
}
public function setLocalServerMode():void{
_tracker.setLocalServerMode();
}
public function isReady():Boolean{
return (_ready);
}
public function getLocalGifPath():String{
return (_tracker.getLocalGifPath());
}
public function setAllowAnchor(enable:Boolean):void{
_tracker.setAllowAnchor(enable);
}
public function clearIgnoredRef():void{
_tracker.clearIgnoredRef();
}
public function get mode():String{
return (_mode);
}
public function set debug(value:DebugConfiguration):void{
_debug = value;
}
public function setLocalGifPath(Layout:String):void{
_tracker.setLocalGifPath(Layout);
}
public function getVersion():String{
return (_tracker.getVersion());
}
public function setSampleRate(newRate:Number):void{
_tracker.setSampleRate(newRate);
}
public function setCookiePath(newCookiePath:String):void{
_tracker.setCookiePath(newCookiePath);
}
public function setAllowHash(enable:Boolean):void{
_tracker.setAllowHash(enable);
}
public function addIgnoredOrganic(Layout:String):void{
_tracker.addIgnoredOrganic(Layout);
}
public function setLocalRemoteServerMode():void{
_tracker.setLocalRemoteServerMode();
}
public function cookiePathCopy(newPath:String):void{
_tracker.cookiePathCopy(newPath);
}
private function _factory():void{
var activeTracker:GoogleAnalyticsAPI;
_jsproxy = new JavascriptProxy(debug);
if (visualDebug){
debug.layout = new Layout(debug, _display);
debug.active = visualDebug;
};
var cache:TrackerCache = (_tracker as TrackerCache);
switch (mode){
case TrackerMode.BRIDGE:
activeTracker = _bridgeFactory();
break;
case TrackerMode.AS3:
default:
activeTracker = _trackerFactory();
};
if (!cache.isEmpty()){
cache.tracker = activeTracker;
cache.flush();
};
_tracker = activeTracker;
_ready = true;
dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this));
}
public function setCampTermKey(newCampTermKey:String):void{
_tracker.setCampTermKey(newCampTermKey);
}
private function _trackerFactory():GoogleAnalyticsAPI{
debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account));
_adSense = new AdSenseGlobals(debug);
_dom = new HTMLDOM(debug);
_dom.cacheProperties();
_env = new Environment("", "", "", debug, _dom);
_buffer = new Buffer(config, debug, false);
_gifRequest = new GIFRequest(config, debug, _buffer, _env);
_idleTimer = new IdleTimer(config, debug, _display, _buffer);
_ecom = new Ecommerce(_debug);
_env.url = _display.stage.loaderInfo.url;
return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense, _ecom));
}
public function setCampNOKey(newCampNOKey:String):void{
_tracker.setCampNOKey(newCampNOKey);
}
public function setDetectTitle(Layout:Boolean):void{
_tracker.setDetectTitle(Layout);
}
public function clearOrganic():void{
_tracker.clearOrganic();
}
public function setCampaignTrack(enable:Boolean):void{
_tracker.setCampaignTrack(enable);
}
public function addIgnoredRef(Layout:String):void{
_tracker.addIgnoredRef(Layout);
}
public function getServiceMode():ServerOperationMode{
return (_tracker.getServiceMode());
}
public function set visualDebug(value:Boolean):void{
_visualDebug = value;
}
public function setCampMediumKey(newCampMedKey:String):void{
_tracker.setCampMediumKey(newCampMedKey);
}
public function getDetectFlash():Boolean{
return (_tracker.getDetectFlash());
}
public function get visualDebug():Boolean{
return (_visualDebug);
}
public function hasEventListener(type:String):Boolean{
return (_eventDispatcher.hasEventListener(type));
}
public function getAccount():String{
return (_tracker.getAccount());
}
public function setSessionTimeout(newTimeout:int):void{
_tracker.setSessionTimeout(newTimeout);
}
public function setRemoteServerMode():void{
_tracker.setRemoteServerMode();
}
}
var _local1:* = ServerOperationMode;
return (_local1);
}//package com.google.analytics
Section 83
//RenderableObject (com.psiom.engine.gameObject.RenderableObject)
package com.psiom.engine.gameObject {
import flash.display.*;
import com.psiom.engine.*;
import com.psiom.graphics.*;
public class RenderableObject {
public var y:Number;// = 0
public var vx:Number;// = 0
public var vy:Number;// = 0
public var visMeter:Number;// = 0
public var vz:Number;// = 0
public var purge:Boolean;// = false
protected var _parentRef:ObjectSpace;
public var radius:Number;// = 1
public var floating:Boolean;// = false
public var camVis:Boolean;// = false
protected var _spriteModel:SpriteModel;
public var h:Number;// = 0
public var r:Number;// = 0
public var s:Number;// = 1
protected var autoVel:Boolean;// = true
public var w:Number;// = 0
public var x:Number;// = 0
public var z:Number;// = 0
public var pointsVal:Number;// = -1
public function RenderableObject(){
super();
_spriteModel = new SpriteModel();
}
public function destroy():void{
if (sm.CustomBMD){
sm.CustomBMD.dispose();
};
}
public function get sm():SpriteModel{
return (_spriteModel);
}
public function setCustomBMD(inBMD:BitmapData):void{
_spriteModel.initWithCustomBMD(inBMD);
w = inBMD.width;
h = inBMD.height;
}
public function set ParentRef(inPR:ObjectSpace):void{
_parentRef = inPR;
}
public function clickInput(mx:Number, my:Number):void{
}
public function update():void{
if (autoVel){
x = (x + vx);
y = (y + vy);
z = (z + vz);
};
_spriteModel.update(x, y, w, h, r, s);
}
}
}//package com.psiom.engine.gameObject
Section 84
//EngineBase (com.psiom.engine.EngineBase)
package com.psiom.engine {
public class EngineBase {
protected var _currentSpace:ObjectSpace;
protected var _customRenderElements:Array;
protected var _currentCamera:EngineCamera;
public function EngineBase(){
super();
_customRenderElements = new Array();
}
public function clickInput(x:Number, y:Number):void{
}
public function keyboardInput(keyCode:int):void{
}
public function get Camera():EngineCamera{
if (!_currentCamera){
trace("(EngineBase) WARNING: camera requested but not initialized.");
};
return (_currentCamera);
}
public function update():void{
_currentCamera.update();
}
public function get CurrentSpace():ObjectSpace{
if (!_currentSpace){
trace("(EngineBase) WARNING: objectSpace requested but not initialized.");
};
return (_currentSpace);
}
public function getCustomRenderElements():Array{
return (_customRenderElements);
}
public function getRenderData():Array{
if (!_currentSpace){
trace("(EngineBase) WARNING: objectSpace is NULL.");
};
return (_currentSpace.generateRenderData(_currentCamera));
}
}
}//package com.psiom.engine
Section 85
//EngineCamera (com.psiom.engine.EngineCamera)
package com.psiom.engine {
import com.psiom.engine.gameObject.*;
public class EngineCamera {
public var currentY:Number;// = 0
private var _ch:Number;
private var _trackDiffY:Number;// = 0
private var _inverseOffetX:Number;// = 0
private var _inverseOffetY:Number;// = 0
private var _cw:Number;
private var _camShakeAmp:Number;// = 0
private var _constrained:Boolean;// = false
private var _trackDiffX:Number;// = 0
private var _camShakeSin:Number;// = 0
private var _minX:Number;// = 0
public var baseX:Number;// = 0
public var baseY:Number;// = 0
private var _cropPadding:Number;// = 25
private var _minY:Number;// = 0
private var _zoomScale:Number;// = 1
private var _trackSubject:Boolean;// = false
private var _cameraSubject:RenderableObject;
private var _maxX:Number;// = 0
private var _maxY:Number;// = 0
private var _camShake:Number;// = 0
public var targetX:Number;// = 0
public var targetY:Number;// = 0
private var _zoomScaleTarget:Number;// = 1
public var x:Number;// = 0
public var y:Number;// = 0
private var _shakeTimer:Number;// = 0
public var currentX:Number;// = 0
private static var _instance:EngineCamera;
public function EngineCamera(w:Number, h:Number){
super();
_instance = this;
_cw = w;
_ch = h;
}
public function shake(inForce:Number):void{
_shakeTimer = 10;
if (_shakeTimer < 10){
_camShake = Math.random();
_camShakeSin = Math.random();
};
_camShakeAmp = inForce;
}
public function setCameraSubject(obj:RenderableObject, snap:Boolean=true):void{
var tx:Number;
var ty:Number;
_trackSubject = true;
_cameraSubject = obj;
if (snap){
tx = (_cameraSubject.x - (_cw / 2));
ty = (_cameraSubject.y - (_ch / 2));
targetX = tx;
targetY = ty;
x = targetX;
y = targetY;
};
}
public function checkObjectInView(obj:RenderableObject):Boolean{
var rX:Number = x;
var rY:Number = y;
if (((((((((((obj.x - ((obj.w * obj.s) / 2)) < ((rX + _cw) + _cropPadding))) && (((obj.x + ((obj.w * obj.s) / 2)) > (rX - _cropPadding))))) && (((obj.y - (((obj.h * obj.s) + obj.z) / 2)) < ((rY + _ch) + _cropPadding))))) && (((obj.y + (((obj.h * obj.s) + obj.z) / 2)) > (rY - _cropPadding))))) || (obj.floating))){
obj.camVis = true;
obj.visMeter = 0;
return (true);
};
obj.camVis = false;
obj.visMeter++;
return (false);
}
public function update():void{
var tx:Number;
var ty:Number;
var tDiff:Number;
var diffP:Number;
var ix:Number;
var iy:Number;
_shakeTimer--;
_camShakeAmp = (_camShakeAmp * 0.9);
_camShakeSin = (_camShakeSin + 0.7);
_camShake = (Math.sin(_camShakeSin) * _camShakeAmp);
if (_trackSubject){
tx = (_cameraSubject.x - (_cw / 2));
ty = (_cameraSubject.y - (_ch / 2));
targetX = (targetX + ((tx - targetX) * 0.1));
targetY = (targetY + ((ty - targetY) * 0.1));
tDiff = ((Math.abs((targetX - x)) + Math.abs((targetY - y))) / 2);
if (tDiff > 25){
tDiff = 25;
};
diffP = (1 - (tDiff / 25));
_zoomScaleTarget = (1 + (diffP * 0.25));
currentX = (currentX + ((targetX - currentX) * 0.25));
currentY = (currentY + ((targetY - currentY) * 0.25));
ix = (-(_cameraSubject.vx) * -25);
iy = (-(_cameraSubject.vy) * -25);
_inverseOffetX = (_inverseOffetX + ((ix - _inverseOffetX) * 0.02));
_inverseOffetY = (_inverseOffetY + ((iy - _inverseOffetY) * 0.02));
if (_inverseOffetY > 250){
_inverseOffetY = 250;
};
if (_inverseOffetY < -250){
_inverseOffetY = -250;
};
if (_inverseOffetX > 250){
_inverseOffetX = 250;
};
if (_inverseOffetX < -250){
_inverseOffetX = -250;
};
x = (currentX + _inverseOffetX);
y = ((currentY + _camShake) + _inverseOffetY);
};
}
public function setLocationConstraint(minX:Number, minY:Number, maxX:Number, maxY:Number):void{
_constrained = true;
_minX = minX;
_maxX = maxX;
_minY = minY;
_maxY = maxY;
}
public static function get Instance():EngineCamera{
return (_instance);
}
}
}//package com.psiom.engine
Section 86
//ObjectSpace (com.psiom.engine.ObjectSpace)
package com.psiom.engine {
import com.psiom.engine.gameObject.*;
public class ObjectSpace {
protected var _objects:Array;
private var _pendingObjects:Array;
private var _uiObjects:Array;
protected var _autoPurgeMinY:Number;// = -250
protected var _globalTranslateX:Number;// = 0
protected var _globalTranslateY:Number;// = 0
private var _purgeList:Array;
private var _inputListeners:Array;
protected var _autoPurge:Boolean;// = false
public function ObjectSpace(){
super();
_objects = new Array();
_pendingObjects = new Array();
_inputListeners = new Array();
_purgeList = new Array();
_uiObjects = new Array();
_autoPurge = true;
_autoPurgeMinY = -250;
}
public function addObject(obj:RenderableObject):void{
obj.ParentRef = this;
_objects.push(obj);
}
public function destroy():void{
removeAllObjects();
}
public function update():void{
var i:int;
var j:int;
var obj:RenderableObject;
i = 0;
while (i < _pendingObjects.length) {
_objects.push(_pendingObjects[i]);
i++;
};
_pendingObjects = new Array();
i = 0;
while (i < _objects.length) {
obj = _objects[i];
if (_autoPurge){
if (obj.y < _autoPurgeMinY){
obj.purge = true;
};
};
obj.update();
if ((((Math.abs(_globalTranslateX) > 0)) || ((Math.abs(_globalTranslateY) > 0)))){
obj.x = (obj.x + _globalTranslateX);
obj.y = (obj.y + _globalTranslateY);
};
if (obj.purge){
obj.destroy();
_objects.splice(i, 1);
i--;
};
i++;
};
}
public function purgeObject(obj:RenderableObject):void{
obj.purge = true;
}
public function init():void{
}
public function addObjectAt(obj:RenderableObject, index:int):void{
obj.ParentRef = this;
_objects.splice(index, 0, obj);
}
public function addUIObject(obj:RenderableObject):void{
_uiObjects.push(obj);
}
public function removeAllObjects():void{
var i:int;
while (i < _objects.length) {
_objects[i].ParentRef = null;
_objects[i].destroy();
i++;
};
_objects.splice(0, _objects.length);
_uiObjects.splice(0, _uiObjects.length);
_pendingObjects.splice(0, _pendingObjects.length);
_inputListeners.splice(0, _inputListeners.length);
_purgeList.splice(0, _purgeList.length);
}
public function zsort():void{
_objects.sortOn("z", Array.NUMERIC);
}
public function clickInput(x:Number, y:Number):void{
var i:int;
while (i < _inputListeners.length) {
_inputListeners[i].clickInput(x, y);
i++;
};
}
public function queueObject(obj:RenderableObject):void{
_pendingObjects.push(obj);
}
public function generateRenderData(cam:EngineCamera):Array{
var i:int;
var rd:Array = new Array();
i = 0;
while (i < _objects.length) {
if (cam.checkObjectInView(_objects[i])){
rd.push(_objects[i].sm);
};
i++;
};
i = 0;
while (i < _uiObjects.length) {
rd.push(_uiObjects[i].sm);
i++;
};
return (rd);
}
public function registerInputListener(obj:RenderableObject):void{
_inputListeners.push(obj);
}
}
}//package com.psiom.engine
Section 87
//CustomRenderElement (com.psiom.graphics.CustomRenderElement)
package com.psiom.graphics {
import flash.display.*;
import com.psiom.engine.*;
public class CustomRenderElement {
public var w:int;// = 0x0400
public var h:int;// = 660
protected var _bmd:BitmapData;
public function CustomRenderElement(){
super();
_bmd = new BitmapData(w, h);
}
public function get BMD():BitmapData{
return (_bmd);
}
public function updateWithCamera(inCamera:EngineCamera):void{
}
}
}//package com.psiom.graphics
Section 88
//RenderManager (com.psiom.graphics.RenderManager)
package com.psiom.graphics {
import com.truffle.*;
import flash.display.*;
import com.psiom.engine.*;
import flash.geom.*;
public class RenderManager {
private var _canvasBMD:BitmapData;
private var _matrix:Matrix;
private var _canvas:Bitmap;
private var _mainPoint:Point;
private var _mainRect:Rectangle;
private static var _bitmapLibrary:Array;
private static var _instance:RenderManager;
private static var _animationLibrary:Array;
public function RenderManager(){
super();
_instance = this;
_bitmapLibrary = new Array();
_animationLibrary = new Array();
RenderManager.addTexture({TexName:"DebugArrow", Bmd:createStillFromMC(new gClip_arrow()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"DebugNode", Bmd:createStillFromMC(new gClip_DebugNode()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"LargePipeStraight", Bmd:createStillFromMC(new gClip_largePipeStraight()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"Cursor", Bmd:createStillFromMC(new gClip_cursor()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"StartLine", Bmd:createStillFromMC(new gClip_StartLine()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"FinishLine", Bmd:createStillFromMC(new gClip_FinishLine()), w:1, h:1, count:1});
RenderManager.addTexture({TexName:"PlayerIndicator", Bmd:createStillFromMC(new gClip_indicatorPlayer()), w:1, h:1, count:1});
var bmda:Array = generateAnimSet(new gClip_smokePuff());
RenderManager.addAnimation({TexName:"Anim_SmokePuff", BmdArray:generateAnimSet(new gClip_smokePuff()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_PositionMarker", BmdArray:generateAnimSet(new gClip_positionDisplay()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_TinySpark", BmdArray:generateAnimSet(new gClip_tinySpark()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_TinyPoisonPuff", BmdArray:generateAnimSet(new gClip_tinyPuff1()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_MediumBluePuff", BmdArray:generateAnimSet(new gClip_mediumBluePuff()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_PoisonPuff", BmdArray:generateAnimSet(new gClip_poisonPuff()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_BonusItem", BmdArray:generateAnimSet(new gClip_bonusItems()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_StarFX", BmdArray:generateAnimSet(new gClip_star()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_PoisonCloud", BmdArray:generateAnimSet(new gClip_poisonBubble()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_Pig", BmdArray:generateAnimSet(new gClip_pig()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_Battery", BmdArray:generateAnimSet(new gClip_battery()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_ZapRay", BmdArray:generateAnimSet(new gClip_batteryRay()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_PoisonShroom", BmdArray:generateAnimSet(new gClip_poisonShroom()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_Truffle", BmdArray:generateAnimSet(new gClip_truffle()), w:1, h:1, count:1});
RenderManager.addAnimation({TexName:"Anim_Diamond", BmdArray:generateAnimSet(new gClip_diamond()), w:1, h:1, count:1});
}
public function renderSprites(spriteData:Array, cam:EngineCamera):void{
var sm:SpriteModel;
var pt:Point;
var sbmd:BitmapData;
var mtx:Number;
var mty:Number;
var ox:Number;
var oy:Number;
_canvasBMD.lock();
var i:int;
while (i < spriteData.length) {
sm = spriteData[i];
if (sm.floating){
pt = new Point(sm.x, sm.y);
} else {
pt = new Point(Math.floor(((sm.x - cam.x) - (sm.w / 2))), Math.floor(((sm.y - cam.y) - (sm.h / 2))));
};
if (sm.CustomBMD){
sbmd = sm.CustomBMD;
} else {
if (!sm.animated){
sbmd = _bitmapLibrary[sm.TexRef].Bmd;
} else {
sbmd = _animationLibrary[sm.TexRef].BmdArray[sm.CurrentFrame];
};
};
if (sbmd){
if ((((sm.r == 0)) && ((sm.s == 1)))){
_canvasBMD.copyPixels(sbmd, sm.DrawRect, pt, null, null, true);
} else {
if (!_matrix){
_matrix = new Matrix();
};
_matrix.identity();
if (sm.r != 0){
ox = (-(sm.w) / 2);
oy = (-(sm.h) / 2);
_matrix.translate(ox, oy);
_matrix.rotate(sm.r);
_matrix.translate(-(ox), -(oy));
};
if (sm.s != 1){
_matrix.translate((-(sm.w) / 2), (-(sm.h) / 2));
_matrix.scale(sm.s, sm.s);
_matrix.translate((sm.w / 2), (sm.h / 2));
};
_matrix.translate(pt.x, pt.y);
_canvasBMD.draw(sbmd, _matrix, null, sm.BlendMode, null, true);
};
} else {
trace(("### WARNING: RenderManager > renderSprites > supplied BitmapData is null. sm: " + sm));
};
i++;
};
_canvas.bitmapData = _canvasBMD;
_canvas.smoothing = true;
_canvasBMD.unlock();
}
public function init(cw:Number, ch:Number):Bitmap{
_canvasBMD = new BitmapData(cw, ch, false, 0);
_canvas = new Bitmap(_canvasBMD, PixelSnapping.NEVER, true);
_mainRect = new Rectangle(0, 0, cw, ch);
_mainPoint = new Point(0, 0);
return (_canvas);
}
public function clear():void{
_canvasBMD.fillRect(new Rectangle(0, 0, Main.sceneWidth, Main.sceneHeight), 11525090);
}
public function renderElements(inElements:Array):void{
var element:CustomRenderElement;
var i:int;
while (i < inElements.length) {
element = inElements[i];
_canvasBMD.copyPixels(element.BMD, new Rectangle(0, 0, element.w, element.h), new Point(0, 0), null, null, true);
i++;
};
}
public function get Canvas():Bitmap{
return (_canvas);
}
private static function addAnimation(inTexObj:Object):void{
_animationLibrary.push(inTexObj);
}
public static function get BitmapLibrary():Array{
return (_bitmapLibrary);
}
public static function getTexIDByName(inName:String):int{
var i:int;
var texID:int;
i = 0;
while (i < _bitmapLibrary.length) {
if (_bitmapLibrary[i].TexName == inName){
return (texID);
};
texID++;
i++;
};
texID = 0;
i = 0;
while (i < _animationLibrary.length) {
if (_animationLibrary[i].TexName == inName){
return (texID);
};
texID++;
i++;
};
trace(("(renderManage) ### WARNING: texture does not exist: " + inName));
return (-1);
}
public static function get Instance():RenderManager{
return (_instance);
}
public static function get AnimationLibrary():Array{
return (_animationLibrary);
}
private static function addTexture(inTexObj:Object):void{
_bitmapLibrary.push(inTexObj);
}
public static function createStillFromMC(sourceClip:MovieClip, inScale:Number=1):BitmapData{
var matrix:Matrix;
if (!sourceClip){
trace("### WARNING (RenderManager > createStillFromMC) sourceClip is nill");
};
if ((((sourceClip.width == 0)) || ((sourceClip.height == 0)))){
trace(("### WARNING (RenderManager > createStillFromMC) sourceClip is empty: " + sourceClip));
};
var sBMD:BitmapData = new BitmapData(sourceClip.width, sourceClip.height, true, 0xFFFFFF);
if (inScale != 1){
matrix = new Matrix();
matrix.scale(inScale, inScale);
sBMD.draw(sourceClip, matrix);
} else {
sBMD.draw(sourceClip);
};
return (sBMD);
}
private static function generateAnimSet(sourceClip:MovieClip):Array{
var sBMD:BitmapData;
var bmdArray:Array = new Array();
var i = 1;
while (i < sourceClip.totalFrames) {
sourceClip.gotoAndStop(i);
sBMD = new BitmapData(sourceClip.width, sourceClip.height, true, 0);
sBMD.draw(sourceClip);
bmdArray.push(sBMD);
i++;
};
return (bmdArray);
}
}
}//package com.psiom.graphics
Section 89
//SpriteModel (com.psiom.graphics.SpriteModel)
package com.psiom.graphics {
import flash.display.*;
import flash.geom.*;
public class SpriteModel {
public var r:Number;// = 0
public var floating:Boolean;// = false
private var _subHeight:Number;// = 0
private var _texRef:int;// = 0
private var _blendMode:String;
public var animated:Boolean;// = false
public var loop:Boolean;// = false
private var _drawRect:Rectangle;
private var _subWidth:Number;// = 0
private var _customBMD:BitmapData;
private var _totalFrames:Number;// = 0
private var _currentFrame:Number;// = 0
public var h:Number;// = 1
public var s:Number;// = 1
private var _frameRate:Number;// = 0
public var w:Number;// = 1
public var x:Number;// = 0
public var y:Number;// = 0
public function SpriteModel(){
super();
}
public function get DrawRect():Rectangle{
return (_drawRect);
}
public function get TexRef():int{
return (_texRef);
}
public function get CurrentFrame():Number{
return (_currentFrame);
}
public function init(inTexRef:int, inWidth:Number, inHeight:Number):void{
_blendMode = "normal";
_texRef = inTexRef;
_drawRect = new Rectangle(0, 0, inWidth, inHeight);
}
public function set FrameRate(inVal:Number):void{
_frameRate = inVal;
if (_totalFrames <= 0){
trace("(SpriteModel) ### WARNING: FrameSetter used but there are no frames.");
};
}
public function set CurrentFrame(inVal:Number):void{
_currentFrame = inVal;
}
public function setAnimProperties(inW:Number, inH:Number, inCount:Number):void{
_subWidth = inW;
_subHeight = inH;
_totalFrames = inCount;
}
public function get CustomBMD():BitmapData{
return (_customBMD);
}
public function get FrameRate():Number{
return (_frameRate);
}
public function set TotalFrames(inVal:Number):void{
_totalFrames = inVal;
}
public function update(inX:Number, inY:Number, inWidth:Number, inHeight:Number, inRotation:Number, inScale:Number):void{
x = inX;
y = inY;
w = inWidth;
h = inHeight;
r = inRotation;
s = inScale;
if (_frameRate != 0){
_currentFrame = (_currentFrame + _frameRate);
if (_currentFrame > (_totalFrames - 1)){
if (loop){
_currentFrame = 0;
} else {
_currentFrame = (_totalFrames - 1);
};
};
};
}
public function get TotalFrames():Number{
return (_totalFrames);
}
public function set BlendMode(val:String):void{
_blendMode = val;
}
public function initWithCustomBMD(inBMD:BitmapData):void{
_blendMode = "normal";
_customBMD = inBMD;
_drawRect = new Rectangle(0, 0, inBMD.width, inBMD.height);
}
public function get BlendMode():String{
return (_blendMode);
}
}
}//package com.psiom.graphics
Section 90
//MathFunction (com.psiom.util.MathFunction)
package com.psiom.util {
public class MathFunction {
public function MathFunction(){
super();
}
public static function degreesToRadians(inDegrees:Number):Number{
return ((inDegrees * (Math.PI / 180)));
}
public static function getVector(inRadians:Number, inVelocity:Number):Object{
var vX:Number = (inVelocity * Math.cos(inRadians));
var vY:Number = (inVelocity * Math.sin(inRadians));
return ({x:vX, y:vY});
}
public static function getDistance(inSourceX:Number, inSourceY:Number, inTargetX:Number, inTargetY:Number):Number{
return (Math.sqrt(((Math.abs((inSourceX - inTargetX)) * Math.abs((inSourceX - inTargetX))) + (Math.abs((inSourceY - inTargetY)) * Math.abs((inSourceY - inTargetY))))));
}
public static function getRadians(inSourceX:Number, inSourceY:Number, inTargetX:Number, inTargetY:Number):Number{
return (Math.atan2((inTargetY - inSourceY), (inTargetX - inSourceX)));
}
public static function formatNumberStringWithCommas(inString:String):String{
var k:Number;
var d:Number;
var fieldPieces:Array = inString.split("");
fieldPieces.reverse();
var finalString:String = "";
k = 0;
while (k < fieldPieces.length) {
finalString = (fieldPieces[k] + finalString);
d = (k % 3);
if (k < (fieldPieces.length - 1)){
if (d == 2){
finalString = ("," + finalString);
};
};
k++;
};
return (finalString);
}
}
}//package com.psiom.util
Section 91
//SharedObjectWrapper (com.psiom.util.SharedObjectWrapper)
package com.psiom.util {
import flash.events.*;
import flash.net.*;
public class SharedObjectWrapper {
private var _avail:Boolean;// = false
private var _so:SharedObject;
private var _soDummy:Object;
public function SharedObjectWrapper(){
super();
}
public function get data():Object{
if (_avail){
return (_so.data);
};
return (_soDummy.data);
}
public function flush():void{
if (_avail){
_so.flush();
//unresolved jump
var _slot1 = error;
_avail = false;
};
}
private function onFlushStatus(event:NetStatusEvent):void{
switch (event.info.code){
case "SharedObject.Flush.Success":
break;
case "SharedObject.Flush.Failed":
_avail = false;
break;
};
_so.removeEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
}
public function init(inName:String, inLocalPath:String):void{
_so = SharedObject.getLocal(inName, inLocalPath);
_so.addEventListener(NetStatusEvent.NET_STATUS, onFlushStatus);
_soDummy = {data:new Object()};
_avail = true;
}
}
}//package com.psiom.util
Section 92
//GroundLayer (com.truffle.engine.engineComponents.GroundLayer)
package com.truffle.engine.engineComponents {
import com.truffle.*;
import flash.display.*;
import com.psiom.engine.*;
import com.psiom.graphics.*;
import com.truffle.engine.objectSpaces.*;
import flash.geom.*;
public class GroundLayer extends CustomRenderElement {
private var _currentFGTextYSlice:int;// = 0
private var _fgStack:Array;
private var _worldExtend:Number;// = 250
private var _renderWidth:Number;// = 0x0400
private var _solidObjCollisionMap:BitmapData;
private var _speedYFloatRemainder:Number;// = 0
private var _mainRect:Rectangle;
private var _bgSource:BitmapData;
private var _worldHeight:Number;// = 660
private var _baseCollisionMap:BitmapData;
private var _renderHeight:Number;// = 660
private var _blackPaint:BitmapData;
private var _brushing:Boolean;// = false
private var _currentSpeedY:Number;// = 0
private var _bgMap:BitmapData;
private var _foreGroundTextures:Array;
private var _mainPoint:Point;
private var _brushAlpha:BitmapData;
private var _finalMap:BitmapData;
private var _speedSub:Number;// = 0
private var _fgTexIndex:int;// = 0
private var _fgColourMap:BitmapData;
private var _worldWidth:Number;// = 0x0400
private var _speedSubInt:Number;// = 0
private var _brushX:Number;// = 0
private var _brushY:Number;// = 0
private var _bgPatchSource:int;// = 0
public function GroundLayer(){
_blackPaint = new BitmapData(150, 150, false, 0);
_mainRect = new Rectangle(0, 0, 0x0400, 660);
_mainPoint = new Point(0, 0);
super();
_fgStack = [new bgtex1(0, 0), new bgtex2(0, 0), new bgtex3(0, 0), new bgtex4(0, 0), new bgtex5(0, 0)];
reshuffleBackGrounds();
_baseCollisionMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), false, 0xFFFFFF);
_finalMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 4278190628);
_fgColourMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 4278190628);
_solidObjCollisionMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 0);
_bgMap = new bmd_bgplane(0, 0);
_bgSource = new bmd_bgplane(0, 0);
_brushAlpha = new brushAlpha(75, 75);
}
public function addBitmapObject(inObjectBMD:BitmapData, inX:Number, inY:Number, targetMap:BitmapData, xOffset:Number=0, yOffset:Number=0):void{
var alphaRect:Rectangle;
var alphaPoint:Point;
var objPt:Point = new Point((inX - (inObjectBMD.width / 2)), ((inY - (inObjectBMD.height / 2)) - Math.abs(GameLevel.Instance.WorldPos.y)));
var objRect:Rectangle = new Rectangle(0, 0, inObjectBMD.width, inObjectBMD.height);
targetMap.copyPixels(inObjectBMD, objRect, objPt, inObjectBMD, new Point(0, 0), true);
if (targetMap == _solidObjCollisionMap){
_baseCollisionMap.copyPixels(inObjectBMD, objRect, objPt, inObjectBMD, new Point(0, 0), true);
};
if (targetMap == _baseCollisionMap){
alphaRect = new Rectangle(objPt.x, objPt.y, inObjectBMD.width, inObjectBMD.width);
alphaPoint = new Point(objPt.x, objPt.y);
_baseCollisionMap.copyPixels(_solidObjCollisionMap, alphaRect, alphaPoint, _solidObjCollisionMap, new Point(objPt.x, objPt.y), true);
};
if ((((targetMap == _baseCollisionMap)) || ((targetMap == _solidObjCollisionMap)))){
alphaRect = new Rectangle(objPt.x, objPt.y, inObjectBMD.width, inObjectBMD.width);
alphaPoint = new Point(inX, inY);
_finalMap.copyChannel(_baseCollisionMap, alphaRect, objPt, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
};
}
public function init():void{
var rect:Rectangle = new Rectangle(0, 0, _worldWidth, _worldHeight);
var pt:Point = new Point(0, 0);
}
private function reshuffleBackGrounds():void{
var index:int;
_foreGroundTextures = new Array();
var fgs:Array = _fgStack.slice();
var count:int = fgs.length;
var i:int;
while (i < count) {
index = Math.floor((Math.random() * (fgs.length - 0.001)));
_foreGroundTextures.push(fgs[index]);
fgs.splice(index, 1);
i++;
};
}
public function get CurrentSpeedY():Number{
return (_currentSpeedY);
}
public function reset():void{
var remainingHeight:int;
_fgTexIndex = 0;
_currentSpeedY = 0;
_bgPatchSource = 0;
_speedYFloatRemainder = 0;
_speedSub = 0;
_speedSubInt = 0;
_baseCollisionMap.dispose();
_baseCollisionMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), false, 0xFFFFFF);
_solidObjCollisionMap.dispose();
_solidObjCollisionMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 0);
_fgColourMap.dispose();
_fgColourMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 4278190628);
_finalMap.dispose();
_finalMap = new BitmapData(_renderWidth, (_renderHeight + _worldExtend), true, 4278190628);
_finalMap.copyChannel(_baseCollisionMap, _mainRect, _mainPoint, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
_bmd.copyPixels(_bgMap, _mainRect, _mainPoint);
_bmd.copyPixels(_finalMap, _mainRect, _mainPoint, null, null, true);
var fgTex:BitmapData = _foreGroundTextures[_fgTexIndex];
var fgHeight:int = fgTex.height;
var totalHeight:int;
addBitmapObject(fgTex, (fgTex.width / 2), (fgTex.height / 2), _finalMap);
_fgTexIndex++;
totalHeight = (totalHeight + fgHeight);
while (totalHeight < _worldHeight) {
remainingHeight = (_worldHeight - totalHeight);
fgTex = _foreGroundTextures[_fgTexIndex];
fgHeight = fgTex.height;
addBitmapObject(fgTex, (fgTex.width / 2), (fgTex.height / 2), _finalMap);
totalHeight = (totalHeight + fgHeight);
if (remainingHeight <= fgHeight){
_currentFGTextYSlice = remainingHeight;
break;
};
};
}
public function addNegativeObject(inBMD:BitmapData, inObjData:Object):void{
addBitmapObject(inBMD, inObjData.x, inObjData.y, _baseCollisionMap, 0, 0);
}
public function addSolidObject(inSolidObj:SolidObstacle, inObjData:Object, useColour:Boolean=true):void{
var w:int = Math.floor((inSolidObj.BmdAlpha.width / 2));
var h:int = Math.floor((inSolidObj.BmdAlpha.height / 2));
addBitmapObject(inSolidObj.BmdAlpha, inObjData.x, inObjData.y, _solidObjCollisionMap, 0, 0);
inSolidObj.BmdAlpha.dispose();
if (useColour){
addBitmapObject(inSolidObj.BmdColour, inObjData.x, inObjData.y, _finalMap, 0, 0);
inSolidObj.BmdAlpha.dispose();
};
}
public function get CollisionMap():BitmapData{
return (_baseCollisionMap);
}
override public function updateWithCamera(inCamera:EngineCamera):void{
var alphaRect:Rectangle;
var bsRect:Rectangle;
var bsPoint:Point;
var fx:Number;
var fy:Number;
var rect:Rectangle;
var pt:Point;
var whiteStrip:BitmapData;
var fgStrip:BitmapData;
var stripRect:Rectangle;
var stripPoint:Point;
_bmd.lock();
var baseSpeedInt:Number = Math.round((GameLevel.Instance.WorldSpeed.y + _speedYFloatRemainder));
_speedYFloatRemainder = (GameLevel.Instance.WorldSpeed.y - baseSpeedInt);
if (_speedYFloatRemainder > 0){
_speedYFloatRemainder = 0;
};
var speedY:Number = baseSpeedInt;
_currentSpeedY = speedY;
_baseCollisionMap.scroll(0, speedY);
_finalMap.scroll(0, speedY);
_solidObjCollisionMap.scroll(0, speedY);
var bgY:Number = 0;
_speedSub = (speedY / 2);
_speedSubInt = (_speedSubInt + (_speedSub + -((GameLevel.Instance.MotionY * 0.5))));
if (Math.floor(Math.abs(_speedSubInt)) >= 1){
bgY = _speedSubInt;
_speedSubInt = 0;
};
if (Math.abs(bgY) > 0){
_bgMap.scroll(0, bgY);
if (_bgPatchSource > _worldHeight){
_bgPatchSource = 0;
};
bsRect = new Rectangle(0, _bgPatchSource, _worldWidth, Math.abs(bgY));
bsPoint = new Point(0, (_worldHeight - Math.abs(bgY)));
_bgMap.copyPixels(_bgSource, bsRect, bsPoint);
_bgPatchSource = (_bgPatchSource + Math.abs(bgY));
};
_brushX = ((Main.Instance.mouseX - RenderManager.Instance.Canvas.x) * (1 / RenderManager.Instance.Canvas.scaleX));
_brushY = ((Main.Instance.mouseY - RenderManager.Instance.Canvas.y) * (1 / RenderManager.Instance.Canvas.scaleY));
var fWidth:Number = (_brushAlpha.width / 2);
if (_brushY > ((_worldHeight - fWidth) - 10)){
_brushY = ((_worldHeight - fWidth) - 10);
};
GameLevel.Instance.CursorObj.x = _brushX;
GameLevel.Instance.CursorObj.y = _brushY;
if (Main.Instance.MainMouseDown){
fx = Math.floor((_brushX - fWidth));
fy = Math.floor((_brushY - fWidth));
rect = new Rectangle(0, 0, _brushAlpha.width, _brushAlpha.width);
pt = new Point(fx, fy);
alphaRect = new Rectangle(fx, fy, _brushAlpha.width, _brushAlpha.width);
_baseCollisionMap.copyPixels(_blackPaint, rect, pt, _brushAlpha, new Point(0, 0), true);
_baseCollisionMap.copyPixels(_solidObjCollisionMap, alphaRect, pt);
_finalMap.copyChannel(_baseCollisionMap, alphaRect, pt, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
};
if (Math.abs(speedY) > 0){
alphaRect = new Rectangle(0, ((_worldHeight + _worldExtend) - Math.abs(speedY)), _worldWidth, Math.abs(speedY));
whiteStrip = new BitmapData(_worldWidth, Math.abs(speedY), false, 0xFFFFFF);
fgStrip = new BitmapData(_worldWidth, Math.abs(speedY), false, 4278190628);
fgStrip.copyPixels(_foreGroundTextures[_fgTexIndex], new Rectangle(0, _currentFGTextYSlice, _worldWidth, Math.abs(speedY)), new Point(0, 0));
_currentFGTextYSlice = (_currentFGTextYSlice + Math.abs(speedY));
if (_currentFGTextYSlice >= _foreGroundTextures[_fgTexIndex].height){
_currentFGTextYSlice = 0;
_fgTexIndex++;
if (_fgTexIndex > (_foreGroundTextures.length - 1)){
_fgTexIndex = 0;
};
};
stripRect = new Rectangle(0, 0, _worldWidth, Math.abs(speedY));
stripPoint = new Point(0, ((_worldHeight + _worldExtend) - Math.abs(speedY)));
_finalMap.copyPixels(fgStrip, stripRect, stripPoint);
_baseCollisionMap.copyPixels(whiteStrip, stripRect, stripPoint);
_solidObjCollisionMap.fillRect(alphaRect, 0);
};
_bmd.copyPixels(_bgMap, _mainRect, _mainPoint);
_bmd.copyPixels(_finalMap, _mainRect, _mainPoint, null, null, true);
_bmd.unlock();
}
}
}//package com.truffle.engine.engineComponents
Section 93
//LevelData (com.truffle.engine.engineComponents.LevelData)
package com.truffle.engine.engineComponents {
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class LevelData extends EventDispatcher {
private var _levelHeight:Number;// = 10000
private var _levelObjects:Array;
private var _baseSpeed:Number;// = 1
public function LevelData(){
super();
}
public function readData(inXML:XML):void{
var obj:Object;
var levelObject:Object;
_levelObjects = new Array();
var objects:XMLList = inXML.objects.object;
_levelHeight = inXML.@height;
var sp:int = (0 - inXML.@baseSpeed);
if (int(sp) < 0){
_baseSpeed = sp;
};
trace(((((("_levelHeight: " + _levelHeight) + " _baseSpeed: ") + _baseSpeed) + " inXML.@baseSpeed: ") + inXML.@baseSpeed));
for each (obj in objects) {
levelObject = {Type:obj.type.toString(), x:Math.floor(obj.x), y:Math.floor(obj.y), rotation:obj.rotation, yOffset:obj.yOffset};
_levelObjects.push(levelObject);
};
}
public function getObjectsAtCurrentLocation(inYLoc:Number):Array{
var numReturned:int;
var objYCheck:Number;
var levelObject:Object;
var objects:Array = new Array();
var i:int;
while (i < _levelObjects.length) {
objYCheck = (_levelObjects[i].y + Number((_levelObjects[i].yOffset * 1)));
if (objYCheck <= -(inYLoc)){
numReturned++;
levelObject = _levelObjects[i];
objects.push(levelObject);
} else {
break;
};
i++;
};
if (numReturned > 0){
_levelObjects.splice(0, numReturned);
};
if (objects.length < 1){
return (null);
};
return (objects);
}
public function writeData(inObjectsArray:Array):String{
var levelString:String = "";
levelString = (levelString + "<level>");
levelString = (levelString + "\n \t<objects>");
var i:int;
while (i < inObjectsArray.length) {
levelString = (levelString + "\n \t \t<object>");
levelString = (levelString + (("\n \t \t \t<type>" + inObjectsArray[i].Type) + "</type>"));
levelString = (levelString + (("\n \t \t \t<x>" + String(inObjectsArray[i].X)) + "</x>"));
levelString = (levelString + (("\n \t \t \t<y>" + String(inObjectsArray[i].Y)) + "</y>"));
levelString = (levelString + (("\n \t \t \t<rotation>" + String(inObjectsArray[i].R)) + "</rotation>"));
levelString = (levelString + (("\n \t \t \t<yOffset>" + String(inObjectsArray[i].yOffset)) + "</yOffset>"));
levelString = (levelString + "\n \t \t</object>");
i++;
};
levelString = (levelString + "\n \t</objects>");
levelString = (levelString + "\n</level>");
trace(("levelString: \n" + levelString));
System.setClipboard(levelString);
return (levelString);
}
public function get LevelHeight():Number{
return (_levelHeight);
}
public function loadData(inPath:String):void{
var xmlLoader:URLLoader = new URLLoader();
xmlLoader.addEventListener(Event.COMPLETE, onXMLLoaded);
xmlLoader.load(new URLRequest(inPath));
}
public function get LevelDataArray():Array{
return (_levelObjects);
}
public function get BaseSpeed():Number{
if (_baseSpeed > -1){
_baseSpeed = -1;
};
return (_baseSpeed);
}
private function onXMLLoaded(event:Event):void{
var xmlData:XML = new XML(event.target.data);
readData(xmlData);
dispatchEvent(new Event("levelLoaded"));
}
}
}//package com.truffle.engine.engineComponents
Section 94
//SolidObstacle (com.truffle.engine.engineComponents.SolidObstacle)
package com.truffle.engine.engineComponents {
import flash.display.*;
public class SolidObstacle {
public var y:Number;
private var _bmdAlpha:BitmapData;
private var _bmdColour:BitmapData;
public var r:Number;
public var x:Number;
public function SolidObstacle(inX:Number, inY:Number, inR:Number){
super();
x = inX;
y = inY;
r = inR;
}
public function get BmdColour():BitmapData{
return (_bmdColour);
}
public function generateColourFromSource(sourceObj:MovieClip):void{
sourceObj._col.visible = false;
_bmdColour = new BitmapData(sourceObj.width, sourceObj.height, true, 0);
_bmdColour.draw(sourceObj);
}
public function generateAlphaFromSource(sourceObj:MovieClip):void{
sourceObj._col.visible = true;
_bmdAlpha = new BitmapData(sourceObj.width, sourceObj.height, true, 0);
_bmdAlpha.draw(sourceObj);
}
public function get BmdAlpha():BitmapData{
return (_bmdAlpha);
}
}
}//package com.truffle.engine.engineComponents
Section 95
//Battery (com.truffle.engine.gameObjects.Battery)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class Battery extends RenderableObject {
private var _loopDelay:int;// = 0
private var _loop:Boolean;// = false
private var _currentAnimFrame:int;// = 0
private var _currentAnimEnd:int;// = 8
private var _chargeMax:int;// = 60
private var _charge:int;// = 0
private var _currentAnimStart:int;// = 0
private var _chargeTime:int;// = 0
public var armed:Boolean;// = true
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public static var zapRadius:Number = 150;
public function Battery(isPlayer:Boolean=false){
super();
autoVel = false;
if (Battery.texID == -1){
Battery.texID = RenderManager.getTexIDByName("Anim_Battery");
};
if (Battery.baseWidth == -1){
Battery.baseWidth = RenderManager.AnimationLibrary[Battery.texID].BmdArray[0].width;
Battery.baseHeight = RenderManager.AnimationLibrary[Battery.texID].BmdArray[0].height;
};
_spriteModel.init(Battery.texID, Battery.baseWidth, Battery.baseHeight);
_spriteModel.animated = true;
if (Battery.totalFrames == -1){
Battery.totalFrames = RenderManager.AnimationLibrary[Battery.texID].BmdArray.length;
};
radius = 120;
_spriteModel.TotalFrames = Battery.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 6));
x = 0;
y = 0;
w = Battery.baseWidth;
h = Battery.baseHeight;
s = 1;
r = 0;
}
public function zap():void{
}
public function trigger():void{
if (armed){
_charge++;
if (_charge > _chargeMax){
_charge = _chargeMax;
};
_chargeTime = 5;
};
}
override public function update():void{
_chargeTime--;
if (_chargeTime <= 0){
idle();
};
if (_charge == 0){
_currentAnimStart = 0;
_currentAnimEnd = 8;
} else {
_currentAnimStart = 10;
if (armed){
_currentAnimEnd = 17;
} else {
_currentAnimEnd = 39;
};
};
if (_currentAnimFrame < _currentAnimEnd){
_currentAnimFrame++;
};
if (_currentAnimFrame >= _currentAnimEnd){
_currentAnimFrame = _currentAnimEnd;
if (_charge == 0){
_loopDelay++;
if (_loopDelay > 35){
_loopDelay = 0;
_currentAnimFrame = _currentAnimStart;
};
} else {
if (armed){
_currentAnimFrame = _currentAnimStart;
};
};
};
_spriteModel.CurrentFrame = _currentAnimFrame;
super.update();
}
public function idle():void{
if (armed){
_charge = (_charge - 5);
if (_charge < 0){
_charge = 0;
};
};
}
public function get Charge():int{
return (_charge);
}
public function get ChargeMax():int{
return (_chargeMax);
}
}
}//package com.truffle.engine.gameObjects
Section 96
//Cursor (com.truffle.engine.gameObjects.Cursor)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class Cursor extends RenderableObject {
public var subject:RenderableObject;
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function Cursor(){
super();
if (Cursor.texID == -1){
Cursor.texID = RenderManager.getTexIDByName("Cursor");
};
if (Cursor.baseWidth == -1){
Cursor.baseWidth = RenderManager.BitmapLibrary[Cursor.texID].Bmd.width;
Cursor.baseHeight = RenderManager.BitmapLibrary[Cursor.texID].Bmd.height;
};
_spriteModel.init(Cursor.texID, Cursor.baseWidth, Cursor.baseHeight);
x = 0;
y = 0;
w = Cursor.baseWidth;
h = Cursor.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 97
//DebugArrow (com.truffle.engine.gameObjects.DebugArrow)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class DebugArrow extends RenderableObject {
public var subject:RenderableObject;
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function DebugArrow(){
super();
if (DebugArrow.texID == -1){
DebugArrow.texID = RenderManager.getTexIDByName("DebugArrow");
};
if (DebugArrow.baseWidth == -1){
DebugArrow.baseWidth = RenderManager.BitmapLibrary[DebugArrow.texID].Bmd.width;
DebugArrow.baseHeight = RenderManager.BitmapLibrary[DebugArrow.texID].Bmd.height;
};
_spriteModel.init(DebugArrow.texID, DebugArrow.baseWidth, DebugArrow.baseHeight);
x = 0;
y = 0;
w = DebugArrow.baseWidth;
h = DebugArrow.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (subject){
x = subject.x;
y = subject.y;
};
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 98
//DebugNode (com.truffle.engine.gameObjects.DebugNode)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class DebugNode extends RenderableObject {
public var subject:RenderableObject;
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function DebugNode(){
super();
if (DebugNode.texID == -1){
DebugNode.texID = RenderManager.getTexIDByName("DebugNode");
};
if (DebugNode.baseWidth == -1){
DebugNode.baseWidth = RenderManager.BitmapLibrary[DebugNode.texID].Bmd.width;
DebugNode.baseHeight = RenderManager.BitmapLibrary[DebugNode.texID].Bmd.height;
};
_spriteModel.init(DebugNode.texID, DebugNode.baseWidth, DebugNode.baseHeight);
x = 0;
y = 0;
w = DebugNode.baseWidth;
h = DebugNode.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (subject){
x = subject.x;
y = subject.y;
};
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 99
//Diamond (com.truffle.engine.gameObjects.Diamond)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class Diamond extends RenderableObject {
private var rSinF:Number;// = 0.05
public var tr:Number;// = 0
private var rSin:Number;
public var torque:Number;// = 0
private var rSinA:Number;// = 0.5
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function Diamond(isPlayer:Boolean=false){
rSin = (Math.random() * 3);
super();
autoVel = false;
pointsVal = 1100;
if (Diamond.texID == -1){
Diamond.texID = RenderManager.getTexIDByName("Anim_Diamond");
};
if (Diamond.baseWidth == -1){
Diamond.baseWidth = RenderManager.AnimationLibrary[Diamond.texID].BmdArray[0].width;
Diamond.baseHeight = RenderManager.AnimationLibrary[Diamond.texID].BmdArray[0].height;
};
_spriteModel.init(Diamond.texID, Diamond.baseWidth, Diamond.baseHeight);
_spriteModel.animated = true;
if (Diamond.totalFrames == -1){
Diamond.totalFrames = RenderManager.AnimationLibrary[Diamond.texID].BmdArray.length;
};
radius = 40;
_spriteModel.TotalFrames = Diamond.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 10));
x = 0;
y = 0;
w = Diamond.baseWidth;
h = Diamond.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (pointsVal > 850){
pointsVal--;
};
if ((((_spriteModel.CurrentFrame == 1)) || ((_spriteModel.CurrentFrame == 12)))){
_spriteModel.FrameRate = 0;
};
if (_spriteModel.FrameRate == 0){
if (Math.random() > 0.985){
_spriteModel.FrameRate = 1;
};
};
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
_spriteModel.CurrentFrame = 0;
};
super.update();
}
public function kill():void{
purge = true;
}
}
}//package com.truffle.engine.gameObjects
Section 100
//MediumBluePuff (com.truffle.engine.gameObjects.MediumBluePuff)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class MediumBluePuff extends RenderableObject {
private var agrav:Number;// = 0.01
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function MediumBluePuff(){
super();
if (MediumBluePuff.texID == -1){
MediumBluePuff.texID = RenderManager.getTexIDByName("Anim_MediumBluePuff");
};
if (MediumBluePuff.baseWidth == -1){
MediumBluePuff.baseWidth = RenderManager.AnimationLibrary[MediumBluePuff.texID].BmdArray[0].width;
MediumBluePuff.baseHeight = RenderManager.AnimationLibrary[MediumBluePuff.texID].BmdArray[0].height;
};
_spriteModel.init(MediumBluePuff.texID, MediumBluePuff.baseWidth, MediumBluePuff.baseHeight);
_spriteModel.animated = true;
if (MediumBluePuff.totalFrames == -1){
MediumBluePuff.totalFrames = RenderManager.AnimationLibrary[MediumBluePuff.texID].BmdArray.length;
};
_spriteModel.TotalFrames = MediumBluePuff.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 6));
x = 0;
y = 0;
w = MediumBluePuff.baseWidth;
h = MediumBluePuff.baseHeight;
vx = ((Math.random() * 4) - 2);
vy = ((Math.random() * 2) - 1);
agrav = (0.01 + (Math.random() * 0.03));
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 4)){
purge = true;
};
vx = (vx * 0.95);
vy = (vy - agrav);
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 101
//Pig (com.truffle.engine.gameObjects.Pig)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class Pig extends RenderableObject {
private var _currentAnimFrame:int;// = 0
private var _loop:Boolean;// = true
private var _dead:Boolean;// = false
private var scaleDown:Number;// = 0
private var _poisoned:Boolean;// = false
public var torque:Number;// = 0
private var _zapped:Boolean;// = false
private var _dTimer:int;// = 150
private var _currentAnimEnd:int;// = 20
private var _currentAnimStart:int;// = 0
public var tr:Number;// = 0
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function Pig(isPlayer:Boolean=false){
super();
autoVel = false;
if (Pig.texID == -1){
Pig.texID = RenderManager.getTexIDByName("Anim_Pig");
};
if (Pig.baseWidth == -1){
Pig.baseWidth = RenderManager.AnimationLibrary[Pig.texID].BmdArray[0].width;
Pig.baseHeight = RenderManager.AnimationLibrary[Pig.texID].BmdArray[0].height;
};
_spriteModel.init(Pig.texID, Pig.baseWidth, Pig.baseHeight);
_spriteModel.animated = true;
if (Pig.totalFrames == -1){
Pig.totalFrames = RenderManager.AnimationLibrary[Pig.texID].BmdArray.length;
};
_spriteModel.TotalFrames = Pig.totalFrames;
_spriteModel.FrameRate = 0;
radius = 40;
x = 0;
y = 0;
z = 100;
w = Pig.baseWidth;
h = Pig.baseHeight;
s = 1;
r = 0;
}
public function get Poisoned():Boolean{
return (_poisoned);
}
public function poison():void{
_poisoned = true;
kill();
_currentAnimStart = 21;
_currentAnimEnd = 34;
}
override public function update():void{
vy = (vy + 0.7);
radius = (40 * s);
if (s < 1){
radius = (80 * s);
};
if (s > 1){
radius = (30 * s);
};
if (_dead){
tr = -(Math.PI);
_loop = false;
_dTimer--;
if (_dTimer < 50){
scaleDown = (scaleDown + 0.005);
s = (s - scaleDown);
if (s < 0.01){
s = 0.01;
};
};
if ((((_dTimer < 0)) && ((s < 0.1)))){
purge = true;
};
} else {
tr = (tr + torque);
};
r = (r + ((tr - r) * 0.25));
if (_currentAnimFrame < _currentAnimStart){
_currentAnimFrame = _currentAnimStart;
};
if (_currentAnimFrame < (_currentAnimEnd - 1)){
_currentAnimFrame++;
if (((_loop) && ((_currentAnimFrame >= (_currentAnimEnd - 1))))){
_currentAnimFrame = _currentAnimStart;
};
};
_spriteModel.CurrentFrame = _currentAnimFrame;
super.update();
}
public function get Dead():Boolean{
return (_dead);
}
public function kill():void{
_dead = true;
}
public function get Zapped():Boolean{
return (_zapped);
}
public function zap():void{
_zapped = true;
kill();
_currentAnimStart = 35;
_currentAnimEnd = 82;
}
}
}//package com.truffle.engine.gameObjects
Section 102
//PoisonCloud (com.truffle.engine.gameObjects.PoisonCloud)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class PoisonCloud extends RenderableObject {
private var rSinF:Number;// = 0.05
public var tr:Number;// = 0
private var rSin:Number;
public var torque:Number;// = 0
private var rSinA:Number;// = 0.5
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function PoisonCloud(isPlayer:Boolean=false){
rSin = (Math.random() * 3);
super();
autoVel = false;
if (PoisonCloud.texID == -1){
PoisonCloud.texID = RenderManager.getTexIDByName("Anim_PoisonCloud");
};
if (PoisonCloud.baseWidth == -1){
PoisonCloud.baseWidth = RenderManager.AnimationLibrary[PoisonCloud.texID].BmdArray[0].width;
PoisonCloud.baseHeight = RenderManager.AnimationLibrary[PoisonCloud.texID].BmdArray[0].height;
};
_spriteModel.init(PoisonCloud.texID, PoisonCloud.baseWidth, PoisonCloud.baseHeight);
_spriteModel.animated = true;
if (PoisonCloud.totalFrames == -1){
PoisonCloud.totalFrames = RenderManager.AnimationLibrary[PoisonCloud.texID].BmdArray.length;
};
radius = 40;
_spriteModel.TotalFrames = PoisonCloud.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 6));
x = 0;
y = 0;
w = PoisonCloud.baseWidth;
h = PoisonCloud.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
vy = (vy - 0.05);
rSin = (rSin + rSinF);
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
_spriteModel.CurrentFrame = 0;
};
tr = (tr + torque);
torque = (torque * 0.9);
r = (tr + (Math.sin(rSin) * rSinA));
r = (r * 0.97);
super.update();
}
public function kill():void{
purge = true;
}
}
}//package com.truffle.engine.gameObjects
Section 103
//PoisonPuff (com.truffle.engine.gameObjects.PoisonPuff)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class PoisonPuff extends RenderableObject {
private var agrav:Number;// = 0.02
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function PoisonPuff(){
super();
if (PoisonPuff.texID == -1){
PoisonPuff.texID = RenderManager.getTexIDByName("Anim_PoisonPuff");
};
if (PoisonPuff.baseWidth == -1){
PoisonPuff.baseWidth = RenderManager.AnimationLibrary[PoisonPuff.texID].BmdArray[0].width;
PoisonPuff.baseHeight = RenderManager.AnimationLibrary[PoisonPuff.texID].BmdArray[0].height;
};
_spriteModel.init(PoisonPuff.texID, PoisonPuff.baseWidth, PoisonPuff.baseHeight);
_spriteModel.animated = true;
if (PoisonPuff.totalFrames == -1){
PoisonPuff.totalFrames = RenderManager.AnimationLibrary[PoisonPuff.texID].BmdArray.length;
};
_spriteModel.TotalFrames = PoisonPuff.totalFrames;
_spriteModel.FrameRate = 1;
x = 0;
y = 0;
w = PoisonPuff.baseWidth;
h = PoisonPuff.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
purge = true;
};
vy = (vy - agrav);
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 104
//PoisonShroom (com.truffle.engine.gameObjects.PoisonShroom)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class PoisonShroom extends RenderableObject {
private var rSinF:Number;// = 0.05
public var tr:Number;// = 0
private var rSin:Number;
public var torque:Number;// = 0
private var rSinA:Number;// = 0.5
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function PoisonShroom(isPlayer:Boolean=false){
rSin = (Math.random() * 3);
super();
autoVel = false;
if (PoisonShroom.texID == -1){
PoisonShroom.texID = RenderManager.getTexIDByName("Anim_PoisonShroom");
};
if (PoisonShroom.baseWidth == -1){
PoisonShroom.baseWidth = RenderManager.AnimationLibrary[PoisonShroom.texID].BmdArray[0].width;
PoisonShroom.baseHeight = RenderManager.AnimationLibrary[PoisonShroom.texID].BmdArray[0].height;
};
_spriteModel.init(PoisonShroom.texID, PoisonShroom.baseWidth, PoisonShroom.baseHeight);
_spriteModel.animated = true;
if (PoisonShroom.totalFrames == -1){
PoisonShroom.totalFrames = RenderManager.AnimationLibrary[PoisonShroom.texID].BmdArray.length;
};
radius = 40;
_spriteModel.TotalFrames = PoisonShroom.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 10));
x = 0;
y = 0;
w = PoisonShroom.baseWidth;
h = PoisonShroom.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
_spriteModel.CurrentFrame = 0;
};
super.update();
}
public function kill():void{
purge = true;
}
}
}//package com.truffle.engine.gameObjects
Section 105
//SmokePuff (com.truffle.engine.gameObjects.SmokePuff)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class SmokePuff extends RenderableObject {
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function SmokePuff(){
super();
if (SmokePuff.texID == -1){
SmokePuff.texID = RenderManager.getTexIDByName("Anim_SmokePuff");
};
if (SmokePuff.baseWidth == -1){
SmokePuff.baseWidth = RenderManager.AnimationLibrary[SmokePuff.texID].BmdArray[0].width;
SmokePuff.baseHeight = RenderManager.AnimationLibrary[SmokePuff.texID].BmdArray[0].height;
};
_spriteModel.init(SmokePuff.texID, SmokePuff.baseWidth, SmokePuff.baseHeight);
_spriteModel.animated = true;
if (SmokePuff.totalFrames == -1){
SmokePuff.totalFrames = RenderManager.AnimationLibrary[SmokePuff.texID].BmdArray.length;
};
_spriteModel.TotalFrames = SmokePuff.totalFrames;
_spriteModel.FrameRate = 1;
x = 0;
y = 0;
w = SmokePuff.baseWidth;
h = SmokePuff.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 2)){
purge = true;
};
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 106
//StarFX (com.truffle.engine.gameObjects.StarFX)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class StarFX extends RenderableObject {
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function StarFX(){
super();
if (StarFX.texID == -1){
StarFX.texID = RenderManager.getTexIDByName("Anim_StarFX");
};
if (StarFX.baseWidth == -1){
StarFX.baseWidth = RenderManager.AnimationLibrary[StarFX.texID].BmdArray[0].width;
StarFX.baseHeight = RenderManager.AnimationLibrary[StarFX.texID].BmdArray[0].height;
};
_spriteModel.init(StarFX.texID, StarFX.baseWidth, StarFX.baseHeight);
_spriteModel.animated = true;
if (StarFX.totalFrames == -1){
StarFX.totalFrames = RenderManager.AnimationLibrary[StarFX.texID].BmdArray.length;
};
_spriteModel.TotalFrames = StarFX.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 20));
x = 0;
y = 0;
w = StarFX.baseWidth;
h = StarFX.baseHeight;
vx = ((Math.random() * 9) - 4.5);
vy = ((Math.random() * 9) - 4.5);
vy = (vy - 4.5);
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
purge = true;
};
vy = (vy + 0.45);
vy = (vy * 0.98);
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 107
//TinyPoisonPuff (com.truffle.engine.gameObjects.TinyPoisonPuff)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class TinyPoisonPuff extends RenderableObject {
private var agrav:Number;// = 0.04
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function TinyPoisonPuff(){
super();
if (TinyPoisonPuff.texID == -1){
TinyPoisonPuff.texID = RenderManager.getTexIDByName("Anim_TinyPoisonPuff");
};
if (TinyPoisonPuff.baseWidth == -1){
TinyPoisonPuff.baseWidth = RenderManager.AnimationLibrary[TinyPoisonPuff.texID].BmdArray[0].width;
TinyPoisonPuff.baseHeight = RenderManager.AnimationLibrary[TinyPoisonPuff.texID].BmdArray[0].height;
};
_spriteModel.init(TinyPoisonPuff.texID, TinyPoisonPuff.baseWidth, TinyPoisonPuff.baseHeight);
_spriteModel.animated = true;
if (TinyPoisonPuff.totalFrames == -1){
TinyPoisonPuff.totalFrames = RenderManager.AnimationLibrary[TinyPoisonPuff.texID].BmdArray.length;
};
_spriteModel.TotalFrames = TinyPoisonPuff.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 35));
x = 0;
y = 0;
w = TinyPoisonPuff.baseWidth;
h = TinyPoisonPuff.baseHeight;
vx = ((Math.random() * 7) - 3.5);
vy = ((Math.random() * 4) - 2);
agrav = (0.02 + (Math.random() * 0.06));
s = 1;
r = 0;
}
override public function update():void{
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 4)){
purge = true;
};
vx = (vx * 0.95);
vy = (vy - agrav);
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 108
//Truffle (com.truffle.engine.gameObjects.Truffle)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
public class Truffle extends RenderableObject {
private var _currentAnimEnd:int;// = 13
private var _currentAnimFrame:int;// = 0
private var _loop:Boolean;// = true
private var _currentAnimStart:int;// = 0
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function Truffle(isPlayer:Boolean=false){
super();
pointsVal = 1000;
if (Truffle.texID == -1){
Truffle.texID = RenderManager.getTexIDByName("Anim_Truffle");
};
if (Truffle.baseWidth == -1){
Truffle.baseWidth = RenderManager.AnimationLibrary[Truffle.texID].BmdArray[0].width;
Truffle.baseHeight = RenderManager.AnimationLibrary[Truffle.texID].BmdArray[0].height;
};
_spriteModel.init(Truffle.texID, Truffle.baseWidth, Truffle.baseHeight);
_spriteModel.animated = true;
if (Truffle.totalFrames == -1){
Truffle.totalFrames = RenderManager.AnimationLibrary[Truffle.texID].BmdArray.length;
};
if (Math.random() > 0.66){
_currentAnimStart = 16;
_currentAnimEnd = 30;
};
if (Math.random() > 0.66){
_currentAnimStart = 31;
_currentAnimEnd = 44;
};
_spriteModel.CurrentFrame = (_currentAnimStart + Math.floor((Math.random() * 10)));
radius = 40;
x = 0;
y = 0;
z = 100;
w = Truffle.baseWidth;
h = Truffle.baseHeight;
s = 1;
r = 0;
}
override public function update():void{
if (pointsVal > 500){
pointsVal--;
};
if (_currentAnimFrame < _currentAnimStart){
_currentAnimFrame = _currentAnimStart;
};
if (_currentAnimFrame < (_currentAnimEnd - 1)){
_currentAnimFrame++;
if (((_loop) && ((_currentAnimFrame >= (_currentAnimEnd - 1))))){
_currentAnimFrame = _currentAnimStart;
};
};
_spriteModel.CurrentFrame = _currentAnimFrame;
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 109
//ZapRay (com.truffle.engine.gameObjects.ZapRay)
package com.truffle.engine.gameObjects {
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
import com.psiom.util.*;
public class ZapRay extends RenderableObject {
private var _targetObj:Pig;
private var _source:Battery;
private var _life:int;// = 15
private static var totalFrames:int = -1;
private static var texID:int = -1;
private static var baseWidth:int = -1;
private static var baseHeight:int = -1;
public function ZapRay(isPlayer:Boolean=false){
super();
autoVel = false;
if (ZapRay.texID == -1){
ZapRay.texID = RenderManager.getTexIDByName("Anim_ZapRay");
};
if (ZapRay.baseWidth == -1){
ZapRay.baseWidth = RenderManager.AnimationLibrary[ZapRay.texID].BmdArray[0].width;
ZapRay.baseHeight = RenderManager.AnimationLibrary[ZapRay.texID].BmdArray[0].height;
};
_spriteModel.init(ZapRay.texID, ZapRay.baseWidth, ZapRay.baseHeight);
_spriteModel.animated = true;
if (ZapRay.totalFrames == -1){
ZapRay.totalFrames = RenderManager.AnimationLibrary[ZapRay.texID].BmdArray.length;
};
radius = 40;
_spriteModel.TotalFrames = ZapRay.totalFrames;
_spriteModel.FrameRate = 1;
_spriteModel.CurrentFrame = Math.floor((Math.random() * 6));
x = 0;
y = 0;
w = ZapRay.baseWidth;
h = ZapRay.baseHeight;
s = 1;
r = 0;
}
public function setSourceAndTarget(inSource:Battery, intarget:Pig):void{
_source = inSource;
_targetObj = intarget;
}
public function kill():void{
purge = true;
}
override public function update():void{
var tVec:Object;
_life--;
if (_life < 0){
kill();
};
if (_spriteModel.CurrentFrame >= (_spriteModel.TotalFrames - 1)){
_spriteModel.CurrentFrame = 0;
};
r = MathFunction.getRadians(_source.x, _source.y, _targetObj.x, _targetObj.y);
var tDist:Number = MathFunction.getDistance(_source.x, _source.y, _targetObj.x, _targetObj.y);
var dMod:Number = (tDist / Battery.zapRadius);
tVec = MathFunction.getVector(r, ((w / 2) * s));
s = (dMod * 1.2);
x = (_source.x + tVec.x);
y = (_source.y + tVec.y);
super.update();
}
}
}//package com.truffle.engine.gameObjects
Section 110
//GameLevel (com.truffle.engine.objectSpaces.GameLevel)
package com.truffle.engine.objectSpaces {
import flash.events.*;
import com.truffle.*;
import flash.display.*;
import com.psiom.engine.*;
import com.truffle.engine.*;
import com.truffle.engine.engineComponents.*;
import com.psiom.engine.gameObject.*;
import com.psiom.graphics.*;
import com.truffle.engine.gameObjects.*;
import com.psiom.util.*;
public class GameLevel extends ObjectSpace {
private var _trufflesTotal:Number;// = 0
private var _targetTrackingScale:Number;// = 1
private var _trufflesCollected:Number;// = 0
private var _renderWidth:Number;// = 700
private var _frLeft:Number;// = 0
private var _debugArrow:DebugArrow;
private var _frWidth:Number;// = 0
private var _trackingMovementInertia:Number;// = 0
private var _pigsTotal:Number;// = 0
private var _motionX:Number;// = 0
private var _motionY:Number;// = 0
private var _renderHeight:Number;// = 450
private var _speedBaseY:Number;// = -1
private var _debugNodeRight:DebugNode;
private var _trackingScaleInertia:Number;// = 0
private var _collectables:Array;
private var _worldSpeedX:Number;// = 0
private var _worldSpeedY:Number;// = -1
private var _debugNodeCenter:DebugNode;
private var _frHeight:Number;// = 0
private var _cursor:Cursor;
private var _levelRunning:Boolean;// = false
private var _thudTimer:Number;// = 0
private var _pigs:Array;
private var _zapWindUpTimer:Number;// = 0
private var _deadPigs:Number;// = 0
private var _worldExtend:Number;// = 250
private var _worldHeight:Number;// = 660
private var _debugNodeLeft:DebugNode;
private var _targetTrackingOffsetY:Number;// = 0
private var _targetTrackingOffsetX:Number;// = 0
private var _sOffset:Number;// = 0
private var _currentTrackingScale:Number;// = 1
private var _worldPos:Object;
private var _tripleCollisionPointOffset:Number;// = 0.785398163397448
private var _levelData:LevelData;
private var _pigsRemaining:Number;// = 0
private var _currentTrackingOffsetX:Number;// = 0
private var _currentTrackingOffsetY:Number;// = 0
private var _poisonClouds:Array;
private var _diamondsCollected:Number;// = 0
private var _batteries:Array;
private var _diamondsTotal:Number;// = 0
private var _worldWidth:Number;// = 0x0400
private var _diffX:Number;// = 0
private var _diffY:Number;// = 0
private var _frTop:Number;// = 0
private var _lowestPig:Number;// = 0
private static var _instance:GameLevel;
public function GameLevel(){
_worldPos = {x:0, y:0};
_levelData = new LevelData();
_instance = this;
_pigs = new Array();
_collectables = new Array();
_poisonClouds = new Array();
_batteries = new Array();
super();
}
public function addSmokePuff(inX:Number, inY:Number, inCount:Number=1, inSpread:Number=0):void{
var sp:SmokePuff;
var i:int;
while (i < inCount) {
sp = new SmokePuff();
sp.x = (inX + ((Math.random() * inSpread) - (inSpread / 2)));
sp.y = (inY + ((Math.random() * inSpread) - (inSpread / 2)));
queueObject(sp);
i++;
};
}
public function emitMediumPoisonPuff(sourceObj:RenderableObject):void{
var pPuff:MediumBluePuff = new MediumBluePuff();
pPuff.x = (sourceObj.x + ((Math.random() * 30) - 15));
pPuff.y = (sourceObj.y + ((Math.random() * 30) - 15));
queueObject(pPuff);
}
private function resolveBitmapCollision(obj:RenderableObject, movementDist:Number):Object{
var subDistUnit:Number;
var subVec:Object;
var subVec_l:Object;
var subVec_r:Object;
var cObj:Object;
var totalDist:Number = movementDist;
var movementRadians:Number = MathFunction.getRadians(obj.x, obj.y, (obj.x + obj.vx), (obj.y + obj.vy));
var resultObj:Object = {col:false, distP:1, surfaceAngle:(movementRadians + (Math.PI / 2))};
var cx:Number = obj.x;
var cy:Number = obj.y;
var cx_l:Number = obj.x;
var cy_l:Number = obj.y;
var cx_r:Number = obj.x;
var cy_r:Number = obj.y;
var incDist:Number = 0;
subDistUnit = 10;
while (movementDist >= subDistUnit) {
cObj = getBitmapCollisionData(cx, cy, (movementRadians - _tripleCollisionPointOffset), obj.radius, false);
if (cObj.col){
resultObj.col = true;
break;
};
cObj = getBitmapCollisionData(cx, cy, (movementRadians + _tripleCollisionPointOffset), obj.radius, false);
if (cObj.col){
resultObj.col = true;
break;
};
cObj = getBitmapCollisionData(cx, cy, movementRadians, obj.radius, false);
if (cObj.col){
resultObj.col = true;
break;
};
incDist = (incDist + subDistUnit);
movementDist = (movementDist - subDistUnit);
subVec = MathFunction.getVector(movementRadians, subDistUnit);
cx = (cx + subVec.x);
cy = (cy + subVec.y);
subVec_l = MathFunction.getVector((movementRadians - _tripleCollisionPointOffset), subDistUnit);
cx_l = (cx_l + subVec_l.x);
cy_l = (cy_l + subVec_l.y);
subVec_r = MathFunction.getVector((movementRadians + _tripleCollisionPointOffset), subDistUnit);
cx_r = (cx_r + subVec_r.x);
cy_r = (cy_r + subVec_r.y);
};
subDistUnit = 1;
while (movementDist > 0) {
subVec = MathFunction.getVector(movementRadians, subDistUnit);
cObj = getBitmapCollisionData(cx, cy, (movementRadians - _tripleCollisionPointOffset), obj.radius, true);
if (cObj.col){
resultObj.surfaceAngle = cObj.surfaceAngle;
resultObj.col = true;
break;
};
cObj = getBitmapCollisionData(cx, cy, (movementRadians + _tripleCollisionPointOffset), obj.radius, true);
if (cObj.col){
resultObj.surfaceAngle = cObj.surfaceAngle;
resultObj.col = true;
break;
};
cObj = getBitmapCollisionData(cx, cy, movementRadians, obj.radius, true);
if (cObj.col){
resultObj.surfaceAngle = cObj.surfaceAngle;
resultObj.col = true;
break;
};
incDist = (incDist + subDistUnit);
movementDist = (movementDist - subDistUnit);
subVec = MathFunction.getVector(movementRadians, subDistUnit);
cx = (cx + subVec.x);
cy = (cy + subVec.y);
subVec_l = MathFunction.getVector((movementRadians - _tripleCollisionPointOffset), subDistUnit);
cx_l = (cx_l + subVec_l.x);
cy_l = (cy_l + subVec_l.y);
subVec_r = MathFunction.getVector((movementRadians + _tripleCollisionPointOffset), subDistUnit);
cx_r = (cx_r + subVec_r.x);
cy_r = (cy_r + subVec_r.y);
};
resultObj.distP = (incDist / totalDist);
if ((((incDist <= 0)) && ((movementDist <= 0)))){
resultObj.distP = 0;
};
return (resultObj);
}
public function get WorldHeight():Number{
return (_worldHeight);
}
public function get MotionX():Number{
return (_motionX);
}
public function get DiamondsCollected():Number{
return (_diamondsCollected);
}
private function onLevelLoaded(e:Event):void{
var levelObject:Object;
_levelData.removeEventListener("levelLoaded", onLevelLoaded);
var levelTop:BitmapData = new level_start(0x0400, 660);
EngineMain.Instance.GroundLayerObj.addNegativeObject(levelTop, {x:0x0200, y:330});
_worldSpeedY = _levelData.BaseSpeed;
_speedBaseY = _levelData.BaseSpeed;
trace(("_worldSpeedY: " + _worldSpeedY));
_levelRunning = true;
_trufflesTotal = 0;
_trufflesCollected = 0;
_diamondsTotal = 0;
_diamondsCollected = 0;
_pigsTotal = 0;
_pigsRemaining = 0;
for each (levelObject in _levelData.LevelDataArray) {
if (levelObject.Type == "truffle"){
_trufflesTotal++;
EngineMain.Instance.SuperTrufflesTotal++;
};
if (levelObject.Type == "diamond"){
_diamondsTotal++;
EngineMain.Instance.SuperDiamondsTotal++;
};
if (levelObject.Type == "pig"){
_pigsTotal++;
_pigsRemaining++;
EngineMain.Instance.SuperPigsRemaining++;
EngineMain.Instance.SuperPigsTotal++;
};
};
}
public function get MotionY():Number{
return (_motionY);
}
public function initLevel(filePath:String):void{
removeAllObjects();
_deadPigs = 0;
_worldPos = {x:0, y:0};
_worldSpeedX = 0;
_globalTranslateY = _worldSpeedY;
_frTop = 0;
_frLeft = 0;
_frWidth = 0;
_frHeight = 0;
_motionX = 0;
_motionY = 0;
_cursor = new Cursor();
addObject(_cursor);
_levelData.loadData((Constants.BASE_URL + filePath));
_levelData.addEventListener("levelLoaded", onLevelLoaded);
trace("GameLevel > initLevel > SETTING ENGINE MODE TO LOADING > file: ", filePath);
}
public function get TScale():Number{
return (_targetTrackingScale);
}
public function get GameLevelData():LevelData{
return (_levelData);
}
public function get TrufflesCollected():Number{
return (_trufflesCollected);
}
public function get WorldWidth():Number{
return (_worldWidth);
}
public function get PigsTotal():Number{
return (_pigsTotal);
}
public function get WorldPos():Object{
return (_worldPos);
}
public function addPoisonSmokePuff(inX:Number, inY:Number, inCount:Number=1, inSpread:Number=0):void{
var sp:PoisonPuff;
var i:int;
while (i < inCount) {
sp = new PoisonPuff();
sp.x = (inX + ((Math.random() * inSpread) - (inSpread / 2)));
sp.y = (inY + ((Math.random() * inSpread) - (inSpread / 2)));
queueObject(sp);
i++;
};
}
private function prepSolidObj(gClip:MovieClip, levelObject:Object):SolidObstacle{
gClip._internal.rotation = levelObject.rotation;
gClip._col.rotation = levelObject.rotation;
var solidObj:SolidObstacle = new SolidObstacle(levelObject.x, levelObject.y, levelObject.rotation);
solidObj.generateColourFromSource(gClip);
solidObj.generateAlphaFromSource(gClip);
return (solidObj);
}
public function get CursorObj():Cursor{
return (_cursor);
}
public function generateCollectableParticles(sourceObj:RenderableObject):void{
var stfx:StarFX;
var i:int;
while (i < 20) {
stfx = new StarFX();
stfx.x = (sourceObj.x + ((Math.random() * 5) - 2.5));
stfx.y = (sourceObj.y + ((Math.random() * 5) - 2.5));
queueObject(stfx);
i++;
};
}
public function get PigsRemaining():Number{
return (_pigsRemaining);
}
public function generatePoisonPuffs(sourceObj:RenderableObject):void{
var pPuff:TinyPoisonPuff;
var i:int;
while (i < 30) {
pPuff = new TinyPoisonPuff();
pPuff.x = (sourceObj.x + ((Math.random() * 20) - 10));
pPuff.y = (sourceObj.y + ((Math.random() * 20) - 10));
queueObject(pPuff);
i++;
};
}
public function get DiamondsTotal():Number{
return (_diamondsTotal);
}
public function get SOffset():Number{
return (_sOffset);
}
public function get CScale():Number{
return (_currentTrackingScale);
}
override public function update():void{
var levelObject:Object;
var movementDist:Number;
var movementAngle:Number;
var movementVec:Object;
var deflectionVel:Number;
var cObj:Object;
var dVecNormalized:Object;
var mVecNormalized:Object;
var averagedVecNormalized:Object;
var finalRadians:Number;
var finalVel:Object;
var minDist:Number;
var i:int;
var j:int;
var dist:Number;
var pigObj:Pig;
var solidObj:SolidObstacle;
var _local26:Pig;
var _local27:BitmapData;
var _local28:BitmapData;
var _local29:Truffle;
var _local30:PoisonShroom;
var _local31:PoisonCloud;
var _local32:Diamond;
var _local33:Battery;
var _local34:RenderableObject;
var _local35:RenderableObject;
var _local36:MovieClip;
var cloudObj:PoisonCloud;
var collectableObj:RenderableObject;
var batteryObj:Battery;
var zapRay:ZapRay;
var otherPig:Pig;
var force1:Number;
var force2:Number;
var deflectionAngle:Number;
var deflectionVector:Object;
var normalizedVector:Object;
var vp:Number;
var thudIDs:Array;
var thudID:int;
var alive:Boolean;
var p:int;
var zoomThreshholdW:Number;
var zoomThreshholdH:Number;
var minP:Number;
var minX:Number;
var minY:Number;
var maxX:Number;
var maxY:Number;
var centerX:Number;
var centerY:Number;
var hzs:Number;
if (_pigs.length > 0){
_frLeft = 0x0400;
_frWidth = 0;
_frTop = 660;
_frHeight = 0;
};
if (_levelRunning){
if ((((_pigs.length < 1)) && ((_deadPigs > 0)))){
EngineMain.Instance.gameover();
_levelRunning = false;
};
};
var levelObjects:Array = _levelData.getObjectsAtCurrentLocation((_worldPos.y - (_worldHeight + _worldExtend)));
for each (levelObject in levelObjects) {
if (levelObject){
if (levelObject.Type == "sign2"){
levelObject.Type = "sign";
};
switch (levelObject.Type){
case "pig":
_local26 = new Pig();
_local26.x = levelObject.x;
_local26.y = (levelObject.y + _worldPos.y);
addObject(_local26);
EngineMain.Instance.addToFinalPossibleScore(10000);
_pigs.push(_local26);
break;
case "largeHole":
_local27 = new large_hole_173x154(173, 154);
EngineMain.Instance.GroundLayerObj.addNegativeObject(_local27, levelObject);
break;
case "hole":
_local28 = new hole_128_01(128, 128);
EngineMain.Instance.GroundLayerObj.addNegativeObject(_local28, levelObject);
break;
case "truffle":
_local29 = new Truffle();
_local29.x = levelObject.x;
_local29.y = (levelObject.y + _worldPos.y);
addObject(_local29);
EngineMain.Instance.addToFinalPossibleScore((_local29.pointsVal * 0.75));
_collectables.push(_local29);
break;
case "poisonShroom":
_local30 = new PoisonShroom();
_local30.x = levelObject.x;
_local30.y = (levelObject.y + _worldPos.y);
addObject(_local30);
_collectables.push(_local30);
break;
case "poisonCloud":
_local31 = new PoisonCloud();
_local31.x = levelObject.x;
_local31.y = (levelObject.y + _worldPos.y);
addObject(_local31);
_poisonClouds.push(_local31);
_collectables.push(_local31);
break;
case "diamond":
_local32 = new Diamond();
_local32.x = levelObject.x;
_local32.y = (levelObject.y + _worldPos.y);
addObject(_local32);
EngineMain.Instance.addToFinalPossibleScore((_local32.pointsVal * 0.89));
_collectables.push(_local32);
break;
case "battery":
_local33 = new Battery();
_local33.x = levelObject.x;
_local33.y = (levelObject.y + _worldPos.y);
addObject(_local33);
_batteries.push(_local33);
break;
case "smallPipe":
EngineMain.Instance.GroundLayerObj.addSolidObject(prepSolidObj(new solidObj_smallPipeCross(), levelObject), levelObject);
break;
case "smallPipe2":
EngineMain.Instance.GroundLayerObj.addSolidObject(prepSolidObj(new solidObj_smallPipeElbow(), levelObject), levelObject);
break;
case "smallPipe3":
EngineMain.Instance.GroundLayerObj.addSolidObject(prepSolidObj(new solidObj_smallPipeStraight(), levelObject), levelObject);
break;
case "smallPipe4":
EngineMain.Instance.GroundLayerObj.addSolidObject(prepSolidObj(new solidObj_smallPipeTee(), levelObject), levelObject);
break;
case "largePipe":
solidObj = prepSolidObj(new solidObj_pipeStraight(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject, false);
_local34 = new RenderableObject();
_local34.setCustomBMD(solidObj.BmdColour);
_local34.x = levelObject.x;
_local34.y = (levelObject.y + _worldPos.y);
addObject(_local34);
break;
case "largePipe2":
solidObj = prepSolidObj(new solidObj_pipeElbow(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject, false);
_local35 = new RenderableObject();
_local35.setCustomBMD(solidObj.BmdColour);
_local35.x = levelObject.x;
_local35.y = (levelObject.y + _worldPos.y);
addObject(_local35);
break;
case "rocks":
solidObj = prepSolidObj(new solidObj_rocks1(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
case "rocks2":
solidObj = prepSolidObj(new solidObj_rocks2(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
case "rocks3":
solidObj = prepSolidObj(new solidObj_rocks3(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
case "rocks4":
solidObj = prepSolidObj(new solidObj_rocks4(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
case "rocks5":
solidObj = prepSolidObj(new solidObj_rocks5(), levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
case "sign":
_local36 = new solidObj_sign1();
if (Main.Instance.RegionMode == Main.RMODE_AUS){
_local36._internal.gotoAndStop(1);
} else {
_local36._internal.gotoAndStop(2);
};
solidObj = prepSolidObj(_local36, levelObject);
EngineMain.Instance.GroundLayerObj.addSolidObject(solidObj, levelObject);
break;
default:
trace(("levelObject.Type unrecognized. levelObject.Type: " + levelObject.Type));
};
};
};
i = 0;
j = 0;
dist = 0;
i = 0;
while (i < _poisonClouds.length) {
cloudObj = _poisonClouds[i];
if (cloudObj.purge){
_poisonClouds.splice(i, 1);
i--;
if (_poisonClouds.length < 1){
break;
};
};
if (cloudObj.x < 0){
cloudObj.x = 0;
cloudObj.vx = 5;
};
if (cloudObj.x > _worldWidth){
cloudObj.x = _worldWidth;
cloudObj.vx = -5;
};
if (cloudObj.y < -50){
cloudObj.kill();
};
movementDist = MathFunction.getDistance(cloudObj.x, cloudObj.y, (cloudObj.x + cloudObj.vx), (cloudObj.y + cloudObj.vy));
movementAngle = MathFunction.getRadians(cloudObj.x, cloudObj.y, (cloudObj.x + cloudObj.vx), (cloudObj.y + cloudObj.vy));
movementVec = MathFunction.getVector(movementAngle, movementDist);
deflectionVel = (movementDist * 0.95);
if (movementDist > 10){
deflectionVel = (deflectionVel * 0.9);
};
if (movementDist > 5){
deflectionVel = (deflectionVel * 0.9);
};
cObj = resolveBitmapCollision(cloudObj, movementDist);
if (Math.random() > 0.93){
emitPoisonPuff(cloudObj);
};
if (Math.random() > 0.93){
emitMediumPoisonPuff(cloudObj);
};
if ((((movementDist > 1)) && ((Math.random() > 0.6)))){
emitPoisonPuff(cloudObj);
};
if (((cObj.col) && ((cloudObj.y < (_worldHeight - cloudObj.radius))))){
dVecNormalized = MathFunction.getVector(cObj.surfaceAngle, 1.35);
mVecNormalized = MathFunction.getVector(movementAngle, 0.75);
averagedVecNormalized = {x:((dVecNormalized.x + mVecNormalized.x) / 1.8), y:((dVecNormalized.y + mVecNormalized.y) / 2)};
finalRadians = MathFunction.getRadians(0, 0, averagedVecNormalized.x, averagedVecNormalized.y);
finalVel = MathFunction.getVector(finalRadians, deflectionVel);
cloudObj.vx = finalVel.x;
cloudObj.vy = (finalVel.y * 0.7);
cloudObj.tr = (cloudObj.tr + (cloudObj.vx * 0.05));
cloudObj.torque = (cloudObj.torque * 0.75);
};
cloudObj.x = (cloudObj.x + (movementVec.x * cObj.distP));
cloudObj.y = (cloudObj.y + (movementVec.y * cObj.distP));
i++;
};
var highestPig:Number = _worldHeight;
_zapWindUpTimer--;
_thudTimer--;
i = 0;
while (i < _pigs.length) {
pigObj = _pigs[i];
if (pigObj.y < highestPig){
highestPig = pigObj.y;
};
if (pigObj.y > _lowestPig){
_lowestPig = pigObj.y;
};
if (pigObj.x < 0){
pigObj.x = 1;
pigObj.vx = 5;
};
if (pigObj.x > _worldWidth){
pigObj.x = (_worldWidth - 1);
pigObj.vx = -5;
};
if (pigObj.y < -50){
if (!pigObj.Dead){
SoundManager.Instance.playSoundID(SoundManager.SND_SQUEELSHORT, 0.75);
};
pigObj.kill();
};
if (pigObj.y > _worldHeight){
pigObj.y = _worldHeight;
pigObj.vy = -5;
};
if (pigObj.x < _frLeft){
_frLeft = pigObj.x;
};
if (pigObj.x > _frWidth){
_frWidth = pigObj.x;
};
if (pigObj.y < _frTop){
_frTop = pigObj.y;
};
if (pigObj.y > _frHeight){
_frHeight = pigObj.y;
};
if (pigObj.purge){
_pigsRemaining--;
EngineMain.Instance.SuperPigsRemaining--;
_deadPigs++;
_pigs.splice(i, 1);
i--;
if (_pigs.length < 1){
break;
};
};
if (!pigObj.Dead){
j = 0;
while (j < _collectables.length) {
collectableObj = _collectables[j];
minDist = pigObj.radius;
dist = MathFunction.getDistance(pigObj.x, pigObj.y, collectableObj.x, collectableObj.y);
if (dist < minDist){
if (collectableObj.pointsVal > 0){
generateCollectableParticles(collectableObj);
EngineMain.Instance.triggerScoreBlip(collectableObj.pointsVal);
if ((collectableObj is Truffle)){
_trufflesCollected++;
EngineMain.Instance.SuperTrufflesCollected++;
SoundManager.Instance.playSoundID(SoundManager.SND_TCOLLECT, 1.6);
if (Math.random() > 0.92){
if (Math.random() > 0.5){
SoundManager.Instance.playSoundID(SoundManager.SND_GRUNT1, 0.6);
} else {
SoundManager.Instance.playSoundID(SoundManager.SND_GRUNT2, 0.6);
};
};
};
if ((collectableObj is Diamond)){
_diamondsCollected++;
EngineMain.Instance.SuperDiamondsCollected++;
SoundManager.Instance.playSoundID(SoundManager.SND_DCOLLECT, 1.3);
};
} else {
SoundManager.Instance.playSoundID(SoundManager.SND_SQUEELSHORT, 0.75);
pigObj.poison();
addPoisonSmokePuff(collectableObj.x, collectableObj.y);
generatePoisonPuffs(collectableObj);
};
collectableObj.purge = true;
_collectables.splice(j, 1);
j--;
if (_collectables.length < 1){
break;
};
};
j++;
};
};
if (pigObj.Poisoned){
if ((Math.random() * pigObj.s) > 0.8){
emitPoisonPuff(pigObj, -1.5);
};
};
if (!pigObj.Dead){
j = 0;
while (j < _batteries.length) {
batteryObj = _batteries[j];
if (batteryObj.armed){
minDist = (pigObj.radius * pigObj.s);
dist = MathFunction.getDistance((pigObj.x + pigObj.vx), (pigObj.y + pigObj.vy), batteryObj.x, batteryObj.y);
if (dist < Battery.zapRadius){
if (_zapWindUpTimer < 0){
_zapWindUpTimer = 20;
if (Math.random() > 0.5){
SoundManager.Instance.playSoundID(SoundManager.SND_SPARK2, 0.4);
} else {
SoundManager.Instance.playSoundID(SoundManager.SND_SPARK3, 0.4);
};
};
batteryObj.trigger();
if (batteryObj.Charge >= batteryObj.ChargeMax){
batteryObj.armed = false;
zapRay = new ZapRay();
zapRay.setSourceAndTarget(batteryObj, pigObj);
addObject(zapRay);
SoundManager.Instance.playSoundID(SoundManager.SND_SQUEEL, 1);
SoundManager.Instance.playSoundID(SoundManager.SND_SPARK1, 1);
addSmokePuff(pigObj.x, pigObj.y, 5, 60);
pigObj.zap();
_batteries.splice(j, 1);
j--;
if (_batteries.length <= 0){
break;
};
};
};
if (dist < minDist){
};
};
j++;
};
};
j = 0;
while (j < _pigs.length) {
otherPig = _pigs[j];
if (pigObj != otherPig){
minDist = (((pigObj.radius * pigObj.s) / 2) + ((otherPig.radius * otherPig.s) / 2));
dist = MathFunction.getDistance((pigObj.x + pigObj.vx), (pigObj.y + pigObj.vy), (otherPig.x + otherPig.vx), (otherPig.y + otherPig.vy));
if (dist < minDist){
force1 = MathFunction.getDistance(0, 0, pigObj.vx, pigObj.vy);
force2 = MathFunction.getDistance(0, 0, otherPig.vx, otherPig.vy);
deflectionAngle = MathFunction.getRadians(pigObj.x, pigObj.y, otherPig.x, otherPig.y);
deflectionVector = MathFunction.getVector(deflectionAngle, ((1.5 + force1) * 1.5));
normalizedVector = MathFunction.getVector(deflectionAngle, 1);
pigObj.vx = (pigObj.vx - (deflectionVector.x * 0.6));
pigObj.vy = (pigObj.vy - (deflectionVector.y * 0.6));
pigObj.x = (pigObj.x - (normalizedVector.x * ((minDist - dist) / 3)));
pigObj.y = (pigObj.y - (normalizedVector.y * ((minDist - dist) / 3)));
otherPig.vx = (otherPig.vx + (deflectionVector.x * 0.2));
otherPig.vy = (otherPig.vy + (deflectionVector.y * 0.2));
otherPig.x = (otherPig.x + (normalizedVector.x * ((minDist - dist) / 3)));
otherPig.y = (otherPig.y + (normalizedVector.y * ((minDist - dist) / 3)));
otherPig.torque = ((Math.random() * 0.5) - 0.25);
pigObj.torque = ((Math.random() * 0.5) - 0.25);
if (force1 > 7.5){
if (((pigObj.camVis) || (otherPig.camVis))){
addSmokePuff((pigObj.x + (normalizedVector.x * (dist / 2))), (pigObj.y + (normalizedVector.y * (dist / 2))));
if (Math.random() > 0.5){
SoundManager.Instance.playSoundID(SoundManager.SND_GRUNT1, 0.2);
} else {
SoundManager.Instance.playSoundID(SoundManager.SND_GRUNT1, 0.2);
};
};
};
};
};
j++;
};
movementDist = MathFunction.getDistance(pigObj.x, pigObj.y, (pigObj.x + pigObj.vx), (pigObj.y + pigObj.vy));
movementAngle = MathFunction.getRadians(pigObj.x, pigObj.y, (pigObj.x + pigObj.vx), (pigObj.y + pigObj.vy));
movementVec = MathFunction.getVector(movementAngle, movementDist);
deflectionVel = (movementDist * 0.75);
if (deflectionVel < 1){
deflectionVel = 1;
};
cObj = resolveBitmapCollision(pigObj, movementDist);
if (cObj.col){
dVecNormalized = MathFunction.getVector(cObj.surfaceAngle, 1.25);
mVecNormalized = MathFunction.getVector(movementAngle, 0.8);
averagedVecNormalized = {x:((dVecNormalized.x + mVecNormalized.x) / 1.8), y:((dVecNormalized.y + mVecNormalized.y) / 2)};
if ((((movementDist > 7)) && ((_thudTimer < 0)))){
_thudTimer = 10;
vp = ((movementDist - 7) / 30);
if (vp > 0.5){
vp = 0.5;
};
vp = (vp * 0.8);
thudIDs = [SoundManager.SND_THUD1, SoundManager.SND_THUD2, SoundManager.SND_THUD3];
thudID = thudIDs[Math.floor(((Math.random() * thudIDs.length) - 0.001))];
SoundManager.Instance.playSoundID(thudID, vp);
};
finalRadians = MathFunction.getRadians(0, 0, averagedVecNormalized.x, averagedVecNormalized.y);
finalVel = MathFunction.getVector(finalRadians, deflectionVel);
pigObj.vx = finalVel.x;
pigObj.vy = (finalVel.y * 1.18);
pigObj.tr = (pigObj.tr + (pigObj.vx * 0.25));
pigObj.torque = (pigObj.torque * 0.75);
};
if (pigObj.y > -25){
pigObj.x = (pigObj.x + (movementVec.x * cObj.distP));
pigObj.y = (pigObj.y + (movementVec.y * cObj.distP));
};
i++;
};
var ts:Number = _speedBaseY;
var sp:Number = 0.05;
if (_frTop <= (_worldHeight / 2)){
if (_worldSpeedY < _speedBaseY){
_worldSpeedY = (_worldSpeedY + 0.025);
if (_worldSpeedY > _speedBaseY){
_worldSpeedY = _speedBaseY;
};
};
};
if (_frTop > (_worldHeight / 2)){
ts = (_speedBaseY - 2);
sp = 0.08;
};
if (_frTop > (_worldHeight / 1.5)){
ts = (_speedBaseY - 4);
sp = 0.15;
};
if (_frTop > (_worldHeight / 1.18)){
ts = (_speedBaseY - 6);
sp = 0.3;
};
if (_worldSpeedY > ts){
_worldSpeedY = (_worldSpeedY - sp);
} else {
_worldSpeedY = (_worldSpeedY + sp);
};
if (_lowestPig < 450){
_worldSpeedY = 0;
} else {
if (_worldSpeedY >= 0){
_worldSpeedY = _levelData.BaseSpeed;
};
};
if (_levelRunning){
if (((highestPig - _worldHeight) + -(_worldPos.y)) > _levelData.LevelHeight){
alive = false;
p = 0;
while (p < _pigs.length) {
if (!_pigs[p].Dead){
alive = true;
};
p++;
};
if (alive){
EngineMain.Instance.levelComplete();
_levelRunning = false;
};
};
};
_worldPos.y = (_worldPos.y + _worldSpeedY);
super.update();
_globalTranslateY = EngineMain.Instance.GroundLayerObj.CurrentSpeedY;
var minScale:Number = 0.684;
var zoomScale:Number = 1;
if (_pigs.length > 0){
_frWidth = (_frWidth - _frLeft);
_frHeight = (_frHeight - _frTop);
zoomThreshholdW = 400;
zoomThreshholdH = 350;
if (_frWidth > zoomThreshholdW){
zoomScale = ((1 - ((_frWidth - zoomThreshholdW) / (_worldWidth - zoomThreshholdW))) * 1);
if (zoomScale > 1){
zoomScale = 1;
};
if (zoomScale < minScale){
zoomScale = minScale;
};
};
if (_frHeight > zoomThreshholdH){
hzs = ((1 - ((_frHeight - zoomThreshholdH) / (_worldHeight - zoomThreshholdH))) * 1);
if (hzs < zoomScale){
zoomScale = hzs;
};
if (zoomScale > 1){
zoomScale = 1;
};
if (zoomScale < minScale){
zoomScale = minScale;
};
};
_targetTrackingScale = (_targetTrackingScale + ((zoomScale - _targetTrackingScale) * 0.2));
_currentTrackingScale = (_currentTrackingScale + (((_targetTrackingScale * 1) - _currentTrackingScale) * 0.01));
if ((((_currentTrackingScale > 0.95)) && ((_targetTrackingScale > 0.95)))){
_currentTrackingScale = (_currentTrackingScale * 1.001);
};
if (_currentTrackingScale > 1){
_currentTrackingScale = 1;
};
_sOffset = (zoomScale - RenderManager.Instance.Canvas.scaleX);
if (_sOffset < 0.001){
_sOffset = 0;
};
RenderManager.Instance.Canvas.scaleX = _currentTrackingScale;
RenderManager.Instance.Canvas.scaleY = _currentTrackingScale;
minP = ((RenderManager.Instance.Canvas.scaleX - minScale) / (1 - minScale));
minX = ((_renderWidth - _worldWidth) * minP);
minY = ((_renderHeight - _worldHeight) * minP);
maxX = 0;
maxY = 0;
centerX = ((0 - ((_frLeft + (_frWidth / 2)) - (_renderWidth / 2))) * RenderManager.Instance.Canvas.scaleX);
centerY = ((0 - ((_frTop + (_frHeight / 2)) - (_renderHeight / 2))) * RenderManager.Instance.Canvas.scaleY);
centerX = (centerX * minP);
centerY = (centerY * minP);
if (centerX < minX){
centerX = minX;
};
if (centerX > maxX){
centerX = maxX;
};
if (centerY < minY){
centerY = minY;
};
if (centerY > maxY){
centerY = maxY;
};
_diffX = ((centerX - RenderManager.Instance.Canvas.x) * SOffset);
_diffY = ((centerY - RenderManager.Instance.Canvas.y) * SOffset);
_targetTrackingOffsetX = (_targetTrackingOffsetX + ((centerX - _targetTrackingOffsetX) * 0.18));
_targetTrackingOffsetY = (_targetTrackingOffsetY + ((centerY - _targetTrackingOffsetY) * 0.2));
if (_targetTrackingOffsetX < minX){
_targetTrackingOffsetX = minX;
};
if (_targetTrackingOffsetX > maxX){
_targetTrackingOffsetX = maxX;
};
if (_targetTrackingOffsetY < minY){
_targetTrackingOffsetY = minY;
};
if (_targetTrackingOffsetY > maxY){
_targetTrackingOffsetY = maxY;
};
_currentTrackingOffsetX = (_currentTrackingOffsetX + ((_targetTrackingOffsetX - _currentTrackingOffsetX) * 0.1));
_currentTrackingOffsetY = (_currentTrackingOffsetY + ((_targetTrackingOffsetY - _currentTrackingOffsetY) * 0.05));
if (_currentTrackingOffsetX < minX){
_currentTrackingOffsetX = minX;
};
if (_currentTrackingOffsetX > maxX){
_currentTrackingOffsetX = maxX;
};
if (_currentTrackingOffsetY < minY){
_currentTrackingOffsetY = minY;
};
if (_currentTrackingOffsetY > maxY){
_currentTrackingOffsetY = maxY;
};
};
_motionX = (_currentTrackingOffsetX - RenderManager.Instance.Canvas.x);
_motionY = (_currentTrackingOffsetY - RenderManager.Instance.Canvas.y);
RenderManager.Instance.Canvas.x = _currentTrackingOffsetX;
RenderManager.Instance.Canvas.y = _currentTrackingOffsetY;
}
public function get DiffX():Number{
return (_diffX);
}
private function getBitmapCollisionData(inCX:Number, inCY:Number, inRadians:Number, inRadius:Number, getSuraceAngle:Boolean):Object{
var lVector:Object;
var rVector:Object;
var fRadians:Number;
var collisionObj:Object = {col:false, surfaceAngle:0};
var targetVector:Object = MathFunction.getVector(inRadians, (inRadius / 2));
if (EngineMain.Instance.GroundLayerObj.CollisionMap.getPixel((inCX + targetVector.x), (inCY + targetVector.y)) == 0xFFFFFF){
collisionObj.col = true;
if (!getSuraceAngle){
return (collisionObj);
};
} else {
return (collisionObj);
};
var lTest:int;
var rTest:int;
var leftSurfaceTestAngle:Number = (inRadians - (Math.PI / 4));
var rightSurfaceTestAngle:Number = (inRadians + (Math.PI / 4));
if (((collisionObj.col) && (getSuraceAngle))){
lTest = 0;
while (lTest < inRadius) {
lVector = MathFunction.getVector(leftSurfaceTestAngle, lTest);
if (EngineMain.Instance.GroundLayerObj.CollisionMap.getPixel((inCX + lVector.x), (inCY + lVector.y)) == 0xFFFFFF){
break;
};
lTest++;
};
rTest = 0;
while (rTest < inRadius) {
rVector = MathFunction.getVector(rightSurfaceTestAngle, rTest);
if (EngineMain.Instance.GroundLayerObj.CollisionMap.getPixel((inCX + rVector.x), (inCY + rVector.y)) == 0xFFFFFF){
break;
};
rTest++;
};
if ((((lTest == inRadius)) && ((rTest == inRadius)))){
collisionObj.surfaceAngle = (inRadians + Math.PI);
return (collisionObj);
};
if (lTest == inRadius){
fRadians = MathFunction.getRadians(rVector.x, rVector.y, targetVector.x, targetVector.y);
collisionObj.surfaceAngle = (fRadians - (Math.PI / 2));
return (collisionObj);
};
if (rTest == inRadius){
fRadians = MathFunction.getRadians(lVector.x, lVector.y, targetVector.x, targetVector.y);
collisionObj.surfaceAngle = (fRadians + (Math.PI / 2));
return (collisionObj);
};
fRadians = MathFunction.getRadians(lVector.x, lVector.y, rVector.x, rVector.y);
collisionObj.surfaceAngle = (fRadians + (Math.PI / 2));
};
return (collisionObj);
}
public function setPigScale(val:Number):void{
var i:int;
while (i < _pigs.length) {
_pigs[i].s = val;
i++;
};
}
public function emitPoisonPuff(sourceObj:RenderableObject, inVY:Number=0):void{
var pPuff:TinyPoisonPuff = new TinyPoisonPuff();
pPuff.x = (sourceObj.x + ((Math.random() * 20) - 10));
pPuff.y = (sourceObj.y + ((Math.random() * 20) - 10));
pPuff.vx = (pPuff.vx * 1.25);
pPuff.vy = (1.8 + (Math.random() * 0.5));
if (inVY != 0){
pPuff.vy = inVY;
};
queueObject(pPuff);
}
public function get TrufflesTotal():Number{
return (_trufflesTotal);
}
public function get DiffY():Number{
return (_diffY);
}
public function get WorldSpeed():Object{
return ({x:_worldSpeedX, y:_worldSpeedY});
}
public static function get Instance():GameLevel{
return (_instance);
}
}
}//package com.truffle.engine.objectSpaces
Section 111
//EngineMain (com.truffle.engine.EngineMain)
package com.truffle.engine {
import flash.events.*;
import com.truffle.*;
import flash.display.*;
import com.psiom.engine.*;
import com.truffle.engine.engineComponents.*;
import com.truffle.engine.objectSpaces.*;
public class EngineMain extends EngineBase {
private var _levelCompleteDisplay:MovieClip;
private var _levelScore:Number;// = 0
private var _levelLeadOut:Number;// = 115
private var _debugView:Boolean;// = false
private var _initialized:Boolean;// = false
private var _cursorOX:Number;// = 0
private var _cursorOY:Number;// = 0
private var _scoreBlip:MovieClip;
private var _currentLevelFile:String;
private var _mainMenuButton:BaseButton;
private var _gameLevel:GameLevel;
private var _levelNumDisplayTicks:Number;// = 0
private var _groundLayer:GroundLayer;
private var _totalScore:Number;// = 0
private var _superDiamondsCollected:Number;// = 0
private var _bonusScore:Number;// = 0
private var _totalPossibleScore:Number;// = 0
private var _gameplayLeadInTimer:Number;// = 87
private var _soundButton:MovieClip;
private var _UILayer_gameplay:MovieClip;
private var _initialSetup:Boolean;// = false
private var _superTrufflesCollected:Number;// = 0
private var _cursorX:Number;// = 0
private var _cursorY:Number;// = 0
private var _superPigsTotal:Number;// = 0
private var _playedOnce:Boolean;// = false
private var _state:Number;// = 0
private var _secondaryState:Number;// = 0
private var _scoreStack:Number;// = 0
private var _superPigsRemaining:Number;// = 0
private var _gameOverDisplay:MovieClip;
private var _levelNumDisplay:MovieClip;
private var _superDiamondsTotal:Number;// = 0
private var _mainScore:MovieClip;
private var _superTrufflesTotal:Number;// = 0
public static var STATE_GAMEOVER:int = 5;
public static var STATE_LOADING:int = 4;
public static var STATE_LEVELCOMPLETE:int = 3;
public static var STATE_GAMEPLAY:int = 1;
public static var STATE_INACTIVE:int = 0;
private static var _instance:EngineMain;
public static var STATE_PAUSED:int = 2;
public function EngineMain(){
super();
_instance = this;
_gameLevel = new GameLevel();
_groundLayer = new GroundLayer();
_customRenderElements.push(_groundLayer);
setRestState();
init();
}
public function closeGame():void{
_state = EngineMain.STATE_INACTIVE;
_totalScore = (_totalScore + _levelScore);
_levelScore = 0;
}
public function init():void{
_initialized = true;
_UILayer_gameplay = new MovieClip();
Main.Instance.EngineUI.addChild(_UILayer_gameplay);
_mainMenuButton = new ui_mainMenuButton();
_UILayer_gameplay.addChild(_mainMenuButton);
_mainMenuButton.x = 114;
_mainMenuButton.y = 13;
_mainMenuButton.cacheAsBitmap = true;
_levelCompleteDisplay = new ui_levelComplete();
_levelCompleteDisplay.x = 135;
_levelCompleteDisplay.y = 175;
_levelCompleteDisplay.alpha = 0;
_levelCompleteDisplay.visible = false;
_levelCompleteDisplay.mouseEnabled = false;
_levelCompleteDisplay.mouseChildren = false;
_UILayer_gameplay.addChild(_levelCompleteDisplay);
_gameOverDisplay = new ui_gameOver();
_gameOverDisplay.x = 342;
_gameOverDisplay.y = 220;
_gameOverDisplay.alpha = 0;
_gameOverDisplay.visible = false;
_gameOverDisplay.mouseEnabled = false;
_gameOverDisplay.mouseChildren = false;
_UILayer_gameplay.addChild(_gameOverDisplay);
_levelNumDisplay = new ui_roundNumber();
_levelNumDisplay.x = 335;
_levelNumDisplay.y = 220;
_levelNumDisplay.gotoAndStop(1);
_levelNumDisplay.alpha = 0;
_levelNumDisplay.visible = false;
_levelNumDisplay.mouseEnabled = false;
_levelNumDisplay.mouseChildren = false;
_UILayer_gameplay.addChild(_levelNumDisplay);
_scoreBlip = new ui_scoreBlip();
_UILayer_gameplay.addChild(_scoreBlip);
_scoreBlip.x = 610;
_scoreBlip.y = 25;
_scoreBlip.visible = true;
_scoreBlip.alpha = 0;
_UILayer_gameplay.mouseEnabled = false;
_currentCamera = new EngineCamera(Main.sceneWidth, Main.sceneHeight);
_currentSpace = new ObjectSpace();
}
public function get PlayerScore():Number{
return (_levelScore);
}
private function setNextLevel():void{
LevelSelect.Instance.advanceLevel();
}
public function set SuperPigsTotal(val:Number):void{
_superPigsTotal = val;
}
public function get huntLeadIn():Number{
return (_gameplayLeadInTimer);
}
public function get UILayer():MovieClip{
return (_UILayer_gameplay);
}
override public function clickInput(x:Number, y:Number):void{
_currentSpace.clickInput(x, y);
if (_state == EngineMain.STATE_GAMEPLAY){
_cursorX = Main.Instance.mouseX;
_cursorY = Main.Instance.mouseY;
_cursorOX = EngineCamera.Instance.x;
_cursorOY = EngineCamera.Instance.y;
};
}
public function generateRandomSeed(inArray:Array):void{
inArray = [Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random(), Math.random()];
}
public function get MainMenuButton():BaseButton{
return (_mainMenuButton);
}
public function addBonusScore(val:Number):void{
_bonusScore = (_bonusScore + val);
}
public function get SuperPigsRemaining():Number{
return (_superPigsRemaining);
}
public function get huntLeadOut():Number{
return (_levelLeadOut);
}
public function setLevelNumDisplay():void{
_levelNumDisplayTicks = 95;
var lnumstr:String = String((LevelSelect.Instance.LevelNum + 1));
if (lnumstr.length < 2){
lnumstr = ("0" + lnumstr);
};
_levelNumDisplay._num.text = lnumstr;
}
public function startNewLevel(filePath:String):void{
setLevelNumDisplay();
_levelCompleteDisplay.visible = false;
_levelCompleteDisplay.alpha = 0;
_gameOverDisplay.visible = false;
_gameOverDisplay.alpha = 0;
_currentLevelFile = filePath;
SoundManager.Instance.setMusicLoop(1);
_levelScore = 0;
var lnum:int = (LevelSelect.Instance.LevelNum + 1);
var lnumstr:String = String(lnum);
if (lnumstr.length < 2){
lnumstr = ("0" + lnumstr);
};
Main.Instance.ga_trackEvent("truffleHunter", ("level" + lnumstr), "start");
Main.Instance.ga_trackPageView((("truffleHunter/game/level" + lnumstr) + "/start"));
_levelLeadOut = 115;
_groundLayer.reset();
_currentSpace.removeAllObjects();
_currentSpace = new GameLevel();
GameLevel.Instance.initLevel(filePath);
GameLevel.Instance.GameLevelData.addEventListener("levelLoaded", onGameLevelLoaded);
_state = EngineMain.STATE_LOADING;
_gameplayLeadInTimer = 87;
_playedOnce = true;
}
public function get SuperDiamondsTotal():Number{
return (_superDiamondsTotal);
}
public function get SuperDiamondsCollected():Number{
return (_superDiamondsCollected);
}
public function reset():void{
_secondaryState = 0;
_state = 0;
}
public function resetTotalScore():void{
trace("resetting total score");
_totalScore = 0;
_superTrufflesTotal = 0;
_superTrufflesCollected = 0;
_superDiamondsTotal = 0;
_superDiamondsCollected = 0;
_superPigsTotal = 0;
_superPigsRemaining = 0;
}
public function get SuperTrufflesCollected():Number{
return (_superTrufflesCollected);
}
public function set SuperPigsRemaining(val:Number):void{
_superPigsRemaining = val;
}
public function get SuperTrufflesTotal():Number{
return (_superTrufflesTotal);
}
public function get State():Number{
return (_state);
}
private function onGameLevelLoaded(e:Event):void{
_state = EngineMain.STATE_GAMEPLAY;
}
public function get SuperPigsTotal():Number{
return (_superPigsTotal);
}
public function set SuperDiamondsTotal(val:Number):void{
_superDiamondsTotal = val;
}
public function set SuperDiamondsCollected(val:Number):void{
_superDiamondsCollected = val;
}
public function get FinalScoreWithCommas():String{
return (formatNumberStringWithCommas(String(FinalScore)));
}
public function get GroundLayerObj():GroundLayer{
return (_groundLayer);
}
public function get Initialized():Boolean{
return (_initialized);
}
public function gameover():void{
trace("@@@ EngineMain > GAMEOVER");
SoundManager.Instance.playSoundID(SoundManager.SND_GAMEOEVER2, 0.5);
_totalScore = (_totalScore + _levelScore);
_levelScore = 0;
_state = EngineMain.STATE_GAMEOVER;
}
public function triggerScoreBlip(val:Number):void{
_levelScore = (_levelScore + val);
_scoreStack = (_scoreStack + val);
_scoreBlip.visible = true;
_scoreBlip._points.text = ("+" + String(_scoreStack));
_scoreBlip.alpha = 1;
_scoreBlip.scaleX = 1;
_scoreBlip.scaleY = 1;
_scoreBlip._base.gotoAndStop(0);
}
public function set SuperTrufflesTotal(val:Number):void{
_superTrufflesTotal = val;
}
override public function update():void{
var i:int;
super.update();
if (_gameplayLeadInTimer >= 0){
_gameplayLeadInTimer--;
};
if (_state == EngineMain.STATE_LEVELCOMPLETE){
_levelCompleteDisplay.alpha = (_levelCompleteDisplay.alpha + ((1 - _levelCompleteDisplay.alpha) * 0.2));
if (_levelCompleteDisplay.alpha > 0.98){
_levelCompleteDisplay.alpha = 1;
};
_levelLeadOut--;
if (_levelLeadOut < 0){
setNextLevel();
};
} else {
_levelCompleteDisplay.alpha = (_levelCompleteDisplay.alpha * 0.9);
};
if (_levelCompleteDisplay.alpha < 0.02){
_levelCompleteDisplay.visible = false;
} else {
_levelCompleteDisplay.visible = true;
};
if (_state == EngineMain.STATE_GAMEOVER){
_levelLeadOut--;
if (_levelLeadOut < 0){
closeGame();
Main.Instance.gameover();
};
_gameOverDisplay.alpha = (_gameOverDisplay.alpha + ((1 - _gameOverDisplay.alpha) * 0.2));
if (_gameOverDisplay.alpha > 0.98){
_gameOverDisplay.alpha = 1;
};
} else {
_gameOverDisplay.alpha = (_gameOverDisplay.alpha * 0.9);
};
if (_gameOverDisplay.alpha < 0.02){
_gameOverDisplay.visible = false;
} else {
_gameOverDisplay.visible = true;
};
if ((((((_state == EngineMain.STATE_GAMEPLAY)) || ((_state == EngineMain.STATE_GAMEOVER)))) || ((_state == EngineMain.STATE_LEVELCOMPLETE)))){
i = 0;
while (i < _customRenderElements.length) {
_customRenderElements[i].updateWithCamera(_currentCamera);
i++;
};
_currentSpace.update();
};
_levelNumDisplayTicks--;
if (_levelNumDisplayTicks > 40){
_levelNumDisplay.scaleX = 1;
} else {
if (_levelNumDisplay.scaleX > 0){
_levelNumDisplay.scaleX = (_levelNumDisplay.scaleX - 0.0002);
};
_levelNumDisplay.scaleX = (_levelNumDisplay.scaleX * (1 - ((1 - _levelNumDisplay.scaleX) * 0.5)));
};
if (_levelNumDisplayTicks > 20){
_levelNumDisplay.alpha = 1;
} else {
_levelNumDisplay.alpha = (_levelNumDisplay.alpha * 0.9);
};
if (_levelNumDisplayTicks < 0){
_levelNumDisplay.alpha = 0;
_levelNumDisplay.visible = false;
} else {
_levelNumDisplay.visible = true;
};
_levelNumDisplay.scaleY = _levelNumDisplay.scaleX;
if (_scoreBlip._base.currentFrame < (_scoreBlip._base.totalFrames - 1)){
_scoreBlip._base.gotoAndStop((_scoreBlip._base.currentFrame + 1));
};
if (_scoreBlip._base.currentFrame > 20){
_scoreBlip.alpha = (_scoreBlip.alpha * 0.94);
_scoreBlip.scaleX = (_scoreBlip.scaleX * 0.94);
_scoreBlip.scaleY = (_scoreBlip.scaleY * 0.94);
};
if (_scoreBlip.alpha < 0.75){
_scoreStack = 0;
};
if (_scoreBlip.alpha < 0.1){
_scoreBlip.visible = false;
_scoreBlip._base.gotoAndStop(0);
};
}
public function formatNumberStringWithCommas(inString:String):String{
var k:Number;
var d:Number;
var fieldPieces:Array = inString.split("");
fieldPieces.reverse();
var finalString:String = "";
k = 0;
while (k < fieldPieces.length) {
finalString = (fieldPieces[k] + finalString);
d = (k % 3);
if (k < (fieldPieces.length - 1)){
if (d == 2){
finalString = ("," + finalString);
};
};
k++;
};
return (finalString);
}
public function set SuperTrufflesCollected(val:Number):void{
_superTrufflesCollected = val;
}
public function setRestState():void{
_state = EngineMain.STATE_INACTIVE;
}
public function get FinalScore():Number{
var ls:Number = _levelScore;
_levelScore = 0;
return ((_totalScore + ls));
}
public function levelComplete():void{
_levelLeadOut = 210;
SoundManager.Instance.playSoundID(SoundManager.SND_WIN, 0.5);
_state = EngineMain.STATE_LEVELCOMPLETE;
_levelScore = (_levelScore + (GameLevel.Instance.PigsRemaining * 10000));
var lname:String = _currentLevelFile.substr(0, (_currentLevelFile.length - 4));
lname = lname.substr(7, _currentLevelFile.length);
Main.Instance.checkAndSetLevelBest(lname, _levelScore);
Main.Instance.setUnlockLevel((LevelSelect.Instance.LevelNum + 1));
_totalScore = (_totalScore + _levelScore);
_levelCompleteDisplay._levelScore.text = formatNumberStringWithCommas(String(_levelScore));
_levelCompleteDisplay._totalScore.text = formatNumberStringWithCommas(String(_totalScore));
_levelCompleteDisplay._trufflesCollected.text = ((String(GameLevel.Instance.TrufflesCollected) + "/") + String(GameLevel.Instance.TrufflesTotal));
_levelCompleteDisplay._diamondsCollected.text = ((String(GameLevel.Instance.DiamondsCollected) + "/") + String(GameLevel.Instance.DiamondsTotal));
_levelCompleteDisplay._pigsLeft.text = ((String(GameLevel.Instance.PigsRemaining) + "/") + String(GameLevel.Instance.PigsTotal));
}
public function set State(inState:Number):void{
_state = inState;
}
public function addToFinalPossibleScore(inVal:Number):void{
_totalPossibleScore = (_totalPossibleScore + inVal);
}
public function get FinalPossibleScore():Number{
return (_totalPossibleScore);
}
public static function get Instance():EngineMain{
return (_instance);
}
}
}//package com.truffle.engine
Section 112
//BaseButton (com.truffle.BaseButton)
package com.truffle {
import flash.events.*;
import flash.display.*;
public class BaseButton extends BaseElement {
private var _rollHLStrength:Number;// = 1
private var _rollActive:Boolean;// = false
public var _roll:MovieClip;
private var _toggleState:int;// = -1
private var _vmodeArray:Array;
private var _baseX:Number;
private var _numStates:int;// = 2
private var _baseY:Number;
private var _baseWidth:Number;
private var _baseHeight:Number;
private var _basePositionInit:Boolean;// = false
public var _base:MovieClip;
public function BaseButton(){
super();
_baseX = x;
_baseY = y;
_baseWidth = width;
_baseHeight = height;
if (_roll){
_roll.alpha = 0;
addEventListener(MouseEvent.MOUSE_OVER, onRollOn);
addEventListener(MouseEvent.MOUSE_OUT, onRollOut);
_roll.mouseEnabled = false;
_roll.mouseChildren = false;
};
if (_base){
_base.mouseEnabled = false;
_base.mouseChildren = false;
};
buttonMode = true;
visible = true;
alpha = 1;
}
public function set VmodeArray(a:Array):void{
_vmodeArray = a;
if (!a){
trace("### WARNING: VmodeArray is broken");
return;
};
if (a.length == 0){
trace("### WARNING: VmodeArray is empty");
};
}
public function set RollHLStrength(n:Number):void{
_rollHLStrength = n;
}
public function quickHide():void{
visible = false;
alpha = 0;
}
private function onRollEnterFrame(event:Event):void{
if (!_basePositionInit){
_baseX = x;
_baseY = y;
_basePositionInit = true;
};
if (alpha < 0.75){
_rollActive = false;
};
if (_rollActive){
_roll.visible = true;
if (_roll.alpha > (_rollHLStrength - 0.02)){
_roll.alpha = _rollHLStrength;
removeEventListener("enterFrame", onRollEnterFrame);
};
_roll.alpha = (_roll.alpha + ((_rollHLStrength - _roll.alpha) * 0.33));
} else {
if (_roll.alpha < 0.02){
_roll.visible = false;
removeEventListener("enterFrame", onRollEnterFrame);
};
_roll.alpha = (_roll.alpha + ((0 - _roll.alpha) * 0.33));
};
width = (_baseWidth + (5 * _roll.alpha));
height = (_baseHeight * (width / _baseWidth));
x = (_baseX - ((width - _baseWidth) / 2));
y = (_baseY - ((height - _baseHeight) / 2));
}
public function get CurrentState():int{
return (_toggleState);
}
public function toggleState():void{
if (_toggleState == -1){
trace(("### WARNING: toggleState() called on a button not initialized for toggling: " + name));
};
_toggleState++;
if (_toggleState > (_numStates - 1)){
_toggleState = 0;
};
if (_base){
_base.gotoAndStop((_toggleState + 1));
};
if (_roll){
_roll.gotoAndStop((_toggleState + 1));
};
}
public function makeToggle(defaultState:int=0, numStates:int=2):void{
if (numStates < 2){
trace(((("### WARNING: number of states in toggle button is out of wack. numStates: " + numStates) + " on ") + name));
};
_numStates = numStates;
if (defaultState < 0){
defaultState = 0;
};
if (defaultState > (_numStates - 1)){
defaultState = (_numStates - 1);
};
if (_base){
_base.gotoAndStop((defaultState + 1));
};
if (_roll){
_roll.gotoAndStop((defaultState + 1));
};
_toggleState = defaultState;
}
public function get VmodeArray():Array{
return (_vmodeArray);
}
private function onRollOut(event:Event):void{
_rollActive = false;
addEventListener("enterFrame", onRollEnterFrame);
}
private function onRollOn(event:Event):void{
_rollActive = true;
addEventListener("enterFrame", onRollEnterFrame);
}
}
}//package com.truffle
Section 113
//BaseElement (com.truffle.BaseElement)
package com.truffle {
import flash.events.*;
import flash.display.*;
public class BaseElement extends MovieClip {
protected var vismode:int;// = 0
private var _stageHeight:Number;// = 450
private var _stageWidth:Number;// = 700
private var _fadeUpDelayTicks:Number;// = 0
private var _fadeSpeed:Number;// = 0.33
private var _fadeUpDelayBase:Number;// = 0
public function BaseElement(){
super();
visible = false;
alpha = 0;
}
public function positionInsetFromObjY(objRef:MovieClip, insetY:Number):void{
y = (objRef.y + insetY);
}
public function centerY(objRef:MovieClip=null):void{
var ry:Number;
if (objRef){
ry = (objRef.y + ((objRef.height - height) / 2));
} else {
ry = ((_stageHeight - height) / 2);
};
y = ry;
}
public function centerX(objRef:MovieClip=null):void{
var rx:Number;
if (objRef){
rx = (objRef.x + ((objRef.width - width) / 2));
} else {
rx = ((_stageWidth - width) / 2);
};
x = rx;
}
public function set VisMode(v:int):void{
if (vismode != v){
removeEventListener("enterFrame", onVisModeEnterFrame);
addEventListener("enterFrame", onVisModeEnterFrame);
};
vismode = v;
}
public function set FadeSpeed(n:Number):void{
_fadeSpeed = n;
}
private function onVisModeEnterFrame(event:Event):void{
if (vismode == 0){
mouseEnabled = false;
mouseChildren = false;
_fadeUpDelayTicks = 0;
alpha = (alpha + ((0 - alpha) * _fadeSpeed));
if (alpha < 0.02){
visible = false;
removeEventListener("enterFrame", onVisModeEnterFrame);
};
} else {
mouseEnabled = true;
mouseChildren = true;
if (_fadeUpDelayTicks < _fadeUpDelayBase){
_fadeUpDelayTicks++;
} else {
visible = true;
alpha = (alpha + ((1 - alpha) * _fadeSpeed));
if (alpha > 0.98){
alpha = 1;
removeEventListener("enterFrame", onVisModeEnterFrame);
};
};
};
}
public function get VisMode():int{
return (vismode);
}
public function set FadeUpDelay(n:Number):void{
_fadeUpDelayBase = n;
}
}
}//package com.truffle
Section 114
//Constants (com.truffle.Constants)
package com.truffle {
public class Constants {
public static var BASE_URL:String = "http://games.seek.com.au/trufflehunter/";
public function Constants(){
super();
}
}
}//package com.truffle
Section 115
//LeaderBoard (com.truffle.LeaderBoard)
package com.truffle {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class LeaderBoard extends BaseElement {
private var _pageIndex:Number;// = 0
public var _row10:MovieClip;
public var _row01:MovieClip;
public var _row02:MovieClip;
public var _row03:MovieClip;
public var _row04:MovieClip;
public var _row05:MovieClip;
public var _row06:MovieClip;
public var _row08:MovieClip;
public var _right:MovieClip;
public var _left:MovieClip;
public var _row07:MovieClip;
public var _row09:MovieClip;
private var _scoreData:XML;
private var _entryList:Array;
private var _rows:Array;
public function LeaderBoard(){
super();
_rows = [_row01, _row02, _row03, _row04, _row05, _row06, _row07, _row08, _row09, _row10];
var i:int;
while (i < _rows.length) {
_rows[i].visible = false;
_rows[i]._flag.gotoAndStop(1);
i++;
};
_left.visible = false;
_left.addEventListener(MouseEvent.CLICK, onLeft);
_right.addEventListener(MouseEvent.CLICK, onRight);
}
private function onXMLLoad(e:Event):void{
var e = e;
_scoreData = new XML(URLLoader(e.target).data);
trace("scores loaded");
//unresolved jump
var _slot1 = e;
trace("error loading");
onParseError(_slot1);
parseXML();
}
private function onLeft(event:Event):void{
_right.visible = true;
_pageIndex--;
setScoresDisplay();
}
private function parseXML():void{
var i:int;
var hsr:MovieClip;
var entry:Object;
_entryList = new Array();
trace("updating display");
var scoreList:XMLList = _scoreData.entry;
for each (entry in scoreList) {
_entryList.push({Name:unescape(entry.@pname.toString()), Score:entry.@score.toString(), Country:entry.@miscellaneous1.toString()});
trace(("entry.@scor.toString(): " + entry.@score.toString()));
trace(("entry.@miscellaneous4.toString(): " + entry.@miscellaneous4.toString()));
trace(("entry.@miscellaneous5.toString(): " + entry.@miscellaneous5.toString()));
trace("---");
};
setScoresDisplay();
}
private function onParseError(e:TypeError):void{
trace(e.toString());
}
private function onReadError(e:ErrorEvent):void{
trace(((e.type + ": ") + e.text));
}
public function loadScores():void{
var u:URLRequest;
var vars:URLVariables;
var nocache:uint;
_pageIndex = 0;
trace("load scores");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onXMLLoad);
loader.addEventListener(IOErrorEvent.IO_ERROR, onReadError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onReadError);
u = new URLRequest("http://stats.soap.com.au/highscore/highscoreXML.php");
nocache = uint((Math.random() * uint.MAX_VALUE));
vars = new URLVariables();
vars["gameid"] = 43;
vars["start"] = 0;
vars["count"] = 101;
vars["nocache"] = nocache.toString(36);
u.method = URLRequestMethod.GET;
u.data = vars;
loader.load(u);
}
private function setScoresDisplay():void{
var j:Number;
var k:Number;
var fieldPieces:Array;
var finalScore:String;
var d:Number;
_right.visible = true;
if (_pageIndex >= 9){
_pageIndex = 9;
_right.visible = false;
};
if (_pageIndex <= 0){
_pageIndex = 0;
_left.visible = false;
};
var i:int;
while (i < 10) {
j = (i + (_pageIndex * 10));
if (_entryList){
if (_entryList[j]){
_rows[i]._nameField.text = _entryList[j].Name.substr(0, 16);
if (_entryList[j].Country == "AU"){
_rows[i]._flag.gotoAndStop(1);
} else {
_rows[i]._flag.gotoAndStop(2);
};
fieldPieces = _entryList[j].Score.split("");
fieldPieces.reverse();
finalScore = "";
k = 0;
while (k < fieldPieces.length) {
finalScore = (fieldPieces[k] + finalScore);
d = (k % 3);
if (k < (fieldPieces.length - 1)){
if (d == 2){
finalScore = ("," + finalScore);
};
};
k++;
};
_rows[i]._scoreField.text = finalScore;
_rows[i]._rankField.text = String((j + 1));
_rows[i].visible = true;
} else {
_rows[i].visible = false;
};
} else {
_rows[i].visible = false;
};
i++;
};
}
private function onRight(event:Event):void{
_left.visible = true;
_pageIndex++;
setScoresDisplay();
}
}
}//package com.truffle
Section 116
//LevelSelect (com.truffle.LevelSelect)
package com.truffle {
import flash.events.*;
import flash.display.*;
import com.psiom.util.*;
public class LevelSelect extends BaseElement {
private var _levelList:Array;
private var _pageIndex:Number;// = 0
private var _levelScores:Array;
public var _right:MovieClip;
public var _left:MovieClip;
public var _ls01:MovieClip;
public var _ls02:MovieClip;
public var _ls03:MovieClip;
public var _ls04:MovieClip;
public var _ls05:MovieClip;
public var _ls06:MovieClip;
private var _currentLevel:int;// = -1
private static var _instance:LevelSelect;
public function LevelSelect(){
super();
_instance = this;
_levelScores = new Array();
_levelList = ["tutorial_01.xml", "tutorial_02.xml", "easy_01.xml", "easy_01a_1900_ash.xml", "easy_02.xml", "easy_03_caving_pigs.xml", "easy_03a_2200_zig_zag.xml", "easy_04.xml", "easy_05_bonusRun1.xml", "easy_03b.xml", "medium_01a_2500_3ways.xml", "medium_01.xml", "medium_02.xml", "medium_03.xml", "medium_04.xml", "medium_05.xml", "medium_06.xml", "hard_03.xml", "hard_03b_electro_city.xml", "hard_01.xml", "hard_04.xml", "hard_05.xml", "hard_06.xml", "hard_04b.xml"];
_left.addEventListener(MouseEvent.CLICK, onLeft);
_right.addEventListener(MouseEvent.CLICK, onRight);
_ls01.addEventListener(MouseEvent.CLICK, on01Click);
_ls02.addEventListener(MouseEvent.CLICK, on02Click);
_ls03.addEventListener(MouseEvent.CLICK, on03Click);
_ls04.addEventListener(MouseEvent.CLICK, on04Click);
_ls05.addEventListener(MouseEvent.CLICK, on05Click);
_ls06.addEventListener(MouseEvent.CLICK, on06Click);
_ls01._levelNum.mouseEnabled = false;
_ls02._levelNum.mouseEnabled = false;
_ls03._levelNum.mouseEnabled = false;
_ls04._levelNum.mouseEnabled = false;
_ls05._levelNum.mouseEnabled = false;
_ls06._levelNum.mouseEnabled = false;
_ls01._bg.gotoAndStop(1);
_ls02._bg.gotoAndStop(1);
_ls03._bg.gotoAndStop(1);
_ls04._bg.gotoAndStop(1);
_ls05._bg.gotoAndStop(1);
_ls06._bg.gotoAndStop(1);
_ls01._lock.gotoAndStop(1);
_ls02._lock.gotoAndStop(1);
_ls03._lock.gotoAndStop(1);
_ls04._lock.gotoAndStop(1);
_ls05._lock.gotoAndStop(1);
_ls06._lock.gotoAndStop(1);
}
public function get LevelNum():int{
return (_currentLevel);
}
public function get BestScores():Array{
return (_levelScores);
}
public function set BestScores(inVal:Array):void{
_levelScores = inVal.slice();
}
private function on05Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 4);
if (!_ls05._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls05._lock.gotoAndPlay(2);
};
}
public function advanceLevel():void{
_currentLevel++;
if (_currentLevel <= (_levelList.length - 1)){
selectLevel(_levelList[_currentLevel], _currentLevel);
} else {
trace("ALL LEVELS COMPLETE");
Main.Instance.allLevelsComplete();
};
}
private function on03Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 2);
if (!_ls03._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls03._lock.gotoAndPlay(2);
};
}
private function on01Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 0);
if (!_ls01._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls01._lock.gotoAndPlay(2);
};
}
private function onLeft(event:Event):void{
_right.visible = true;
_pageIndex--;
setSelectDisplay();
}
public function get LevelList():Array{
return (_levelList);
}
private function on06Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 5);
if (!_ls06._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls06._lock.gotoAndPlay(2);
};
}
public function setSelectDisplay():void{
var ldis:String;
var lsBtn:MovieClip;
var maxPage:int = (Math.floor((_levelList.length / 6)) - 1);
_right.visible = true;
if (_pageIndex >= maxPage){
_pageIndex = maxPage;
_right.visible = false;
};
if (_pageIndex <= 0){
_pageIndex = 0;
_left.visible = false;
};
var unlockLevel:int = Main.Instance.getUnlockLevel();
var lBtns:Array = [_ls01, _ls02, _ls03, _ls04, _ls05, _ls06];
trace(("@@@@@@ LEVEL SCORES: " + _levelScores));
var j:int;
while (j < lBtns.length) {
lsBtn = lBtns[j];
if (_levelList.length > ((_pageIndex * 6) + j)){
lsBtn.visible = true;
ldis = String(((_pageIndex * 6) + (j + 1)));
if (ldis.length < 2){
ldis = ("0" + ldis);
};
lsBtn._levelNum.text = ldis;
lsBtn._bestScore.text = MathFunction.formatNumberStringWithCommas(_levelScores[((_pageIndex * 6) + j)]);
if ((((((_pageIndex * 6) + j) <= unlockLevel)) || ((((_pageIndex * 6) + j) == 0)))){
lsBtn._bg.gotoAndStop(1);
lsBtn._lock.visible = false;
} else {
lsBtn._bg.gotoAndStop(2);
lsBtn._lock.visible = true;
};
} else {
lsBtn.visible = false;
};
j++;
};
}
private function on04Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 3);
if (!_ls04._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls04._lock.gotoAndPlay(2);
};
}
private function on02Click(e:Event):void{
var lnum:int = ((_pageIndex * 6) + 1);
if (!_ls02._lock.visible){
selectLevel(_levelList[lnum], lnum);
} else {
_ls02._lock.gotoAndPlay(2);
};
}
private function selectLevel(fileName:String, levelNum:int):void{
_currentLevel = levelNum;
Main.Instance.launchLevel(("levels/" + fileName));
}
private function onRight(event:Event):void{
_left.visible = true;
_pageIndex++;
setSelectDisplay();
}
public static function get Instance():LevelSelect{
return (_instance);
}
}
}//package com.truffle
Section 117
//Main (com.truffle.Main)
package com.truffle {
import flash.events.*;
import flash.display.*;
import com.truffle.engine.*;
import com.psiom.graphics.*;
import com.truffle.engine.objectSpaces.*;
import com.psiom.util.*;
import com.google.analytics.*;
import flash.utils.*;
import flash.net.*;
import flash.system.*;
import flash.ui.*;
public class Main extends MovieClip {
private var _keyBuffer:Number;
private var _uiNavBar:uimain_navBar;
private var _uiJobOp:uimain_jobOp;
private var _uiFlags:uimain_flags;
private var _dossierDelayLength:Number;// = 270
private var _uiSoundBtn:BaseButton;
private var _uiGameSummary:uimain_gamesummary;
private var _uiLoader:uimain_loader;
private var _uiSubmitScore:uimain_submitscore;
private var _uiBgGradient:uimain_bggradient;
private var _mainMouseDown:Boolean;// = false
private var R_AUS:int;// = 0
private var _renderManager:RenderManager;
private var _gigyaLoader:Loader;
private var _keyBufferMax:Number;// = 41
private var _gameplayVModeBitMask:String;
private var _uiElements:Array;
private var _truffleSO:SharedObjectWrapper;
private var _regionMode:int;// = 0
private var _cheatActivationDisplay:MovieClip;
private var _uiLeaderboard:uimain_leaderboard;
private var _dossierDelayTicks:Number;// = 0
private var _engine:EngineMain;
private var cfg:Object;
private var _uiLevelSelect:uimain_levelSelect;
private var _gaTracker:GATracker;
private var _uiSeekLogoCorner:BaseButton;
private var _mainNavStarted:Boolean;// = false
private var _uiBase:uimain_base;
private var _submitting:Boolean;// = false
private var _introLeadInTicks:Number;// = 0
private var _introLength:Number;// = 75
private var _uiLeadIn:uimain_leadin;
private var _engineUI:MovieClip;
private var _uiIntroScreen:uimain_introscreen;
private var _gameplayLayer:BaseElement;
private var _keyString:String;
private var _vModeID:String;
private var R_NZ:int;// = 1
private var _autoPlay:Boolean;// = false
private var _uiHowToPlay1:uimain_howtoplay1;
private var _uiHowToPlay2:uimain_howtoplay2;
private var _uiCredits:uimain_credits;
public var wfAlreadyLoaded:Boolean;// = false
private var _gameTimer:Timer;
public var mcWF:MovieClip;
private static var CHEATSENABLED:int = 0;
private static var _instance:Main;
public function Main(){
super();
_instance = this;
_keyString = "";
_keyBuffer = 0;
_truffleSO = new SharedObjectWrapper();
_truffleSO.init("seek_truffle_hunter", "/");
addEventListener("enterFrame", onMainEnterFrame);
new SoundManager();
addEventListener(Event.ADDED_TO_STAGE, onMainAdded);
_gameTimer = new Timer(1000, Number.POSITIVE_INFINITY);
_uiBgGradient = new uimain_bggradient();
_uiFlags = new uimain_flags();
_uiFlags.centerX();
_uiFlags.centerY();
_uiFlags.FadeSpeed = 0.25;
_uiFlags.FadeUpDelay = 20;
registerNavButton(_uiFlags._ausFlag, UIVModes.MainBlank, setRegionAus);
registerNavButton(_uiFlags._nzFlag, UIVModes.MainBlank, setRegionNZ);
_uiLeadIn = new uimain_leadin();
_uiLeadIn.centerX();
_uiLeadIn.centerY();
_uiLeadIn.FadeSpeed = 0.25;
_uiLeadIn.FadeUpDelay = 15;
_uiIntroScreen = new uimain_introscreen();
_uiIntroScreen._main.stop();
_uiBase = new uimain_base();
_uiBase.centerX();
_uiBase.centerY();
_uiBase.y = (_uiBase.y - 10);
registerNavButton(_uiBase._closeButton, UIVModes.MainBlank);
_uiJobOp = new uimain_jobOp();
_uiJobOp.centerX(_uiBase);
_uiJobOp.centerY(_uiBase);
_uiSoundBtn = new uimain_soundBtn();
_uiSoundBtn.x = 661;
_uiSoundBtn.y = 9;
_uiSoundBtn.makeToggle();
_uiSoundBtn.quickHide();
_uiSoundBtn.FadeUpDelay = 21;
registerNavButton(_uiSoundBtn, null, toggleSound);
_uiNavBar = new uimain_navBar();
_uiNavBar.centerX();
_uiNavBar.y = 366;
registerNavButton(_uiNavBar._howToPlay, UIVModes.HowToPlay1, trackHowToPlay);
registerNavButton(_uiNavBar._highScores, UIVModes.HighScores, loadScores);
registerNavButton(_uiNavBar._startGame, null, onMainStart);
registerNavButton(_uiNavBar._sendToFriend, null, csSTF);
registerNavButton(_uiNavBar._embed, null, csEmbed);
registerNavButton(_uiNavBar._seekMoreGames, null, linkoutSeekMoreGames);
registerNavButton(_uiNavBar._visitSeekSite, null, linkoutVisitSeek2);
registerNavButton(_uiNavBar._credits, UIVModes.Credits, trackCredits);
_uiSeekLogoCorner = new uimain_seeklogocorner();
_uiSeekLogoCorner.x = 5;
_uiSeekLogoCorner.y = 5;
_uiSeekLogoCorner.FadeUpDelay = 2;
registerNavButton(_uiSeekLogoCorner, null, linkoutVisitSeekLogo);
_uiSeekLogoCorner.quickHide();
_uiSeekLogoCorner.cacheAsBitmap = true;
_uiLevelSelect = new uimain_levelSelect();
_uiLevelSelect.centerX(_uiBase);
_uiLevelSelect.positionInsetFromObjY(_uiBase, 12);
_uiLevelSelect.FadeUpDelay = 6;
readBestScores();
_uiGameSummary = new uimain_gamesummary();
_uiGameSummary.centerX(_uiBase);
_uiGameSummary.positionInsetFromObjY(_uiBase, 12);
_uiGameSummary.FadeUpDelay = 6;
registerNavButton(_uiGameSummary._submitScore, UIVModes.SubmitScore, resetSubmitForm);
registerNavButton(_uiGameSummary._playAgain, UIVModes.TruffleRepair, playAgain);
_uiGameSummary._summaryCopy.gotoAndStop(1);
_uiHowToPlay1 = new uimain_howtoplay1();
_uiHowToPlay1.centerX(_uiBase);
_uiHowToPlay1.positionInsetFromObjY(_uiBase, 12);
_uiHowToPlay1.FadeUpDelay = 6;
_uiHowToPlay2 = new uimain_howtoplay2();
_uiHowToPlay2.centerX(_uiBase);
_uiHowToPlay2.positionInsetFromObjY(_uiBase, 12);
_uiHowToPlay2.FadeUpDelay = 6;
registerNavButton(_uiHowToPlay2._prevButton, UIVModes.HowToPlay1);
_uiLeaderboard = new uimain_leaderboard();
_uiLeaderboard.centerX(_uiBase);
_uiLeaderboard.positionInsetFromObjY(_uiBase, 12);
_uiLeaderboard.FadeUpDelay = 6;
_uiSubmitScore = new uimain_submitscore();
_uiSubmitScore.centerX(_uiBase);
_uiSubmitScore.positionInsetFromObjY(_uiBase, 12);
_uiSubmitScore.FadeUpDelay = 6;
_uiSubmitScore._optInBox.makeToggle(1);
_uiSubmitScore._optInBox.RollHLStrength = 0.5;
registerNavButton(_uiSubmitScore._optInBox, null, toggleOptIn);
registerNavButton(_uiSubmitScore._submitScore, null, onSubmitScorePost);
registerNavButton(_uiSubmitScore._privacyPolicy, null, linkoutPrivacyPolicy);
registerNavButton(_uiSubmitScore._tsandcs, null, linkoutTermsAndConditions);
_uiSubmitScore._firstname.visible = false;
_uiSubmitScore._surname.visible = false;
_uiSubmitScore._optNameBases.visible = false;
_uiSubmitScore._username.restrict = "a-z A-Z 0-9 \\- \\'";
_uiSubmitScore._emailaddress.restrict = "a-z A-Z 0-9 \\- \\@ \\. \\_";
_uiSubmitScore._firstname.restrict = "a-z A-Z 0-9 \\- \\'";
_uiSubmitScore._surname.restrict = "a-z A-Z 0-9 \\- \\'";
_uiCredits = new uimain_credits();
_uiCredits.centerX(_uiBase);
_uiCredits.positionInsetFromObjY(_uiBase, 12);
_uiCredits.FadeUpDelay = 6;
registerNavButton(_uiCredits._soapButton, null, linkoutSoap);
registerNavButton(_uiCredits._seekButton, null, linkoutVisitSeekLogo);
addChild(_uiBgGradient);
addChild(_uiIntroScreen);
_gameplayLayer = new BaseElement();
addChild(_gameplayLayer);
_renderManager = new RenderManager();
_renderManager.init(0x0400, 660);
_engineUI = new MovieClip();
_engine = new EngineMain();
_gameplayLayer.addChild(_renderManager.Canvas);
_gameplayLayer.addChild(_engineUI);
registerNavButton(_engine.MainMenuButton, null, quitGame);
addChild(_uiBase);
addChild(_uiCredits);
addChild(_uiJobOp);
addChild(_uiFlags);
addChild(_uiGameSummary);
addChild(_uiHowToPlay1);
addChild(_uiHowToPlay2);
addChild(_uiLeaderboard);
addChild(_uiLeadIn);
addChild(_uiNavBar);
addChild(_uiSeekLogoCorner);
addChild(_uiLevelSelect);
addChild(_uiSubmitScore);
addChild(_uiSoundBtn);
_uiElements = [_uiBgGradient, new BaseElement(), _uiLeadIn, _uiFlags, _uiIntroScreen, _uiJobOp, _uiBase, _uiNavBar, _uiSeekLogoCorner, _uiSoundBtn, new BaseElement(), _uiHowToPlay1, _uiHowToPlay2, _uiLevelSelect, new BaseElement(), new BaseElement(), _uiGameSummary, _uiSubmitScore, _uiLeaderboard, _uiCredits, _gameplayLayer];
if (!_autoPlay){
setVMode(UIVModes.LeadIn);
};
_gameplayVModeBitMask = modeArrayToBitMaskString(UIVModes.Game);
addEventListener(MouseEvent.CLICK, onMainClick);
addEventListener(MouseEvent.MOUSE_DOWN, onMainMouseDown);
addEventListener(MouseEvent.MOUSE_UP, onMainMouseUp);
if (readSoundPref() == 1){
trace("sound pref == 1");
toggleSound(new Event(""));
};
_cheatActivationDisplay = new g_cheat();
_cheatActivationDisplay.blendMode = BlendMode.ADD;
_cheatActivationDisplay.alpha = 0;
_cheatActivationDisplay.mouseEnabled = false;
_cheatActivationDisplay.mouseChildren = false;
addChild(_cheatActivationDisplay);
Security.allowDomain("cdn.gigya.com");
Security.allowInsecureDomain("cdn.gigya.com");
}
private function onMainStart(e:Event=null):void{
ga_trackEvent("truffleHunter", "game", "start");
ga_trackPageView("truffleHunter/game/start");
_dossierDelayTicks = (_dossierDelayLength + 1);
LevelSelect.Instance.setSelectDisplay();
setVMode(UIVModes.LevelSelect);
_engine.resetTotalScore();
}
private function loadWildfire(evt:Event, justEmail:Boolean=false):void{
var gameURL:String;
var url:String;
var urlReq:URLRequest;
var evt = evt;
var justEmail = justEmail;
if (!mcWF){
mcWF = new MovieClip();
addChild(mcWF);
mcWF.name = "mcWF";
};
mcWF.visible = true;
mcWF.x = 0;
mcWF.y = 0;
var ModuleID = "PostModule1";
cfg = {};
cfg["width"] = "700";
cfg["height"] = "450";
cfg["widgetTitle"] = "Seek_Truffle_Hunter";
cfg["useFacebookMystuff"] = "false";
cfg["partner"] = "1085901";
var configString = "";
configString = (configString + "<config baseTheme=\"v2\"><display ");
if (justEmail){
configString = (configString + "showPost=\"false\" ");
configString = (configString + "showEmail=\"true\" ");
configString = (configString + "showBookmark=\"false\" ");
} else {
configString = (configString + "showPost=\"true\" ");
configString = (configString + "showEmail=\"false\" ");
configString = (configString + "showBookmark=\"true\" ");
};
configString = (configString + "showCloseButton=\"true\"");
configString = (configString + ">");
configString = (configString + "</display><body><controls>");
configString = (configString + "<snbuttons iconsOnly=\"true\"></snbuttons>");
configString = (configString + "</controls></body></config>");
trace(("configString: " + configString));
cfg["UIConfig"] = configString;
cfg["CID"] = "Truffle Hunter";
if (_regionMode == R_AUS){
gameURL = "http://games.seek.com.au/truffleHunter/?cid=sk:au:games:truffle:emailfriend";
} else {
gameURL = "http://games.seek.co.nz/truffleHunter/?cid=sk:nz:games:truffle:emailfriend";
};
cfg["emailSubject"] = "Your friend $sender$ thinks you should Play the SEEK Truffle Racing game";
cfg["emailBody"] = (((("Hi there,\n\n<br>" + "You’ll be excited to know that I’ve just completed an employment trial as a Truffle Hunter. I know what you’re thinking – you want to steal the job from me don’t you? Well, give it a go! I bet you can’t beat me…\n\n<br>") + "<a href = '") + gameURL) + "'>Play SEEK Truffle Hunter</a>");
cfg["defaultContent"] = (((((((((((("<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\"" + " codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0\"") + " width=\"700\" height=\"450\" id=\"WFHost\"><param name=\"FlashVars\" ") + "value=\"Partner=1085901&theme=New Classic&widgetW=700&widgetH=450&widgetX=0&widgetY=0&stickyType=bottom&WFBtnX=313&WFBtnY=450") + "&defaultPreviewURL=http%3A%2F%2Fgames.seek.com.au%2Ftrufflehunter%2F90x57_thumb.jpg&useFacebookMystuff=false") + "&URL=http%3A%2F%2Fgames.seek.com.au%2Ftrufflehunter%2FSeek_Truffle_Hunter.swf\"/>") + "<param name=\"wmode\" value=\"transparent\"/><param name=\"allowScriptAccess\" value=\"always\" />") + "<param name=\"movie\" value=\"http://games.seek.com.au/trufflehunter/Seek_Truffle_Hunter.swf\" />") + "<embed name=\"WFHost\" id=\"WFHost\" width=\"700\" height=\"450\" src=\"http://games.seek.com.au/trufflehunter/Seek_Truffle_Hunter.swf\" flashvars=\"Partner=1085901") + "&theme=New Classic&widgetW=700&widgetH=450&widgetX=0&widgetY=0&stickyType=bottom&WFBtnX=313&WFBtnY=450") + "&defaultPreviewURL=http%3A%2F%2Fgames.seek.com.au%2Ftrufflehunter%2F90x57_thumb.jpg&useFacebookMystuff=false") + "&URL=http%3A%2F%2Fgames.seek.com.au%2Ftrufflehunter%2FSeek_Truffle_Hunter.swf\" AllowScriptAccess=\"always\" quality=\"high\" wmode=\"transparent\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" />") + "</object>");
if (!_gigyaLoader){
trace("@@@@@ NEW _gigyaLoader");
_gigyaLoader = new Loader();
mcWF.addChild(_gigyaLoader);
};
cfg["onClose"] = function (eventObj:Object):void{
mcWF.visible = false;
var _local2 = _gigyaLoader.content;
_local2["INIT"]();
};
if (!wfAlreadyLoaded){
wfAlreadyLoaded = true;
url = ("http://cdn.gigya.com/WildFire/swf/wildfireInAS3.swf?ModuleID=" + ModuleID);
trace(("loading URL: " + url));
urlReq = new URLRequest(url);
mcWF[ModuleID] = cfg;
_gigyaLoader.load(urlReq);
_gigyaLoader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, onGigyaError);
} else {
mcWF["PostModule1"] = cfg;
var _local4 = _gigyaLoader.content;
_local4["INIT"]();
};
}
public function get MainMouseDown():Boolean{
return (_mainMouseDown);
}
private function closeGame():void{
SoundManager.Instance.setMusicLoop(0);
SoundManager.Instance.fullReset();
_engine.setRestState();
_submitting = false;
if (CHEATSENABLED == 1){
_uiGameSummary._submitScore.visible = false;
} else {
_uiGameSummary._submitScore.visible = true;
};
_uiGameSummary._score.text = EngineMain.Instance.FinalScoreWithCommas;
var parScore:Number = _engine.FinalPossibleScore;
trace(((("parScore: " + parScore) + " _engine.FinalScore: ") + _engine.FinalScore));
parScore = (parScore * 0.75);
if (_engine.FinalScore <= (parScore * 0.15)){
_uiGameSummary._summaryCopy.gotoAndStop((13 + Math.floor((Math.random() * 2.99))));
};
if ((((_engine.FinalScore > (parScore * 0.15))) && ((_engine.FinalScore <= (parScore * 0.3))))){
_uiGameSummary._summaryCopy.gotoAndStop((10 + Math.floor((Math.random() * 2.99))));
};
if ((((_engine.FinalScore > (parScore * 0.6))) && ((_engine.FinalScore <= (parScore * 0.6))))){
_uiGameSummary._summaryCopy.gotoAndStop((7 + Math.floor((Math.random() * 2.99))));
};
if ((((_engine.FinalScore > (parScore * 0.6))) && ((_engine.FinalScore <= (parScore * 0.8))))){
_uiGameSummary._summaryCopy.gotoAndStop((4 + Math.floor((Math.random() * 2.99))));
};
if (_engine.FinalScore > (parScore * 0.8)){
_uiGameSummary._summaryCopy.gotoAndStop((1 + Math.floor((Math.random() * 2.99))));
};
_uiSubmitScore._score.text = EngineMain.Instance.FinalScoreWithCommas;
_uiGameSummary._trufflesCollected.text = ((String(EngineMain.Instance.SuperTrufflesCollected) + "/") + String(EngineMain.Instance.SuperTrufflesTotal));
_uiGameSummary._diamondsCollected.text = ((String(EngineMain.Instance.SuperDiamondsCollected) + "/") + String(EngineMain.Instance.SuperDiamondsTotal));
_uiGameSummary._pigsLeft.text = ((String(EngineMain.Instance.SuperPigsRemaining) + "/") + String(EngineMain.Instance.SuperPigsTotal));
_uiSubmitScore._username.text = "";
_uiSubmitScore._emailaddress.text = "";
_uiSubmitScore._firstname.text = "";
_uiSubmitScore._surname.text = "";
_uiSubmitScore._usernameX.visible = false;
_uiSubmitScore._emailaddressX.visible = false;
_uiSubmitScore._progress.visible = false;
setVMode(UIVModes.GameSummary);
_gameTimer.stop();
}
private function toggleSound(event:Event):void{
trace("sound toggle");
_uiSoundBtn.toggleState();
SoundManager.Instance.setVolume(Number((1 - _uiSoundBtn.CurrentState)));
setSoundPref();
}
private function onSubmitScoreDone(event:Event):void{
_uiLeaderboard.loadScores();
setVMode(UIVModes.HighScores);
}
private function linkoutPrivacyPolicy(event:Event):void{
trace("@@@@@@@ IMPLEMENT @@@@@@@ linkout PrivacyPolicy");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://seek.com.au/general_id_items/content/privacy.ascx"), "_blank");
} else {
navigateToURL(new URLRequest("http://seek.co.nz/general_id_items/content/privacy.ascx"), "_blank");
};
}
private function onMainClick(e:Event):void{
_engine.clickInput(mouseX, mouseY);
}
private function onSubmitScorePost(event:Event):void{
var usernameString:String;
var emailString:String;
var firstNameString:String;
var lastNameString:String;
var pReg:RegExp;
var aReg:RegExp;
var formState:URLVariables;
var req:URLRequest;
var loader:URLLoader;
var validEntryCheck:Boolean;
if (!SwearWordTester.testWordForErrors(_uiSubmitScore._username.text)){
validEntryCheck = false;
_uiSubmitScore._usernameX.visible = true;
} else {
_uiSubmitScore._usernameX.visible = false;
};
var validAddress:Boolean;
var foundAtSymb:Boolean;
var foundDotSymb:Boolean;
var atSymbIndex = -1;
var dotSymbIndex = -1;
var t:int;
while (t < _uiSubmitScore._emailaddress.text.length) {
if ((((_uiSubmitScore._emailaddress.text.substr(t, 1) == "@")) && ((t > 0)))){
foundAtSymb = true;
atSymbIndex = t;
};
if (_uiSubmitScore._emailaddress.text.substr(t, 1) == "."){
foundDotSymb = true;
dotSymbIndex = t;
};
t++;
};
if (((foundAtSymb) && (foundDotSymb))){
if (dotSymbIndex > atSymbIndex){
validAddress = true;
trace("EMAIL ADDRESS IS VALID");
};
};
if ((((_uiSubmitScore._emailaddress.text.length < 3)) || (!(validAddress)))){
validEntryCheck = false;
_uiSubmitScore._emailaddressX.visible = true;
} else {
_uiSubmitScore._emailaddressX.visible = false;
};
if (((validEntryCheck) && (!(_submitting)))){
_submitting = true;
_uiSubmitScore._progress.visible = true;
usernameString = _uiSubmitScore._username.text;
emailString = _uiSubmitScore._emailaddress.text;
firstNameString = _uiSubmitScore._firstname.text;
lastNameString = _uiSubmitScore._surname.text;
pReg = /%+/g;
aReg = /'+/g;
trace(("usernameString: " + usernameString));
trace(("usernameString: " + usernameString));
formState = new URLVariables();
formState["intGameId"] = 43;
formState["intScore"] = _engine.FinalScore;
formState["strName"] = escape(usernameString);
formState["strEmail"] = emailString;
formState["intOptIn"] = (1 - _uiSubmitScore._optInBox.CurrentState);
if (_regionMode == R_AUS){
formState["strMisc1"] = "AU";
};
if (_regionMode == R_NZ){
formState["strMisc1"] = "NZ";
};
formState["strMisc2"] = escape(firstNameString);
formState["strMisc3"] = escape(lastNameString);
req = new URLRequest("http://stats.soap.com.au/highscore/engine_mofo.php");
req.method = URLRequestMethod.POST;
req.data = formState;
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, onSubmitScoreDone);
loader.addEventListener(IOErrorEvent.IO_ERROR, onSubmitScoreDone);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSubmitScoreDone);
loader.load(req);
ga_trackPageView("truffleHunter/game/submit");
ga_trackEvent("truffleHunter", "game", "submit", _engine.FinalScore);
} else {
_uiSubmitScore._progress.visible = false;
};
}
private function setRegionNZ(event:Event):void{
ga_trackPageView("truffleHunter/locale/NZ");
_regionMode = R_NZ;
_mainNavStarted = true;
_uiIntroScreen._main.gotoAndPlay(1);
_uiIntroScreen._main.sign._inner.gotoAndStop(2);
startMusic();
}
private function toggleOptIn(event:Event):void{
_uiSubmitScore._optInBox.toggleState();
if (_uiSubmitScore._optInBox.CurrentState == 0){
_uiSubmitScore._firstname.visible = true;
_uiSubmitScore._surname.visible = true;
_uiSubmitScore._optNameBases.visible = true;
} else {
_uiSubmitScore._firstname.visible = false;
_uiSubmitScore._surname.visible = false;
_uiSubmitScore._optNameBases.visible = false;
};
}
private function onGameBySoap(e:Event):void{
linkoutSoap(new Event(""));
}
private function readBestScores():void{
var lname:String;
var scoreVal:Number;
trace("read best scores");
var levelScores:Array = new Array();
var i:int;
while (i < LevelSelect.Instance.LevelList.length) {
lname = LevelSelect.Instance.LevelList[i];
lname = lname.substr(0, (lname.length - 4));
scoreVal = Number(_truffleSO.data[lname]);
if (!isFinite(scoreVal)){
scoreVal = 0;
};
levelScores.push(scoreVal);
i++;
};
LevelSelect.Instance.BestScores = levelScores;
}
private function linkoutVisitSeek2(event:Event):void{
ga_trackEvent("truffleHunter", "linkOut", "seek");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://www.seek.com.au?cid=sk:au:games:truffle:link"), "_blank");
} else {
navigateToURL(new URLRequest("http://www.seek.co.nz?cid=sk:nz:games:truffle:link"), "_blank");
};
}
public function getUnlockLevel():int{
if (!_truffleSO.data.LevelUnlocked){
_truffleSO.data.LevelUnlocked = 0;
_truffleSO.flush();
};
return (int(_truffleSO.data.LevelUnlocked));
}
private function linkoutSeekMoreGames(event:Event):void{
trace("@@@@@@@ IMPLEMENT @@@@@@@ linkout SeekMoreGames");
ga_trackEvent("truffleHunter", "linkOut", "moreGames");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://games.seek.com.au/index.html?cid=sk:au:games:truffle:more"), "_blank");
} else {
navigateToURL(new URLRequest("http://games.seek.co.nz/index.html?cid=sk:nz:games:truffle:more"), "_blank");
};
}
public function get EngineUI():MovieClip{
return (_engineUI);
}
private function onNavBtnClick(event:Event):void{
setVMode(event.target.VmodeArray);
}
private function playAgain(event:Event):void{
var lnum:int = (LevelSelect.Instance.LevelNum + 1);
var lnumstr:String = String(lnum);
if (lnumstr.length < 2){
lnumstr = ("0" + lnumstr);
};
ga_trackPageView(((("truffleHunter/game/" + "level") + lnumstr) + "/replay"));
ga_trackEvent("truffleHunter", ("level" + lnumstr), "replay");
onMainStart();
}
private function onMainMouseDown(e:Event):void{
_mainMouseDown = true;
}
public function setSoundPref():void{
_truffleSO.data.SoundPref = _uiSoundBtn.CurrentState;
_truffleSO.flush();
}
public function checkAndSetLevelBest(inLevelName:String, inLevelScore:int):void{
var comparativeScore:Number = Number(_truffleSO.data[inLevelName]);
if (!isFinite(comparativeScore)){
comparativeScore = 0;
};
if (Number(inLevelScore) > Number(comparativeScore)){
_truffleSO.data[inLevelName] = inLevelScore;
_truffleSO.flush();
readBestScores();
};
}
private function formatTimeString(inTime:Number):String{
var ts:String;
var subSeconds:Number = (inTime % 41);
var subSeconds100:Number = ((subSeconds / 41) * 99);
var seconds:Number = ((inTime - subSeconds) / 41);
var minutes:Number = 0;
while (seconds > 59) {
seconds = (seconds - 60);
minutes++;
};
var minutesString:String = "";
if (minutes < 10){
minutesString = (minutesString + "0");
};
minutesString = (minutesString + String(minutes));
if (minutes > 99){
minutesString = "99";
};
var secondsString:String = "";
if (seconds < 10){
secondsString = (secondsString + "0");
};
secondsString = (secondsString + String(seconds));
var subSecondsString:String = "";
if (subSeconds < 10){
subSecondsString = (subSecondsString + "0");
};
subSecondsString = (subSecondsString + String(subSeconds));
return (((((minutesString + ":") + secondsString) + ":") + subSecondsString));
}
private function csEmbed(event:Event):void{
loadWildfire(new Event(""));
ga_trackEvent("truffleHunter", "menu", "embed");
}
public function launchLevel(filePath:String):void{
trace(("LAUNCH LEVEL: " + filePath));
setVMode(UIVModes.Game);
startNewGame(filePath);
}
public function ga_trackPageView(pv:String):void{
trace(("tracking page view: " + pv));
_gaTracker.trackPageview(pv);
}
public function ga_trackEvent(category:String, action:String, label:String=null, value:Number=-12345654321):void{
if (value == -12345654321){
trace(((((("tracking event: " + category) + " | ") + action) + " | ") + label));
_gaTracker.trackEvent(category, action, label);
} else {
trace(((((((("tracking event: " + category) + " | ") + action) + " | ") + label) + " | ") + value));
_gaTracker.trackEvent(category, action, label, value);
};
}
private function loadScores(event:Event):void{
ga_trackEvent("truffleHunter", "menu", "leaderboard");
_uiLeaderboard.loadScores();
}
private function resetSubmitForm(event:Event):void{
_uiSubmitScore._progress.visible = false;
}
private function csSTF(event:Event):void{
loadWildfire(new Event(""), true);
ga_trackEvent("truffleHunter", "menu", "sendtofriend");
}
private function onMainAdded(event:Event):void{
stage.addEventListener(MouseEvent.MOUSE_UP, onMainMouseUpOutside);
_gaTracker = new GATracker(this, "UA-6368558-33", "AS3", false);
removeEventListener(Event.ADDED_TO_STAGE, onMainAdded);
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDownEvent);
_gaTracker.trackPageview("truffleHunter/game/index");
_gaTracker.trackEvent("truffleHunter", "game", "index");
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.hideBuiltInItems();
var defaultItems:ContextMenuBuiltInItems = myContextMenu.builtInItems;
defaultItems.print = true;
var item:ContextMenuItem = new ContextMenuItem("Game by Soap");
item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, onGameBySoap, false, 0, true);
myContextMenu.customItems.push(item);
this.contextMenu = myContextMenu;
if (_autoPlay){
_introLeadInTicks = _introLength;
onMainStart();
} else {
setVMode(UIVModes.LeadIn);
};
}
private function linkoutVisitSeek(event:Event):void{
ga_trackEvent("truffleHunter", "linkOut", "seek");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://www.seek.com.au?cid=sk:au:games:truffle:link"), "_blank");
} else {
navigateToURL(new URLRequest("http://www.seek.co.nz?cid=sk:nz:games:truffle:link"), "_blank");
};
}
private function onGigyaError(e:Event):void{
trace("GIGYA LOAD ERROR");
}
private function trackHowToPlay(event:Event):void{
ga_trackEvent("truffleHunter", "menu", "instructions");
}
private function onMainMouseUpOutside(e:Event):void{
_mainMouseDown = false;
}
private function linkoutSoap(event:Event):void{
ga_trackEvent("truffleHunter", "linkOut", "soap");
navigateToURL(new URLRequest("http://www.soap.com.au"), "_blank");
}
public function gameover(e:Event=null):void{
var lnum:int = (LevelSelect.Instance.LevelNum + 1);
var lnumstr:String = String(lnum);
if (lnumstr.length < 2){
lnumstr = ("0" + lnumstr);
};
ga_trackEvent("truffleHunter", ("level" + lnumstr), "gameover", _gameTimer.currentCount);
closeGame();
}
public function allLevelsComplete():void{
closeGame();
}
private function onMainEnterFrame(event:Event):void{
SoundManager.Instance.iterate();
if (_cheatActivationDisplay.alpha < 0.02){
_cheatActivationDisplay.alpha = 0;
_cheatActivationDisplay.visible = false;
} else {
_cheatActivationDisplay.visible = true;
_cheatActivationDisplay.alpha = (_cheatActivationDisplay.alpha * 0.95);
};
if (_keyBuffer > 0){
_keyBuffer--;
} else {
_keyString = "";
};
if (_vModeID == _gameplayVModeBitMask){
_engine.update();
_renderManager.renderElements(_engine.getCustomRenderElements());
_renderManager.renderSprites(_engine.getRenderData(), _engine.Camera);
};
if (_introLeadInTicks < (_introLength + 1)){
_introLeadInTicks++;
};
if (_introLeadInTicks < _introLength){
setVMode(UIVModes.LeadIn);
};
if (_introLeadInTicks == _introLength){
setVMode(UIVModes.Flags);
};
if (_mainNavStarted){
if (_dossierDelayTicks < (_dossierDelayLength + 1)){
_dossierDelayTicks++;
};
if (_dossierDelayTicks == _dossierDelayLength){
if (_vModeID == modeArrayToBitMaskString(UIVModes.MainBlank)){
setVMode(UIVModes.Dossier);
};
};
};
if (_dossierDelayTicks > _dossierDelayLength){
};
}
private function onMainMouseUp(e:Event):void{
_mainMouseDown = false;
}
private function registerNavButton(btn:BaseButton, vmode:Array, functionCallback:Function=null):void{
if (vmode){
if (vmode.length > 0){
btn.addEventListener(MouseEvent.CLICK, onNavBtnClick);
btn.VmodeArray = vmode;
};
};
if (functionCallback != null){
btn.addEventListener(MouseEvent.CLICK, functionCallback);
};
}
private function trackCredits(event:Event):void{
ga_trackEvent("truffleHunter", "menu", "credits");
}
public function get RegionMode():int{
return (_regionMode);
}
public function setUnlockLevel(level:int):void{
var unlockLevel:Number = Number(_truffleSO.data.LevelUnlocked);
if (!isFinite(unlockLevel)){
unlockLevel = 0;
};
if (Number(level) > Number(unlockLevel)){
_truffleSO.data.LevelUnlocked = level;
_truffleSO.flush();
};
}
public function quitGame(e:Event):void{
var lnum:int = (LevelSelect.Instance.LevelNum + 1);
var lnumstr:String = String(lnum);
if (lnumstr.length < 2){
lnumstr = ("0" + lnumstr);
};
ga_trackEvent("truffleHunter", ("level" + lnumstr), "quit", _gameTimer.currentCount);
setVMode(UIVModes.MainBlank);
SoundManager.Instance.setMusicLoop(0);
SoundManager.Instance.fullReset();
EngineMain.Instance.closeGame();
_engine.setRestState();
}
public function readSoundPref():int{
if (!_truffleSO.data.SoundPref){
_truffleSO.data.SoundPref = _uiSoundBtn.CurrentState;
_truffleSO.flush();
};
return (_truffleSO.data.SoundPref);
}
private function setRegionAus(event:Event):void{
ga_trackPageView("truffleHunter/locale/AU");
_regionMode = R_AUS;
_mainNavStarted = true;
_uiIntroScreen._main.gotoAndPlay(1);
_uiIntroScreen._main.sign._inner.gotoAndStop(1);
startMusic();
}
public function startMusic():void{
SoundManager.Instance.setMusicLoop();
}
private function linkoutTermsAndConditions(event:Event):void{
trace("@@@@@@@ IMPLEMENT @@@@@@@ linkout Terms and Consitions");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://seek.com.au/general_id_items/content/terms.ascx"), "_blank");
} else {
navigateToURL(new URLRequest("http://seek.co.nz/general_id_items/content/terms.ascx"), "_blank");
};
}
private function startNewGame(filePath:String):void{
_engine.startNewLevel(filePath);
_gameTimer.reset();
_gameTimer.start();
}
public function setVMode(inMode:Array):void{
var i:int;
var bmstring:String = modeArrayToBitMaskString(inMode);
if (((inMode) && (!((_vModeID == bmstring))))){
if (((!((inMode.length == _uiElements.length))) || (!(inMode)))){
trace(("### VMODE ARRAY ERROR: " + inMode));
};
i = 0;
while (i < inMode.length) {
_uiElements[i].VisMode = inMode[i];
i++;
};
};
_vModeID = bmstring;
}
private function onKeyDownEvent(e:KeyboardEvent):void{
var fs:Number;
switch (String.fromCharCode(e.keyCode)){
};
_keyBuffer = _keyBufferMax;
_keyString = (_keyString + String.fromCharCode(e.keyCode));
if ((((_keyString == "DEMONRUN")) && ((_vModeID == _gameplayVModeBitMask)))){
launchLevel("levels/test.xml");
ga_trackEvent("truffleHunter", "game", "demonrun");
};
if (_keyString == "MINIPIGS"){
CHEATSENABLED = 1;
_truffleSO.data.CHEATS = CHEATSENABLED;
_truffleSO.flush();
if (GameLevel.Instance){
GameLevel.Instance.setPigScale(0.25);
};
ga_trackEvent("truffleHunter", "game", "minipigs");
_cheatActivationDisplay.alpha = 0.6;
_keyString = "";
};
if (_keyString == "MEGAPIGS"){
CHEATSENABLED = 1;
_truffleSO.data.CHEATS = CHEATSENABLED;
_truffleSO.flush();
if (GameLevel.Instance){
GameLevel.Instance.setPigScale(1.8);
};
ga_trackEvent("truffleHunter", "game", "megapigs");
_cheatActivationDisplay.alpha = 0.6;
_keyString = "";
};
if ((((_keyString == "BACKBACK")) && (!((_vModeID == _gameplayVModeBitMask))))){
CHEATSENABLED = 0;
_truffleSO.data.CHEATS = CHEATSENABLED;
_truffleSO.flush();
if (GameLevel.Instance){
GameLevel.Instance.setPigScale(1);
};
ga_trackEvent("truffleHunter", "game", "backback");
fs = _engine.FinalScore;
_engine.resetTotalScore();
_uiGameSummary._score.text = String(_engine.FinalScore);
_uiSubmitScore._score.text = String(_engine.FinalScore);
_cheatActivationDisplay.alpha = 0.6;
_keyString = "";
};
if (CHEATSENABLED == 1){
_uiGameSummary._submitScore.visible = false;
} else {
_uiGameSummary._submitScore.visible = true;
};
}
private function modeArrayToBitMaskString(a:Array):String{
var bmstring:String = "";
var i:int;
while (i < a.length) {
bmstring = (bmstring + String(a[i]));
i++;
};
return (bmstring);
}
private function linkoutVisitSeekLogo(event:Event):void{
ga_trackEvent("truffleHunter", "linkOut", "seek");
if (_regionMode == R_AUS){
navigateToURL(new URLRequest("http://www.seek.com.au?cid=sk:au:games:truffle:logo"), "_blank");
} else {
navigateToURL(new URLRequest("http://www.seek.co.nz?cid=sk:nz:games:truffle:logo"), "_blank");
};
}
public static function get mainHeight():Number{
return (450);
}
public static function get mainWidth():Number{
return (700);
}
public static function get sceneHeight():Number{
return (660);
}
public static function get RMODE_AUS():int{
return (0);
}
public static function get RMODE_NZ():int{
return (1);
}
public static function get sceneWidth():Number{
return (0x0400);
}
public static function get Instance():Main{
return (_instance);
}
}
}//package com.truffle
Section 118
//SoundManager (com.truffle.SoundManager)
package com.truffle {
import com.truffle.engine.*;
import com.psiom.engine.gameObject.*;
import flash.media.*;
public class SoundManager {
private var _ambienceEffects:Array;
private var _sfx:Array;
private var _forcedSoundDelays:Array;
private var _personSoundDelay:Number;// = 0
private var _frameID:int;// = 0
private var _musicLoop:Sound;
private var _volume:Number;// = 1
private var _musicChannel:SoundChannel;
public static var DTHRESH_BALOON:Number = 1000;
public static var SND_DCOLLECT:int = 0;
public static var AMB_SPACE:int = 4;
public static var SND_GAMEOEVER2:int = 8;
public static var SND_THUD2:int = 2;
public static var SND_THUD3:int = 3;
public static var SND_THUD1:int = 1;
public static var DTHRESH_UFO:Number = 500;
public static var AMB_UFO:int = 2;
public static var DTHRESH_PLANE:Number = 700;
public static var SND_WIN:int = 15;
public static var SND_SPARK1:int = 4;
public static var SND_SPARK2:int = 5;
public static var SND_SPARK3:int = 6;
public static var AMB_BIRDS:int = 0;
public static var SND_SQUEEL:int = 11;
public static var SND_GRUNT1:int = 9;
public static var SND_GRUNT2:int = 10;
public static var AMB_BALLOON:int = 1;
public static var DTHRESH_SPACE:Number = 2500;
public static var AMB_PLANE:int = 3;
public static var SND_TCOLLECT:int = 14;
public static var SND_SUCCESS:int = 13;
public static var SND_SQUEELSHORT:int = 12;
private static var _instance:SoundManager;
public static var SND_GAMEOVER:int = 7;
public static var DTHRESH_TREE:Number = 660;
public function SoundManager(){
_forcedSoundDelays = [{Base:2, Current:0}, {Base:2, Current:0}, {Base:2, Current:0}, {Base:5, Current:0}, {Base:5, Current:0}, {Base:20, Current:0}, {Base:2, Current:0}, {Base:6, Current:0}, {Base:6, Current:0}, {Base:20, Current:0}, {Base:20, Current:0}, {Base:20, Current:0}, {Base:10, Current:0}, {Base:10, Current:0}, {Base:10, Current:0}, {Base:20, Current:0}];
_ambienceEffects = [];
super();
_instance = this;
_sfx = [new diamondCollect(), new Dirt_Thud_1(), new Dirt_Thud_2(), new Dirt_Thud_3(), new Electrical_Spark_2(), new Electrical_Spark_4(), new Electrical_Spark_6(), new Gameover(), new gameover2(), new Pig_Grunt_2(), new Pig_Grunt_3(), new Pig_Squeal_4(), new Pig_Squeal_short(), new Success3(), new truffleCollect(), new win4()];
}
public function fullReset():void{
var i:int;
while (i < _ambienceEffects.length) {
_ambienceEffects[i].Trans.volume = 0;
_ambienceEffects[i].LifeSpan = -1;
if (_ambienceEffects[i].Channel){
_ambienceEffects[i].Channel.stop();
_ambienceEffects[i].Channel = null;
};
i++;
};
}
public function playSoundID(id:Number, vmod:Number=-1):void{
var sndtrns:SoundTransform;
var snd:Sound;
if (EngineMain.Instance.State == EngineMain.STATE_GAMEPLAY){
if (_forcedSoundDelays[id].Current <= 0){
sndtrns = new SoundTransform();
sndtrns.volume = _volume;
_forcedSoundDelays[id].Current = _forcedSoundDelays[id].Base;
if ((((vmod > 0)) && ((vmod <= 1)))){
sndtrns.volume = (sndtrns.volume * vmod);
};
snd = _sfx[id];
snd.play(0, 0, sndtrns);
};
};
}
public function iterate():void{
var sndtrns:SoundTransform;
var i:int;
i = 0;
while (i < _ambienceEffects.length) {
if ((((_ambienceEffects[i].Trans.volume >= 0.05)) && (_ambienceEffects[i].Channel))){
_ambienceEffects[i].Channel.soundTransform = _ambienceEffects[i].Trans;
if (_ambienceEffects[i].LifeSpan > -1){
_ambienceEffects[i].LifeSpan--;
};
if (_ambienceEffects[i].LifeSpan < 0){
_ambienceEffects[i].Trans.volume = (_ambienceEffects[i].Trans.volume * 0.9);
_ambienceEffects[i].Distance = 10000;
};
} else {
_ambienceEffects[i].Trans.volume = 0;
_ambienceEffects[i].LifeSpan = -1;
if (_ambienceEffects[i].Channel){
_ambienceEffects[i].Channel.stop();
_ambienceEffects[i].Channel = null;
};
};
if (_volume == 0){
_ambienceEffects[i].Trans.volume = 0;
};
i++;
};
i = 0;
while (i < _forcedSoundDelays.length) {
if (_forcedSoundDelays[i].Current > 0){
_forcedSoundDelays[i].Current--;
};
i++;
};
_frameID++;
if (_personSoundDelay > 0){
_personSoundDelay--;
};
}
public function setMusicLoop(id:int=0):void{
if (_musicChannel){
_musicChannel.stop();
};
var sndtrns:SoundTransform = new SoundTransform();
sndtrns.volume = (0.2 * _volume);
if (id == 0){
_musicLoop = new menuloop();
} else {
_musicLoop = new gameloop();
};
_musicChannel = _musicLoop.play(0, int.MAX_VALUE, sndtrns);
}
public function triggerAmbience(id:int, xDiff:Number, totalDistance:Number, sourceObj:RenderableObject):void{
var dist:Number;
if (EngineMain.Instance.State == EngineMain.STATE_GAMEPLAY){
if ((((totalDistance < _ambienceEffects[id].Distance)) || ((_ambienceEffects[id].LastObj == sourceObj)))){
_ambienceEffects[id].LastObj = sourceObj;
if (_ambienceEffects[id].Lifespan > 0){
_ambienceEffects[id].Channel.stop();
};
_ambienceEffects[id].Distance = totalDistance;
_ambienceEffects[id].Pan = (xDiff / 350);
if (_ambienceEffects[id].Pan < -1){
_ambienceEffects[id].Pan = -1;
};
if (_ambienceEffects[id].Pan > 1){
_ambienceEffects[id].Pan = 1;
};
dist = (1 - (totalDistance / _ambienceEffects[id].DThresh));
if (dist > 1){
dist = 1;
};
if (dist < 0){
dist = 0;
};
if ((((_ambienceEffects[id].LifeSpan < 0)) && ((_ambienceEffects[id].Trans.volume < 0.05)))){
if (_ambienceEffects[id].Channel){
_ambienceEffects[id].Channel.stop();
_ambienceEffects[id].Trans.volume = 0.06;
};
_ambienceEffects[id].Channel = _ambienceEffects[id].Sound.play(0, int.MAX_VALUE, _ambienceEffects[id].Trans);
};
_ambienceEffects[id].Trans.volume = (_ambienceEffects[id].Trans.volume + ((((dist * _ambienceEffects[id].VMod) * _volume) - _ambienceEffects[id].Trans.volume) * 0.25));
_ambienceEffects[id].Trans.pan = _ambienceEffects[id].Pan;
_ambienceEffects[id].LifeSpan = 10;
};
};
}
public function setVolume(val:int):void{
trace(("setting volume to: " + val));
_volume = val;
var sndtrns:SoundTransform = new SoundTransform();
sndtrns.volume = _volume;
var musicVol:SoundTransform = new SoundTransform();
musicVol.volume = (_volume * 0.2);
if (_musicChannel){
_musicChannel.soundTransform = musicVol;
};
}
public static function get Instance():SoundManager{
return (_instance);
}
}
}//package com.truffle
Section 119
//SwearWordTester (com.truffle.SwearWordTester)
package com.truffle {
public class SwearWordTester {
private static var isBadword:int;
private static var isLegal:Boolean;
private static var testWordLC:String;
private static var si:int;
private static var swearwordList:Array = new Array("co ck", "c unt", "cu nt", "fu ck", "f uck", "fuk", "fuc", "cnt", "knt", "ass", "dic", "fag", "d1k", "4q", "cun", "pis", "nig", "gay", "fu", "as5", "a55", "p1s", "fu2", "BJ", "BJU", "bum", "cok", "cum", "tit", "t1t", "coc", "koc", "f4g", "c0k", "c0c", "twt", "pus", "dyk", "tlt", "sac", "sak", "s4c", "s4k", "arse", "fuck", "shit", "cunt");
private static var swearWord:String;
public function SwearWordTester(){
super();
}
public static function testWordForErrors(testWord:String):Boolean{
if (testWord.length < 1){
trace("word not long enough");
return (false);
};
si = 0;
while (si < swearwordList.length) {
swearWord = swearwordList[si];
testWordLC = testWord.toLowerCase();
isBadword = testWordLC.indexOf(swearWord);
if (isBadword != -1){
return (false);
};
si++;
};
return (true);
}
}
}//package com.truffle
Section 120
//UIVModes (com.truffle.UIVModes)
package com.truffle {
public class UIVModes {
public function UIVModes(){
super();
}
public static function get LevelSelect():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get LeadIn():Array{
var rA:Array = [1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get HighScores():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0];
return (rA);
}
public static function get CustomFace2():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0];
return (rA);
}
public static function get Flags():Array{
var rA:Array = [1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get Credits():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0];
return (rA);
}
public static function get Dossier():Array{
var rA:Array = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get LevelComplete():Array{
var rA:Array = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
return (rA);
}
public static function get HowToPlay1():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get HowToPlay2():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get GameSummary():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0];
return (rA);
}
public static function get Game():Array{
var rA:Array = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
return (rA);
}
public static function get SubmitScore():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0];
return (rA);
}
public static function get MainBlank():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get Loading():Array{
var rA:Array = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
return (rA);
}
public static function get TruffleRepair():Array{
var rA:Array = [0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0];
return (rA);
}
}
}//package com.truffle
Section 121
//AbstractPreloader (preloader.AbstractPreloader)
package preloader {
import flash.display.*;
import flash.events.*;
import com.google.analytics.*;
import flash.utils.*;
public class AbstractPreloader extends MovieClip {
private var _tracker:AnalyticsTracker;
private var m_firstEnterFrame:Boolean;
private var _timer:Timer;
protected var m_adLoaded:Boolean;// = false
private var _api:Object;
private var USE_EXTERNAL:Boolean;// = true
private var m_loadTime:int;
protected var VALID_URL:Array;
private var _loadTime:Number;// = 0
private static var _instance:MovieClip;
public function AbstractPreloader(){
super();
_instance = this;
addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage);
stop();
}
protected function run():void{
startMain();
}
public function get CSAPI():Object{
return (_api);
}
protected function beginLoading():void{
}
private function startMain():void{
var MainClass:Class = (getDefinitionByName(mainClassName) as Class);
if (MainClass == null){
throw (new Error("AbstractPreloader:initialize. There was no class matching that name. Did you remember to override mainClassName?"));
};
var main:DisplayObject = (new (MainClass) as DisplayObject);
if (main == null){
throw (new Error("AbstractPreloader:initialize. Main class needs to inherit from Sprite or MovieClip."));
};
MainClass.loadTime = int(((getTimer() - m_loadTime) / 1000));
addChild(main);
_timer.stop();
_tracker.trackEvent("truffleHunter", "game", "load", (_timer.currentCount * 0.25));
}
protected function endLoading():void{
}
public function start():void{
m_firstEnterFrame = true;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function handleOnAddedToStage(event:Event):void{
stage.scaleMode = StageScaleMode.EXACT_FIT;
stage.align = StageAlign.TOP_LEFT;
m_loadTime = getTimer();
_tracker = new GATracker(this, "UA-6368558-33", "AS3", false);
_timer = new Timer(250, Number.POSITIVE_INFINITY);
_timer.start();
}
protected function get mainClassName():String{
return ("");
}
protected function updateLoading(a_percent:Number):void{
}
private function onEnterFrame(event:Event):void{
var percent:Number;
if (m_firstEnterFrame){
m_firstEnterFrame = false;
if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
run();
} else {
beginLoading();
};
return;
};
if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
nextFrame();
run();
endLoading();
} else {
percent = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal);
updateLoading(percent);
};
}
public static function get Instance():MovieClip{
return (_instance);
}
}
}//package preloader
Section 122
//AbstractPreloaderView (preloader.AbstractPreloaderView)
package preloader {
public class AbstractPreloaderView extends AbstractPreloader {
private var _loaderGraphic:uimain_loader;
public function AbstractPreloaderView(){
super();
stop();
trace("@@preloader view");
_loaderGraphic = new uimain_loader();
_loaderGraphic.x = 291;
_loaderGraphic.y = 167;
addChild(_loaderGraphic);
super.start();
}
override protected function run():void{
removeChild(_loaderGraphic);
_loaderGraphic = null;
super.run();
}
override protected function get mainClassName():String{
return ("Seek_Truffle_Hunter");
}
override protected function updateLoading(a_percent:Number):void{
var frame:int = (1 + int((a_percent * (_loaderGraphic.totalFrames - 1))));
_loaderGraphic._pField.text = (String(Math.floor((a_percent * 100))) + "%");
trace(("_loaderGraphic._pField.text: " + _loaderGraphic._pField.text));
}
}
}//package preloader
Section 123
//ausFlag (ausFlag)
package {
import com.truffle.*;
public dynamic class ausFlag extends BaseButton {
}
}//package
Section 124
//bgtex1 (bgtex1)
package {
import flash.display.*;
public dynamic class bgtex1 extends BitmapData {
public function bgtex1(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 125
//bgtex2 (bgtex2)
package {
import flash.display.*;
public dynamic class bgtex2 extends BitmapData {
public function bgtex2(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 126
//bgtex3 (bgtex3)
package {
import flash.display.*;
public dynamic class bgtex3 extends BitmapData {
public function bgtex3(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 127
//bgtex4 (bgtex4)
package {
import flash.display.*;
public dynamic class bgtex4 extends BitmapData {
public function bgtex4(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 128
//bgtex5 (bgtex5)
package {
import flash.display.*;
public dynamic class bgtex5 extends BitmapData {
public function bgtex5(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 129
//bmd_bgplane (bmd_bgplane)
package {
import flash.display.*;
public dynamic class bmd_bgplane extends BitmapData {
public function bmd_bgplane(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 130
//brushAlpha (brushAlpha)
package {
import flash.display.*;
public dynamic class brushAlpha extends BitmapData {
public function brushAlpha(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 131
//buttonBlueGeneric (buttonBlueGeneric)
package {
import com.truffle.*;
public dynamic class buttonBlueGeneric extends BaseButton {
}
}//package
Section 132
//buttonPinkGeneric (buttonPinkGeneric)
package {
import com.truffle.*;
public dynamic class buttonPinkGeneric extends BaseButton {
}
}//package
Section 133
//buttonPinkGenericLarge (buttonPinkGenericLarge)
package {
import com.truffle.*;
public dynamic class buttonPinkGenericLarge extends BaseButton {
}
}//package
Section 134
//buttonPinkGenericSmaller (buttonPinkGenericSmaller)
package {
import com.truffle.*;
public dynamic class buttonPinkGenericSmaller extends BaseButton {
}
}//package
Section 135
//buttonSeek (buttonSeek)
package {
import com.truffle.*;
public dynamic class buttonSeek extends BaseButton {
}
}//package
Section 136
//closeButtonMain (closeButtonMain)
package {
import com.truffle.*;
public dynamic class closeButtonMain extends BaseButton {
}
}//package
Section 137
//diamondCollect (diamondCollect)
package {
import flash.media.*;
public dynamic class diamondCollect extends Sound {
}
}//package
Section 138
//Dirt_Thud_1 (Dirt_Thud_1)
package {
import flash.media.*;
public dynamic class Dirt_Thud_1 extends Sound {
}
}//package
Section 139
//Dirt_Thud_2 (Dirt_Thud_2)
package {
import flash.media.*;
public dynamic class Dirt_Thud_2 extends Sound {
}
}//package
Section 140
//Dirt_Thud_3 (Dirt_Thud_3)
package {
import flash.media.*;
public dynamic class Dirt_Thud_3 extends Sound {
}
}//package
Section 141
//Electrical_Spark_2 (Electrical_Spark_2)
package {
import flash.media.*;
public dynamic class Electrical_Spark_2 extends Sound {
}
}//package
Section 142
//Electrical_Spark_4 (Electrical_Spark_4)
package {
import flash.media.*;
public dynamic class Electrical_Spark_4 extends Sound {
}
}//package
Section 143
//Electrical_Spark_6 (Electrical_Spark_6)
package {
import flash.media.*;
public dynamic class Electrical_Spark_6 extends Sound {
}
}//package
Section 144
//g_cheat (g_cheat)
package {
import flash.display.*;
public dynamic class g_cheat extends MovieClip {
}
}//package
Section 145
//gameloop (gameloop)
package {
import flash.media.*;
public dynamic class gameloop extends Sound {
}
}//package
Section 146
//Gameover (Gameover)
package {
import flash.media.*;
public dynamic class Gameover extends Sound {
}
}//package
Section 147
//gameover2 (gameover2)
package {
import flash.media.*;
public dynamic class gameover2 extends Sound {
}
}//package
Section 148
//gClip_arrow (gClip_arrow)
package {
import flash.display.*;
public dynamic class gClip_arrow extends MovieClip {
}
}//package
Section 149
//gClip_battery (gClip_battery)
package {
import flash.display.*;
public dynamic class gClip_battery extends MovieClip {
}
}//package
Section 150
//gClip_batteryRay (gClip_batteryRay)
package {
import flash.display.*;
public dynamic class gClip_batteryRay extends MovieClip {
}
}//package
Section 151
//gClip_bonusItems (gClip_bonusItems)
package {
import flash.display.*;
public dynamic class gClip_bonusItems extends MovieClip {
}
}//package
Section 152
//gClip_cursor (gClip_cursor)
package {
import flash.display.*;
public dynamic class gClip_cursor extends MovieClip {
}
}//package
Section 153
//gClip_DebugNode (gClip_DebugNode)
package {
import flash.display.*;
public dynamic class gClip_DebugNode extends MovieClip {
}
}//package
Section 154
//gClip_diamond (gClip_diamond)
package {
import flash.display.*;
public dynamic class gClip_diamond extends MovieClip {
}
}//package
Section 155
//gClip_FinishLine (gClip_FinishLine)
package {
import flash.display.*;
public dynamic class gClip_FinishLine extends MovieClip {
}
}//package
Section 156
//gClip_indicatorPlayer (gClip_indicatorPlayer)
package {
import flash.display.*;
public dynamic class gClip_indicatorPlayer extends MovieClip {
}
}//package
Section 157
//gClip_largePipeStraight (gClip_largePipeStraight)
package {
import flash.display.*;
public dynamic class gClip_largePipeStraight extends MovieClip {
}
}//package
Section 158
//gClip_mediumBluePuff (gClip_mediumBluePuff)
package {
import flash.display.*;
public dynamic class gClip_mediumBluePuff extends MovieClip {
}
}//package
Section 159
//gClip_pig (gClip_pig)
package {
import flash.display.*;
public dynamic class gClip_pig extends MovieClip {
}
}//package
Section 160
//gClip_poisonBubble (gClip_poisonBubble)
package {
import flash.display.*;
public dynamic class gClip_poisonBubble extends MovieClip {
}
}//package
Section 161
//gClip_poisonPuff (gClip_poisonPuff)
package {
import flash.display.*;
public dynamic class gClip_poisonPuff extends MovieClip {
}
}//package
Section 162
//gClip_poisonShroom (gClip_poisonShroom)
package {
import flash.display.*;
public dynamic class gClip_poisonShroom extends MovieClip {
}
}//package
Section 163
//gClip_positionDisplay (gClip_positionDisplay)
package {
import flash.display.*;
public dynamic class gClip_positionDisplay extends MovieClip {
}
}//package
Section 164
//gClip_smokePuff (gClip_smokePuff)
package {
import flash.display.*;
public dynamic class gClip_smokePuff extends MovieClip {
}
}//package
Section 165
//gClip_star (gClip_star)
package {
import flash.display.*;
public dynamic class gClip_star extends MovieClip {
}
}//package
Section 166
//gClip_StartLine (gClip_StartLine)
package {
import flash.display.*;
public dynamic class gClip_StartLine extends MovieClip {
}
}//package
Section 167
//gClip_tinyPuff1 (gClip_tinyPuff1)
package {
import flash.display.*;
public dynamic class gClip_tinyPuff1 extends MovieClip {
}
}//package
Section 168
//gClip_tinySpark (gClip_tinySpark)
package {
import flash.display.*;
public dynamic class gClip_tinySpark extends MovieClip {
}
}//package
Section 169
//gClip_truffle (gClip_truffle)
package {
import flash.display.*;
public dynamic class gClip_truffle extends MovieClip {
}
}//package
Section 170
//hole_128_01 (hole_128_01)
package {
import flash.display.*;
public dynamic class hole_128_01 extends BitmapData {
public function hole_128_01(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 171
//htpNextButton (htpNextButton)
package {
import com.truffle.*;
public dynamic class htpNextButton extends BaseButton {
}
}//package
Section 172
//htpPrevButton (htpPrevButton)
package {
import com.truffle.*;
public dynamic class htpPrevButton extends BaseButton {
}
}//package
Section 173
//invisBlockButton (invisBlockButton)
package {
import com.truffle.*;
public dynamic class invisBlockButton extends BaseButton {
}
}//package
Section 174
//large_hole_173x154 (large_hole_173x154)
package {
import flash.display.*;
public dynamic class large_hole_173x154 extends BitmapData {
public function large_hole_173x154(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 175
//level_start (level_start)
package {
import flash.display.*;
public dynamic class level_start extends BitmapData {
public function level_start(w:Number, h:Number){
super(w, h);
}
}
}//package
Section 176
//levelSelecButton (levelSelecButton)
package {
import com.truffle.*;
public dynamic class levelSelecButton extends BaseButton {
}
}//package
Section 177
//menuloop (menuloop)
package {
import flash.media.*;
public dynamic class menuloop extends Sound {
}
}//package
Section 178
//nzFlag (nzFlag)
package {
import com.truffle.*;
public dynamic class nzFlag extends BaseButton {
}
}//package
Section 179
//Pig_Grunt_2 (Pig_Grunt_2)
package {
import flash.media.*;
public dynamic class Pig_Grunt_2 extends Sound {
}
}//package
Section 180
//Pig_Grunt_3 (Pig_Grunt_3)
package {
import flash.media.*;
public dynamic class Pig_Grunt_3 extends Sound {
}
}//package
Section 181
//Pig_Squeal_4 (Pig_Squeal_4)
package {
import flash.media.*;
public dynamic class Pig_Squeal_4 extends Sound {
}
}//package
Section 182
//Pig_Squeal_short (Pig_Squeal_short)
package {
import flash.media.*;
public dynamic class Pig_Squeal_short extends Sound {
}
}//package
Section 183
//Seek_Truffle_Hunter (Seek_Truffle_Hunter)
package {
import flash.events.*;
import com.truffle.*;
import flash.display.*;
public class Seek_Truffle_Hunter extends Sprite {
private var _main:Main;
public function Seek_Truffle_Hunter(){
super();
_main = new Main();
addChild(_main);
addEventListener(Event.ADDED_TO_STAGE, onAdded);
}
private function onAdded(event:Event):void{
}
private function initHandler(event:Event):void{
}
}
}//package
Section 184
//soapButton (soapButton)
package {
import com.truffle.*;
public dynamic class soapButton extends BaseButton {
}
}//package
Section 185
//solidObj_pipeElbow (solidObj_pipeElbow)
package {
import flash.display.*;
public dynamic class solidObj_pipeElbow extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 186
//solidObj_pipeStraight (solidObj_pipeStraight)
package {
import flash.display.*;
public dynamic class solidObj_pipeStraight extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 187
//solidObj_rocks1 (solidObj_rocks1)
package {
import flash.display.*;
public dynamic class solidObj_rocks1 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 188
//solidObj_rocks2 (solidObj_rocks2)
package {
import flash.display.*;
public dynamic class solidObj_rocks2 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 189
//solidObj_rocks3 (solidObj_rocks3)
package {
import flash.display.*;
public dynamic class solidObj_rocks3 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 190
//solidObj_rocks4 (solidObj_rocks4)
package {
import flash.display.*;
public dynamic class solidObj_rocks4 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 191
//solidObj_rocks5 (solidObj_rocks5)
package {
import flash.display.*;
public dynamic class solidObj_rocks5 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 192
//solidObj_sign1 (solidObj_sign1)
package {
import flash.display.*;
public dynamic class solidObj_sign1 extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 193
//solidObj_smallPipeCross (solidObj_smallPipeCross)
package {
import flash.display.*;
public dynamic class solidObj_smallPipeCross extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 194
//solidObj_smallPipeElbow (solidObj_smallPipeElbow)
package {
import flash.display.*;
public dynamic class solidObj_smallPipeElbow extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 195
//solidObj_smallPipeStraight (solidObj_smallPipeStraight)
package {
import flash.display.*;
public dynamic class solidObj_smallPipeStraight extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 196
//solidObj_smallPipeTee (solidObj_smallPipeTee)
package {
import flash.display.*;
public dynamic class solidObj_smallPipeTee extends MovieClip {
public var _col:MovieClip;
public var _internal:MovieClip;
}
}//package
Section 197
//Success3 (Success3)
package {
import flash.media.*;
public dynamic class Success3 extends Sound {
}
}//package
Section 198
//tickBox (tickBox)
package {
import com.truffle.*;
public dynamic class tickBox extends BaseButton {
}
}//package
Section 199
//truffleCollect (truffleCollect)
package {
import flash.media.*;
public dynamic class truffleCollect extends Sound {
}
}//package
Section 200
//ui_gameOver (ui_gameOver)
package {
import flash.display.*;
public dynamic class ui_gameOver extends MovieClip {
}
}//package
Section 201
//ui_levelComplete (ui_levelComplete)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ui_levelComplete extends MovieClip {
public var _diamondsCollected:TextField;
public var _levelScore:TextField;
public var _trufflesCollected:TextField;
public var _pigsLeft:TextField;
public var _totalScore:TextField;
}
}//package
Section 202
//ui_mainMenuButton (ui_mainMenuButton)
package {
import com.truffle.*;
public dynamic class ui_mainMenuButton extends BaseButton {
}
}//package
Section 203
//ui_roundNumber (ui_roundNumber)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ui_roundNumber extends MovieClip {
public var _num:TextField;
}
}//package
Section 204
//ui_scoreBlip (ui_scoreBlip)
package {
import flash.display.*;
import flash.text.*;
public dynamic class ui_scoreBlip extends MovieClip {
public var _base:MovieClip;
public var _points:TextField;
}
}//package
Section 205
//uimain_base (uimain_base)
package {
import com.truffle.*;
public dynamic class uimain_base extends BaseElement {
}
}//package
Section 206
//uimain_bggradient (uimain_bggradient)
package {
import com.truffle.*;
public dynamic class uimain_bggradient extends BaseElement {
}
}//package
Section 207
//uimain_credits (uimain_credits)
package {
import com.truffle.*;
public dynamic class uimain_credits extends BaseElement {
}
}//package
Section 208
//uimain_flags (uimain_flags)
package {
import com.truffle.*;
public dynamic class uimain_flags extends BaseElement {
}
}//package
Section 209
//uimain_gamesummary (uimain_gamesummary)
package {
import com.truffle.*;
public dynamic class uimain_gamesummary extends BaseElement {
}
}//package
Section 210
//uimain_howtoplay1 (uimain_howtoplay1)
package {
import com.truffle.*;
public dynamic class uimain_howtoplay1 extends BaseElement {
}
}//package
Section 211
//uimain_howtoplay2 (uimain_howtoplay2)
package {
import com.truffle.*;
public dynamic class uimain_howtoplay2 extends BaseElement {
}
}//package
Section 212
//uimain_introscreen (uimain_introscreen)
package {
import com.truffle.*;
public dynamic class uimain_introscreen extends BaseElement {
}
}//package
Section 213
//uimain_jobOp (uimain_jobOp)
package {
import com.truffle.*;
public dynamic class uimain_jobOp extends BaseElement {
}
}//package
Section 214
//uimain_leaderboard (uimain_leaderboard)
package {
import com.truffle.*;
public dynamic class uimain_leaderboard extends LeaderBoard {
}
}//package
Section 215
//uimain_leadin (uimain_leadin)
package {
import com.truffle.*;
public dynamic class uimain_leadin extends BaseElement {
}
}//package
Section 216
//uimain_levelSelect (uimain_levelSelect)
package {
import com.truffle.*;
public dynamic class uimain_levelSelect extends LevelSelect {
}
}//package
Section 217
//uimain_loader (uimain_loader)
package {
import flash.display.*;
import flash.text.*;
public dynamic class uimain_loader extends MovieClip {
public var _pField:TextField;
}
}//package
Section 218
//uimain_navBar (uimain_navBar)
package {
import com.truffle.*;
public dynamic class uimain_navBar extends BaseElement {
}
}//package
Section 219
//uimain_seeklogocorner (uimain_seeklogocorner)
package {
import com.truffle.*;
public dynamic class uimain_seeklogocorner extends BaseButton {
}
}//package
Section 220
//uimain_soundBtn (uimain_soundBtn)
package {
import com.truffle.*;
public dynamic class uimain_soundBtn extends BaseButton {
}
}//package
Section 221
//uimain_submitscore (uimain_submitscore)
package {
import com.truffle.*;
public dynamic class uimain_submitscore extends BaseElement {
}
}//package
Section 222
//win4 (win4)
package {
import flash.media.*;
public dynamic class win4 extends Sound {
}
}//package