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

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

Truffle Hunter - protect your pigs from underground dangers.swf

This is the info page for
Flash #90973

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


Text
<p align="center"><font face="DIN" size="21" color="#ffffff" letterSpacing="0.000000" kerning="1">85%</font></p>

LOADING...

RANK

SCORE

USERNAME

COUNTRY

HIGH SCORES

<p align="center"><font face="DINBoldNew" size="11" color="#4eaab9" letterSpacing="0.250000" kerning="1">name</font></p>

<p align="center"><font face="DINBoldNew" size="12" color="#4eaab9" letterSpacing="0.250000" kerning="1">1</font></p>

<p align="center"><font face="DINBoldNew" size="12" color="#f141a3" letterSpacing="0.250000" kerning="1">00000000000</font></p>

HI, ARE YOU?

OR

AUSSIE

KIWI

VISIT THE SEEK WEBSITE  |  CREDITS

START GAME

SEND TO FRIEND

EMBED

HOW TO PLAY

HIGH SCORES

SEEK MORE GAMES

SUMMARY

YOUR PERFORMANCE REVIEW

‘Leave No Pig Behind’ is a key company  motto. You’ve just
exemplified it. Well done on your exemplary professionalism!

You employed prudent risk taking  and faced potential dangers
with a calm assurance. You’re a true leader of truffle hunting pigs!

Your knack for sourcing the finest truffles is matched only by your
skill in minimising swine fatalities. Good show!

You’ve demonstrated  consistent accomplishment and
excelled in a time critical, subterranean work environment.

You’re clearly an experienced truffle hunting wrangler,
with a mature and skilled approach to swine supervision.

You’ve accepted responsibility for your pigs and demonstrated
practiced the rigid discipline required for the task.

You demonstrated limited knowledge of truffle detection,
however your loyalty to your team of swine was commendable.

We commend your enthusiasm. Opportunities for improvement
include: minimizing swine fatalities and increasing truffle acquisition.

You weren’t afraid to take ownership of the task and demonstrated leadership
potential. Nonetheless, your truffle collection failed to justify your pig attrition rate.

A true debacle that bordered on fiasco. Under your direction,
we expect that pigs will sooner fly than dig for truffles.

Your disregard for the safety of your team resulted in great losses to swine-force.
We can’t help wondering if you have something against pigs in general.

That effort only leaves room for improvement.
Lift your game and get back in there.

Your time-management skills were lacking, resulting
in missed deadlines and an unmotivated team.

You needed to demonstrate both a higher aptitude for pig
management and a keener instinct for truffle detection.

Our hunt for superior  candidates began the instant your hunt for truffles
was over. A result not reflecting your true potential.  Better luck next time.

TOTAL SCORE:

<p align="left"><font face="DIN" size="18" color="#f241a4" letterSpacing="0.500000" kerning="1">1651651</font></p>

PLAY AGAIN

SUBMIT SCORE

<p align="left"><font face="DIN" size="18" color="#f141a3" letterSpacing="0.000000" kerning="1">230/310</font></p>

<p align="left"><font face="DIN" size="18" color="#f141a3" letterSpacing="0.000000" kerning="1">230/310</font></p>

<p align="left"><font face="DIN" size="18" color="#f141a3" letterSpacing="0.000000" kerning="1">230/310</font></p>

Privacy Policy

USERNAME:

<p align="left"><font face="DINBoldNew" size="12" color="#ffffff" letterSpacing="0.200000" kerning="1">Larry David</font></p>

<p align="left"><font face="DINBoldNew" size="11" color="#ffffff" letterSpacing="0.200000" kerning="1">larrydavid@gmail.com</font></p>

EMAIL:

YOUR SCORE:

PLAYER DETAILS

<p align="left"><font face="DINBoldNew" size="21" color="#f241a4" letterSpacing="0.500000" kerning="1">1,280</font></p>

SUBMITTING

Terms & Conditions

FIRST NAME:

SURNAME:

<p align="left"><font face="DINBoldNew" size="12" color="#ffffff" letterSpacing="0.200000" kerning="1">Larry</font></p>

<p align="left"><font face="DINBoldNew" size="12" color="#ffffff" letterSpacing="0.200000" kerning="1">David</font></p>

SUBMIT SCORE

Make your pigs collect truffles.

Click and drag to excavate the
ground around your team of pigs.

HOW TO PLAY

Stay away from these things.

Keep your pigs safe while truffle hunting.
You must have at least one pig left at the
end in order to progess to new levels.

GOAL:

IN ASSOCIATION WITH

DESIGNED AND BUILT BY

CREDITS

SELECT A LEVEL

Best Score:

<p align="left"><font face="DIN" size="11" color="#000000" letterSpacing="0.000000" kerning="1">535,998,00</font></p>

<p align="center"><font face="LasVegas-Jackpot" size="64" color="#ffffff" letterSpacing="0.000000" kerning="1">01</font></p>

BROUGHT TO YOU BY

X

WHAT TO NOT DO

Poison mushrooms and gas
cause adverse reactions in pigs
and contact should be avoided

Stay even further away from batteries.

LEVEL COMPLETE

<p align="left"><font face="DIN" size="18" color="#4eaab9" letterSpacing="0.000000" kerning="1">230/310</font></p>

LEVEL SCORE

<p align="left"><font face="DIN" size="18" color="#4eaab9" letterSpacing="0.000000" kerning="1">230,310,0</font></p>

TOTAL SCORE

<p align="left"><font face="LasVegas-Jackpot" size="100" color="#ffffff" letterSpacing="0.000000" kerning="1">01</font></p>

MAIN MENU

<p align="center"><font face="DINBoldNew" size="20" color="#ffffff" letterSpacing="0.000000" kerning="1">+100000</font></p>

FINISH

START

ActionScript [AS3]

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

Library Items

Symbol 1 GraphicUsed by:5
Symbol 2 FontUsed by:3 4 6 7 8 9 10 32 39 40 46 57 58 59 60 61 62 76 77 95 96 97 98 99 100 101 107 110 112 113 126 127 131 133 134 135 142 158 159 166 167 175 177 188 189 201 208 209 210 337 338 340 341 342 353
Symbol 3 EditableTextUses:2 33Used by:5
Symbol 4 TextUses:2Used by:5
Symbol 5 MovieClip {uimain_loader} [uimain_loader]Uses:1 3 4
Symbol 6 TextUses:2Used by:27
Symbol 7 TextUses:2Used by:27
Symbol 8 TextUses:2Used by:27
Symbol 9 TextUses:2Used by:27
Symbol 10 TextUses:2Used by:27
Symbol 11 FontUsed by:12 13 14 108 109 114 120 129 130 362
Symbol 12 EditableTextUses:11Used by:20
Symbol 13 EditableTextUses:11Used by:20
Symbol 14 EditableTextUses:11Used by:20
Symbol 15 GraphicUsed by:19
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClipUses:16Used by:18 38
Symbol 18 MovieClipUses:17Used by:19
Symbol 19 MovieClipUses:15 18Used by:20
Symbol 20 MovieClipUses:12 13 14 19Used by:27
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClipUses:21Used by:23 26
Symbol 23 MovieClip {htpNextButton} [htpNextButton]Uses:22Used by:27 196
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:24Used by:26
Symbol 26 MovieClip {htpPrevButton} [htpPrevButton]Uses:22 25Used by:27 196 213
Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard]Uses:6 7 8 9 10 20 23 26
Symbol 28 GraphicUsed by:31
Symbol 29 GraphicUsed by:30
Symbol 30 MovieClipUses:29Used by:31
Symbol 31 MovieClip {uimain_seeklogocorner} [uimain_seeklogocorner]Uses:28 30
Symbol 32 TextUses:2Used by:41
Symbol 33 FontUsed by:3 34 78 80 81 82 83 84 85 86 87 88 89 90 91 92 93 96 99 100 101 105 124 189 197 338 341
Symbol 34 TextUses:33Used by:41
Symbol 35 GraphicUsed by:36
Symbol 36 MovieClipUses:35Used by:37
Symbol 37 MovieClip {ausFlag} [ausFlag]Uses:36Used by:41
Symbol 38 MovieClip {nzFlag} [nzFlag]Uses:17Used by:41
Symbol 39 TextUses:2Used by:41
Symbol 40 TextUses:2Used by:41
Symbol 41 MovieClip {uimain_flags} [uimain_flags]Uses:32 34 37 38 39 40
Symbol 42 GraphicUsed by:45
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:45
Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric]Uses:42 44Used by:63 103 132
Symbol 46 TextUses:2Used by:63
Symbol 47 GraphicUsed by:48
Symbol 48 MovieClip {invisBlockButton} [invisBlockButton]Uses:47Used by:63 132
Symbol 49 GraphicUsed by:52
Symbol 50 GraphicUsed by:51
Symbol 51 MovieClipUses:50Used by:52
Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric]Uses:49 51Used by:63
Symbol 53 GraphicUsed by:56
Symbol 54 GraphicUsed by:55
Symbol 55 MovieClipUses:54Used by:56
Symbol 56 MovieClip {buttonPinkGenericLarge} [buttonPinkGenericLarge]Uses:53 55Used by:63
Symbol 57 TextUses:2Used by:63
Symbol 58 TextUses:2Used by:63
Symbol 59 TextUses:2Used by:63
Symbol 60 TextUses:2Used by:63
Symbol 61 TextUses:2Used by:63
Symbol 62 TextUses:2Used by:63
Symbol 63 MovieClip {uimain_navBar} [uimain_navBar]Uses:45 46 48 52 56 57 58 59 60 61 62
Symbol 64 GraphicUsed by:69
Symbol 65 GraphicUsed by:67
Symbol 66 GraphicUsed by:67
Symbol 67 MovieClipUses:65 66Used by:69
Symbol 68 GraphicUsed by:69
Symbol 69 MovieClip {uimain_jobOp} [uimain_jobOp]Uses:64 67 68
Symbol 70 GraphicUsed by:74 202
Symbol 71 GraphicUsed by:72
Symbol 72 MovieClipUses:71Used by:74
Symbol 73 GraphicUsed by:74
Symbol 74 MovieClipUses:70 72 73Used by:75
Symbol 75 MovieClip {uimain_soundBtn} [uimain_soundBtn]Uses:74
Symbol 76 TextUses:2Used by:103
Symbol 77 TextUses:2Used by:103
Symbol 78 TextUses:33Used by:94
Symbol 79 GraphicUsed by:94
Symbol 80 TextUses:33Used by:94
Symbol 81 TextUses:33Used by:94
Symbol 82 TextUses:33Used by:94
Symbol 83 TextUses:33Used by:94
Symbol 84 TextUses:33Used by:94
Symbol 85 TextUses:33Used by:94
Symbol 86 TextUses:33Used by:94
Symbol 87 TextUses:33Used by:94
Symbol 88 TextUses:33Used by:94
Symbol 89 TextUses:33Used by:94
Symbol 90 TextUses:33Used by:94
Symbol 91 TextUses:33Used by:94
Symbol 92 TextUses:33Used by:94
Symbol 93 TextUses:33Used by:94
Symbol 94 MovieClipUses:78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93Used by:103
Symbol 95 TextUses:2Used by:103
Symbol 96 EditableTextUses:2 33Used by:103
Symbol 97 TextUses:2Used by:103
Symbol 98 TextUses:2Used by:103 132
Symbol 99 EditableTextUses:2 33Used by:103
Symbol 100 EditableTextUses:2 33Used by:103
Symbol 101 EditableTextUses:2 33Used by:103
Symbol 102 GraphicUsed by:103
Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary]Uses:45 76 77 94 95 96 97 98 99 100 101 102
Symbol 104 GraphicUsed by:132
Symbol 105 TextUses:33Used by:132
Symbol 106 GraphicUsed by:116 132
Symbol 107 TextUses:2Used by:132
Symbol 108 EditableTextUses:11Used by:132
Symbol 109 EditableTextUses:11Used by:132
Symbol 110 TextUses:2Used by:132
Symbol 111 GraphicUsed by:132
Symbol 112 TextUses:2Used by:132
Symbol 113 TextUses:2Used by:132
Symbol 114 EditableTextUses:11Used by:132
Symbol 115 GraphicUsed by:116
Symbol 116 MovieClipUses:115 106Used by:117
Symbol 117 MovieClip {tickBox} [tickBox]Uses:116Used by:132
Symbol 118 GraphicUsed by:119
Symbol 119 MovieClipUses:118Used by:121
Symbol 120 TextUses:11Used by:121
Symbol 121 MovieClipUses:119 120Used by:132
Symbol 122 GraphicUsed by:123
Symbol 123 MovieClipUses:122Used by:132
Symbol 124 TextUses:33Used by:132
Symbol 125 GraphicUsed by:128
Symbol 126 TextUses:2Used by:128
Symbol 127 TextUses:2Used by:128
Symbol 128 MovieClipUses:125 126 127Used by:132
Symbol 129 EditableTextUses:11Used by:132
Symbol 130 EditableTextUses:11Used by:132
Symbol 131 TextUses:2Used by:132
Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore]Uses:104 105 45 106 107 108 109 110 111 112 113 114 98 117 121 123 124 128 129 130 48 131
Symbol 133 TextUses:2Used by:163
Symbol 134 TextUses:2Used by:163
Symbol 135 TextUses:2Used by:163 213
Symbol 136 GraphicUsed by:140
Symbol 137 GraphicUsed by:138
Symbol 138 MovieClipUses:137Used by:140
Symbol 139 GraphicUsed by:140
Symbol 140 MovieClipUses:136 138 139Used by:163 213 568
Symbol 141 GraphicUsed by:163 213
Symbol 142 TextUses:2Used by:163
Symbol 143 GraphicUsed by:146
Symbol 144 GraphicUsed by:145
Symbol 145 MovieClipUses:144Used by:146 404
Symbol 146 MovieClipUses:143 145Used by:163 213
Symbol 147 GraphicUsed by:148
Symbol 148 MovieClipUses:147Used by:163 213 568
Symbol 149 GraphicUsed by:150
Symbol 150 MovieClipUses:149Used by:163 213 568
Symbol 151 GraphicUsed by:152
Symbol 152 MovieClipUses:151Used by:163 213 568
Symbol 153 GraphicUsed by:154
Symbol 154 MovieClipUses:153Used by:163 213 568
Symbol 155 GraphicUsed by:156
Symbol 156 MovieClipUses:155Used by:163 213 568
Symbol 157 GraphicUsed by:163
Symbol 158 TextUses:2Used by:163
Symbol 159 TextUses:2Used by:163
Symbol 160 GraphicUsed by:163
Symbol 161 GraphicUsed by:162
Symbol 162 MovieClipUses:161Used by:163
Symbol 163 MovieClip {uimain_howtoplay1} [uimain_howtoplay1]Uses:133 134 135 140 141 142 146 148 150 152 154 156 157 158 159 160 162
Symbol 164 GraphicUsed by:165
Symbol 165 MovieClip {uimain_bggradient} [uimain_bggradient]Uses:164
Symbol 166 TextUses:2Used by:176
Symbol 167 TextUses:2Used by:176
Symbol 168 GraphicUsed by:169 170
Symbol 169 MovieClipUses:168Used by:170
Symbol 170 MovieClip {soapButton} [soapButton]Uses:168 169Used by:176
Symbol 171 GraphicUsed by:174
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:174
Symbol 174 MovieClip {buttonSeek} [buttonSeek]Uses:171 173Used by:176
Symbol 175 TextUses:2Used by:176
Symbol 176 MovieClip {uimain_credits} [uimain_credits]Uses:166 167 170 174 175
Symbol 177 TextUses:2Used by:196
Symbol 178 GraphicUsed by:195 404 423 441
Symbol 179 GraphicUsed by:183
Symbol 180 GraphicUsed by:183
Symbol 181 GraphicUsed by:182
Symbol 182 MovieClipUses:181Used by:183
Symbol 183 MovieClipUses:179 180 182Used by:195
Symbol 184 GraphicUsed by:185
Symbol 185 MovieClipUses:184Used by:195
Symbol 186 GraphicUsed by:187
Symbol 187 MovieClipUses:186Used by:195
Symbol 188 TextUses:2Used by:195
Symbol 189 EditableTextUses:2 33Used by:195
Symbol 190 FontUsed by:191 347 445 540
Symbol 191 EditableTextUses:190Used by:195
Symbol 192 GraphicUsed by:193
Symbol 193 MovieClipUses:192Used by:194
Symbol 194 MovieClip {assets_fla.mc_48} [assets_fla.mc_48]Uses:193Used by:195
Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]Uses:178 183 185 187 188 189 191 194Used by:196
Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect]Uses:177 195 23 26
Symbol 197 TextUses:33Used by:199
Symbol 198 GraphicUsed by:199
Symbol 199 MovieClip {uimain_leadin} [uimain_leadin]Uses:197 198
Symbol 200 GraphicUsed by:204
Symbol 201 TextUses:2Used by:202
Symbol 202 MovieClipUses:70 201Used by:203
Symbol 203 MovieClip {closeButtonMain} [closeButtonMain]Uses:202Used by:204
Symbol 204 MovieClip {uimain_base} [uimain_base]Uses:200 203
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:207
Symbol 207 MovieClip {g_cheat} [g_cheat]Uses:206
Symbol 208 TextUses:2Used by:213
Symbol 209 TextUses:2Used by:213
Symbol 210 TextUses:2Used by:213
Symbol 211 GraphicUsed by:213
Symbol 212 GraphicUsed by:213
Symbol 213 MovieClip {uimain_howtoplay2} [uimain_howtoplay2]Uses:208 135 209 140 141 210 146 211 26 148 150 152 154 156 212
Symbol 214 GraphicUsed by:215
Symbol 215 MovieClipUses:214Used by:334
Symbol 216 GraphicUsed by:218
Symbol 217 GraphicUsed by:218
Symbol 218 MovieClip {assets_fla.ui_118} [assets_fla.ui_118]Uses:216 217Used by:219
Symbol 219 MovieClip {assets_fla.ui_117} [assets_fla.ui_117]Uses:218Used by:334
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClipUses:220Used by:251
Symbol 222 GraphicUsed by:223
Symbol 223 MovieClipUses:222Used by:251
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClipUses:224Used by:251
Symbol 226 GraphicUsed by:227
Symbol 227 MovieClipUses:226Used by:251
Symbol 228 GraphicUsed by:229
Symbol 229 MovieClipUses:228Used by:251
Symbol 230 GraphicUsed by:231
Symbol 231 MovieClipUses:230Used by:251
Symbol 232 GraphicUsed by:233
Symbol 233 MovieClipUses:232Used by:251
Symbol 234 GraphicUsed by:235
Symbol 235 MovieClipUses:234Used by:251
Symbol 236 GraphicUsed by:237
Symbol 237 MovieClipUses:236Used by:251
Symbol 238 GraphicUsed by:239
Symbol 239 MovieClipUses:238Used by:251
Symbol 240 GraphicUsed by:241
Symbol 241 MovieClipUses:240Used by:251
Symbol 242 GraphicUsed by:243
Symbol 243 MovieClipUses:242Used by:251
Symbol 244 GraphicUsed by:245
Symbol 245 MovieClipUses:244Used by:251
Symbol 246 GraphicUsed by:247
Symbol 247 MovieClipUses:246Used by:251
Symbol 248 GraphicUsed by:249
Symbol 249 MovieClipUses:248Used by:251
Symbol 250 GraphicUsed by:251
Symbol 251 MovieClipUses:221 223 225 227 229 231 233 235 237 239 241 243 245 247 249 250Used by:334
Symbol 252 GraphicUsed by:260
Symbol 253 GraphicUsed by:254
Symbol 254 MovieClipUses:253Used by:258
Symbol 255 GraphicUsed by:256
Symbol 256 MovieClipUses:255Used by:258
Symbol 257 GraphicUsed by:258
Symbol 258 MovieClipUses:254 256 257Used by:260
Symbol 259 GraphicUsed by:260
Symbol 260 MovieClipUses:252 258 259Used by:334
Symbol 261 GraphicUsed by:269
Symbol 262 GraphicUsed by:263
Symbol 263 MovieClipUses:262Used by:267
Symbol 264 GraphicUsed by:267
Symbol 265 GraphicUsed by:266
Symbol 266 MovieClipUses:265Used by:267
Symbol 267 MovieClipUses:263 264 266Used by:269
Symbol 268 GraphicUsed by:269
Symbol 269 MovieClipUses:261 267 268Used by:334
Symbol 270 GraphicUsed by:294
Symbol 271 GraphicUsed by:272
Symbol 272 MovieClipUses:271Used by:294
Symbol 273 GraphicUsed by:274
Symbol 274 MovieClipUses:273Used by:289 298 306
Symbol 275 GraphicUsed by:276
Symbol 276 MovieClipUses:275Used by:289 298 306
Symbol 277 GraphicUsed by:278
Symbol 278 MovieClipUses:277Used by:289 298 306
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:279Used by:289 298 306
Symbol 281 GraphicUsed by:282
Symbol 282 MovieClipUses:281Used by:289 298 306
Symbol 283 GraphicUsed by:284
Symbol 284 MovieClipUses:283Used by:289 298 306
Symbol 285 GraphicUsed by:286
Symbol 286 MovieClipUses:285Used by:289 298 306
Symbol 287 GraphicUsed by:288
Symbol 288 MovieClipUses:287Used by:289 298 306
Symbol 289 MovieClipUses:274 276 278 280 282 284 286 288Used by:294 334
Symbol 290 GraphicUsed by:291
Symbol 291 MovieClipUses:290Used by:293
Symbol 292 GraphicUsed by:293
Symbol 293 MovieClip {assets_fla.ui_164} [assets_fla.ui_164]Uses:291 292Used by:294
Symbol 294 MovieClip {assets_fla.ui_153} [assets_fla.ui_153]Uses:270 272 289 293Used by:334
Symbol 295 GraphicUsed by:296
Symbol 296 MovieClipUses:295Used by:297
Symbol 297 MovieClipUses:296Used by:334
Symbol 298 MovieClipUses:274 276 278 280 282 284 286 288Used by:334
Symbol 299 GraphicUsed by:300
Symbol 300 MovieClipUses:299Used by:334
Symbol 301 GraphicUsed by:302
Symbol 302 MovieClipUses:301Used by:334
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClipUses:303Used by:305 307
Symbol 305 MovieClip {assets_fla.ui_171} [assets_fla.ui_171]Uses:304Used by:334
Symbol 306 MovieClipUses:274 276 278 280 282 284 286 288Used by:334
Symbol 307 MovieClip {assets_fla.ui_174} [assets_fla.ui_174]Uses:304Used by:334
Symbol 308 GraphicUsed by:309
Symbol 309 MovieClipUses:308Used by:327
Symbol 310 GraphicUsed by:311
Symbol 311 MovieClipUses:310Used by:312
Symbol 312 MovieClip {assets_fla.ui_177} [assets_fla.ui_177]Uses:311Used by:327
Symbol 313 GraphicUsed by:314
Symbol 314 MovieClipUses:313Used by:315
Symbol 315 MovieClipUses:314Used by:316
Symbol 316 MovieClipUses:315Used by:327
Symbol 317 GraphicUsed by:326
Symbol 318 GraphicUsed by:321
Symbol 319 GraphicUsed by:321
Symbol 320 GraphicUsed by:321
Symbol 321 MovieClipUses:318 319 320Used by:326
Symbol 322 GraphicUsed by:323
Symbol 323 MovieClipUses:322Used by:326
Symbol 324 GraphicUsed by:325
Symbol 325 MovieClipUses:324Used by:326
Symbol 326 MovieClipUses:317 321 323 325Used by:327
Symbol 327 MovieClip {assets_fla.ui_175} [assets_fla.ui_175]Uses:309 312 316 326Used by:334
Symbol 328 GraphicUsed by:334
Symbol 329 GraphicUsed by:334
Symbol 330 GraphicUsed by:334
Symbol 331 GraphicUsed by:334
Symbol 332 GraphicUsed by:334
Symbol 333 GraphicUsed by:334
Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115]Uses:215 219 251 260 269 294 297 289 298 300 302 305 306 307 327 328 329 330 331 332 333Used by:335
Symbol 335 MovieClip {uimain_introscreen} [uimain_introscreen]Uses:334
Symbol 336 GraphicUsed by:344
Symbol 337 TextUses:2Used by:344
Symbol 338 EditableTextUses:2 33Used by:344
Symbol 339 GraphicUsed by:344
Symbol 340 TextUses:2Used by:344
Symbol 341 EditableTextUses:2 33Used by:344
Symbol 342 TextUses:2Used by:344
Symbol 343 GraphicUsed by:344
Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete]Uses:336 337 338 339 340 341 342 343
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:348
Symbol 347 EditableTextUses:190Used by:348
Symbol 348 MovieClip {ui_roundNumber} [ui_roundNumber]Uses:346 347
Symbol 349 GraphicUsed by:352
Symbol 350 GraphicUsed by:351
Symbol 351 MovieClipUses:350Used by:352
Symbol 352 MovieClip {buttonPinkGenericSmaller} [buttonPinkGenericSmaller]Uses:349 351Used by:354
Symbol 353 TextUses:2Used by:354
Symbol 354 MovieClip {ui_mainMenuButton} [ui_mainMenuButton]Uses:352 353
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:357
Symbol 357 MovieClip {ui_gameOver} [ui_gameOver]Uses:356
Symbol 358 GraphicUsed by:361
Symbol 359 ShapeTweeningUsed by:361
Symbol 360 GraphicUsed by:361
Symbol 361 MovieClipUses:358 359 360Used by:363
Symbol 362 EditableTextUses:11Used by:363
Symbol 363 MovieClip {ui_scoreBlip} [ui_scoreBlip]Uses:361 362
Symbol 364 Sound {Electrical_Spark_6} [Electrical_Spark_6]
Symbol 365 Sound {Dirt_Thud_2} [Dirt_Thud_2]
Symbol 366 Sound {Dirt_Thud_1} [Dirt_Thud_1]
Symbol 367 Sound {menuloop} [menuloop]
Symbol 368 Sound {Pig_Squeal_4} [Pig_Squeal_4]
Symbol 369 Sound {gameloop} [gameloop]
Symbol 370 Sound {Success3} [Success3]
Symbol 371 Sound {win4} [win4]
Symbol 372 Sound {Electrical_Spark_4} [Electrical_Spark_4]
Symbol 373 Sound {Dirt_Thud_3} [Dirt_Thud_3]
Symbol 374 Sound {Pig_Squeal_short} [Pig_Squeal_short]
Symbol 375 Sound {Gameover} [Gameover]
Symbol 376 Sound {Electrical_Spark_2} [Electrical_Spark_2]
Symbol 377 Sound {diamondCollect} [diamondCollect]
Symbol 378 Sound {Pig_Grunt_3} [Pig_Grunt_3]
Symbol 379 Sound {Pig_Grunt_2} [Pig_Grunt_2]
Symbol 380 Sound {gameover2} [gameover2]
Symbol 381 Sound {truffleCollect} [truffleCollect]
Symbol 382 GraphicUsed by:404
Symbol 383 GraphicUsed by:404
Symbol 384 GraphicUsed by:404
Symbol 385 GraphicUsed by:386
Symbol 386 MovieClipUses:385Used by:404
Symbol 387 GraphicUsed by:404
Symbol 388 GraphicUsed by:404
Symbol 389 GraphicUsed by:390
Symbol 390 MovieClipUses:389Used by:404
Symbol 391 GraphicUsed by:404
Symbol 392 GraphicUsed by:404
Symbol 393 GraphicUsed by:394
Symbol 394 MovieClipUses:393Used by:404
Symbol 395 GraphicUsed by:404
Symbol 396 GraphicUsed by:404
Symbol 397 GraphicUsed by:398
Symbol 398 MovieClipUses:397Used by:404
Symbol 399 GraphicUsed by:404
Symbol 400 GraphicUsed by:404
Symbol 401 GraphicUsed by:402
Symbol 402 MovieClipUses:401Used by:404
Symbol 403 GraphicUsed by:404
Symbol 404 MovieClip {gClip_batteryRay} [gClip_batteryRay]Uses:178 382 145 383 384 386 387 388 390 391 392 394 395 396 398 399 400 402 403
Symbol 405 GraphicUsed by:416
Symbol 406 GraphicUsed by:416
Symbol 407 GraphicUsed by:416
Symbol 408 GraphicUsed by:416
Symbol 409 GraphicUsed by:416
Symbol 410 GraphicUsed by:416
Symbol 411 GraphicUsed by:416
Symbol 412 GraphicUsed by:416
Symbol 413 GraphicUsed by:416
Symbol 414 GraphicUsed by:416
Symbol 415 GraphicUsed by:416
Symbol 416 MovieClip {gClip_bonusItems} [gClip_bonusItems]Uses:405 406 407 408 409 410 411 412 413 414 415
Symbol 417 GraphicUsed by:418
Symbol 418 MovieClipUses:417Used by:423
Symbol 419 GraphicUsed by:420
Symbol 420 MovieClipUses:419Used by:423
Symbol 421 GraphicUsed by:422
Symbol 422 MovieClipUses:421Used by:423
Symbol 423 MovieClip {gClip_diamond} [gClip_diamond]Uses:178 418 420 422
Symbol 424 GraphicUsed by:432 441
Symbol 425 GraphicUsed by:441
Symbol 426 GraphicUsed by:441
Symbol 427 GraphicUsed by:441
Symbol 428 GraphicUsed by:441
Symbol 429 GraphicUsed by:441
Symbol 430 GraphicUsed by:441
Symbol 431 GraphicUsed by:441
Symbol 432 MovieClipUses:424Used by:441
Symbol 433 GraphicUsed by:441
Symbol 434 GraphicUsed by:441
Symbol 435 GraphicUsed by:441
Symbol 436 GraphicUsed by:441
Symbol 437 GraphicUsed by:441
Symbol 438 GraphicUsed by:441
Symbol 439 GraphicUsed by:441
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClip {gClip_battery} [gClip_battery]Uses:178 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440
Symbol 442 GraphicUsed by:443
Symbol 443 MovieClip {gClip_DebugNode} [gClip_DebugNode]Uses:442
Symbol 444 GraphicUsed by:446 541
Symbol 445 TextUses:190Used by:446
Symbol 446 MovieClip {gClip_FinishLine} [gClip_FinishLine]Uses:444 445
Symbol 447 GraphicUsed by:448
Symbol 448 MovieClip {gClip_indicatorPlayer} [gClip_indicatorPlayer]Uses:447
Symbol 449 GraphicUsed by:452 514 574 580 585 593 598 604 609 614 619 626 631 635
Symbol 450 GraphicUsed by:451
Symbol 451 MovieClipUses:450Used by:452
Symbol 452 MovieClip {gClip_poisonShroom} [gClip_poisonShroom]Uses:449 451
Symbol 453 ShapeTweeningUsed by:456
Symbol 454 ShapeTweeningUsed by:456
Symbol 455 GraphicUsed by:456
Symbol 456 MovieClip {gClip_star} [gClip_star]Uses:453 454 455
Symbol 457 ShapeTweeningUsed by:476
Symbol 458 ShapeTweeningUsed by:476
Symbol 459 ShapeTweeningUsed by:476
Symbol 460 ShapeTweeningUsed by:476
Symbol 461 ShapeTweeningUsed by:476
Symbol 462 ShapeTweeningUsed by:476
Symbol 463 ShapeTweeningUsed by:476
Symbol 464 ShapeTweeningUsed by:476
Symbol 465 ShapeTweeningUsed by:476
Symbol 466 ShapeTweeningUsed by:476
Symbol 467 ShapeTweeningUsed by:476
Symbol 468 ShapeTweeningUsed by:476
Symbol 469 ShapeTweeningUsed by:476
Symbol 470 ShapeTweeningUsed by:476
Symbol 471 ShapeTweeningUsed by:476
Symbol 472 ShapeTweeningUsed by:476
Symbol 473 ShapeTweeningUsed by:476
Symbol 474 ShapeTweeningUsed by:476
Symbol 475 GraphicUsed by:476
Symbol 476 MovieClip {gClip_smokePuff} [gClip_smokePuff]Uses:457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
Symbol 477 ShapeTweeningUsed by:479
Symbol 478 GraphicUsed by:479
Symbol 479 MovieClip {gClip_mediumBluePuff} [gClip_mediumBluePuff]Uses:477 478
Symbol 480 GraphicUsed by:481 632
Symbol 481 MovieClip {gClip_largePipeStraight} [gClip_largePipeStraight]Uses:480
Symbol 482 ShapeTweeningUsed by:487
Symbol 483 ShapeTweeningUsed by:487
Symbol 484 ShapeTweeningUsed by:487
Symbol 485 ShapeTweeningUsed by:487
Symbol 486 GraphicUsed by:487
Symbol 487 MovieClip {gClip_tinySpark} [gClip_tinySpark]Uses:482 483 484 485 486
Symbol 488 GraphicUsed by:508 568
Symbol 489 ShapeTweeningUsed by:508
Symbol 490 ShapeTweeningUsed by:508
Symbol 491 ShapeTweeningUsed by:508
Symbol 492 GraphicUsed by:508
Symbol 493 ShapeTweeningUsed by:508
Symbol 494 ShapeTweeningUsed by:508
Symbol 495 ShapeTweeningUsed by:508
Symbol 496 ShapeTweeningUsed by:508
Symbol 497 ShapeTweeningUsed by:508
Symbol 498 ShapeTweeningUsed by:508
Symbol 499 ShapeTweeningUsed by:508
Symbol 500 ShapeTweeningUsed by:508
Symbol 501 ShapeTweeningUsed by:508
Symbol 502 ShapeTweeningUsed by:508
Symbol 503 ShapeTweeningUsed by:508
Symbol 504 ShapeTweeningUsed by:508
Symbol 505 ShapeTweeningUsed by:508
Symbol 506 ShapeTweeningUsed by:508
Symbol 507 GraphicUsed by:508
Symbol 508 MovieClip {gClip_poisonBubble} [gClip_poisonBubble]Uses:488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507
Symbol 509 GraphicUsed by:510
Symbol 510 MovieClipUses:509Used by:514
Symbol 511 GraphicUsed by:514
Symbol 512 GraphicUsed by:514
Symbol 513 GraphicUsed by:514
Symbol 514 MovieClip {gClip_truffle} [gClip_truffle]Uses:449 510 511 512 513
Symbol 515 ShapeTweeningUsed by:534
Symbol 516 ShapeTweeningUsed by:534
Symbol 517 ShapeTweeningUsed by:534
Symbol 518 ShapeTweeningUsed by:534
Symbol 519 ShapeTweeningUsed by:534
Symbol 520 ShapeTweeningUsed by:534
Symbol 521 ShapeTweeningUsed by:534
Symbol 522 ShapeTweeningUsed by:534
Symbol 523 ShapeTweeningUsed by:534
Symbol 524 ShapeTweeningUsed by:534
Symbol 525 ShapeTweeningUsed by:534
Symbol 526 ShapeTweeningUsed by:534
Symbol 527 ShapeTweeningUsed by:534
Symbol 528 ShapeTweeningUsed by:534
Symbol 529 ShapeTweeningUsed by:534
Symbol 530 ShapeTweeningUsed by:534
Symbol 531 ShapeTweeningUsed by:534
Symbol 532 ShapeTweeningUsed by:534
Symbol 533 GraphicUsed by:534
Symbol 534 MovieClip {gClip_poisonPuff} [gClip_poisonPuff]Uses:515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533
Symbol 535 ShapeTweeningUsed by:539
Symbol 536 ShapeTweeningUsed by:539
Symbol 537 ShapeTweeningUsed by:539
Symbol 538 GraphicUsed by:539
Symbol 539 MovieClip {gClip_tinyPuff1} [gClip_tinyPuff1]Uses:535 536 537 538
Symbol 540 TextUses:190Used by:541
Symbol 541 MovieClip {gClip_StartLine} [gClip_StartLine]Uses:444 540
Symbol 542 GraphicUsed by:543
Symbol 543 MovieClip {gClip_arrow} [gClip_arrow]Uses:542
Symbol 544 GraphicUsed by:545
Symbol 545 MovieClip {gClip_cursor} [gClip_cursor]Uses:544
Symbol 546 GraphicUsed by:557
Symbol 547 GraphicUsed by:557
Symbol 548 GraphicUsed by:557
Symbol 549 GraphicUsed by:557
Symbol 550 GraphicUsed by:557
Symbol 551 GraphicUsed by:557
Symbol 552 GraphicUsed by:557
Symbol 553 GraphicUsed by:557
Symbol 554 GraphicUsed by:557
Symbol 555 GraphicUsed by:557
Symbol 556 GraphicUsed by:557
Symbol 557 MovieClip {gClip_positionDisplay} [gClip_positionDisplay]Uses:546 547 548 549 550 551 552 553 554 555 556
Symbol 558 ShapeTweeningUsed by:568
Symbol 559 ShapeTweeningUsed by:568
Symbol 560 GraphicUsed by:568
Symbol 561 GraphicUsed by:568
Symbol 562 GraphicUsed by:568
Symbol 563 GraphicUsed by:568
Symbol 564 GraphicUsed by:568
Symbol 565 GraphicUsed by:568
Symbol 566 ShapeTweeningUsed by:568
Symbol 567 GraphicUsed by:568
Symbol 568 MovieClip {gClip_pig} [gClip_pig]Uses:488 148 150 152 154 156 558 559 560 561 562 140 563 564 565 566 567
Symbol 569 Bitmap {large_hole_173x154} [large_hole_173x154]
Symbol 570 GraphicUsed by:571
Symbol 571 MovieClipUses:570Used by:574
Symbol 572 GraphicUsed by:573
Symbol 573 MovieClipUses:572Used by:574
Symbol 574 MovieClip {solidObj_rocks5} [solidObj_rocks5]Uses:449 571 573
Symbol 575 GraphicUsed by:576
Symbol 576 MovieClipUses:575Used by:580
Symbol 577 GraphicUsed by:578
Symbol 578 MovieClipUses:577Used by:579
Symbol 579 MovieClipUses:578Used by:580
Symbol 580 MovieClip {solidObj_smallPipeStraight} [solidObj_smallPipeStraight]Uses:449 576 579
Symbol 581 GraphicUsed by:582
Symbol 582 MovieClipUses:581Used by:585
Symbol 583 GraphicUsed by:584
Symbol 584 MovieClipUses:583Used by:585
Symbol 585 MovieClip {solidObj_rocks1} [solidObj_rocks1]Uses:449 582 584
Symbol 586 GraphicUsed by:587
Symbol 587 MovieClipUses:586Used by:590
Symbol 588 GraphicUsed by:589
Symbol 589 MovieClipUses:588Used by:590
Symbol 590 MovieClipUses:587 589Used by:593
Symbol 591 GraphicUsed by:592
Symbol 592 MovieClipUses:591Used by:593
Symbol 593 MovieClip {solidObj_sign1} [solidObj_sign1]Uses:449 590 592
Symbol 594 GraphicUsed by:595
Symbol 595 MovieClipUses:594Used by:598
Symbol 596 GraphicUsed by:597
Symbol 597 MovieClipUses:596Used by:598
Symbol 598 MovieClip {solidObj_rocks2} [solidObj_rocks2]Uses:449 595 597
Symbol 599 GraphicUsed by:600
Symbol 600 MovieClipUses:599Used by:604
Symbol 601 GraphicUsed by:602
Symbol 602 MovieClipUses:601Used by:603
Symbol 603 MovieClipUses:602Used by:604
Symbol 604 MovieClip {solidObj_pipeElbow} [solidObj_pipeElbow]Uses:449 600 603
Symbol 605 GraphicUsed by:606
Symbol 606 MovieClipUses:605Used by:609
Symbol 607 GraphicUsed by:608
Symbol 608 MovieClipUses:607Used by:609
Symbol 609 MovieClip {solidObj_rocks3} [solidObj_rocks3]Uses:449 606 608
Symbol 610 GraphicUsed by:611
Symbol 611 MovieClipUses:610Used by:614
Symbol 612 GraphicUsed by:613
Symbol 613 MovieClipUses:612Used by:614
Symbol 614 MovieClip {solidObj_smallPipeTee} [solidObj_smallPipeTee]Uses:449 611 613
Symbol 615 GraphicUsed by:616
Symbol 616 MovieClipUses:615Used by:619
Symbol 617 GraphicUsed by:618
Symbol 618 MovieClipUses:617Used by:619
Symbol 619 MovieClip {solidObj_smallPipeElbow} [solidObj_smallPipeElbow]Uses:449 616 618
Symbol 620 Bitmap {level_start} [level_start]
Symbol 621 Bitmap {hole_128_01} [hole_128_01]
Symbol 622 GraphicUsed by:623
Symbol 623 MovieClipUses:622Used by:626
Symbol 624 GraphicUsed by:625
Symbol 625 MovieClipUses:624Used by:626
Symbol 626 MovieClip {solidObj_smallPipeCross} [solidObj_smallPipeCross]Uses:449 623 625
Symbol 627 GraphicUsed by:628
Symbol 628 MovieClipUses:627Used by:631
Symbol 629 GraphicUsed by:630
Symbol 630 MovieClipUses:629Used by:631
Symbol 631 MovieClip {solidObj_rocks4} [solidObj_rocks4]Uses:449 628 630
Symbol 632 MovieClipUses:480Used by:635
Symbol 633 GraphicUsed by:634
Symbol 634 MovieClipUses:633Used by:635
Symbol 635 MovieClip {solidObj_pipeStraight} [solidObj_pipeStraight]Uses:449 632 634
Symbol 636 Bitmap {bgtex5} [bgtex5]
Symbol 637 Bitmap {bgtex2} [bgtex2]
Symbol 638 Bitmap {bmd_bgplane} [bmd_bgplane]
Symbol 639 Bitmap {bgtex4} [bgtex4]
Symbol 640 Bitmap {bgtex3} [bgtex3]
Symbol 641 Bitmap {brushAlpha} [brushAlpha]
Symbol 642 Bitmap {bgtex1} [bgtex1]

Instance Names

"_pField"Symbol 5 MovieClip {uimain_loader} [uimain_loader] Frame 1Symbol 3 EditableText
"_base"Symbol 18 MovieClip Frame 1Symbol 17 MovieClip
"_nameField"Symbol 20 MovieClip Frame 1Symbol 12 EditableText
"_rankField"Symbol 20 MovieClip Frame 1Symbol 13 EditableText
"_scoreField"Symbol 20 MovieClip Frame 1Symbol 14 EditableText
"_flag"Symbol 20 MovieClip Frame 1Symbol 19 MovieClip
"_base"Symbol 23 MovieClip {htpNextButton} [htpNextButton] Frame 1Symbol 22 MovieClip
"_roll"Symbol 23 MovieClip {htpNextButton} [htpNextButton] Frame 1Symbol 22 MovieClip
"_base"Symbol 26 MovieClip {htpPrevButton} [htpPrevButton] Frame 1Symbol 22 MovieClip
"_roll"Symbol 26 MovieClip {htpPrevButton} [htpPrevButton] Frame 1Symbol 25 MovieClip
"_row01"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row02"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row03"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row04"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row05"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row06"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row07"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row08"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row09"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_row10"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 20 MovieClip
"_right"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 23 MovieClip {htpNextButton} [htpNextButton]
"_left"Symbol 27 MovieClip {uimain_leaderboard} [uimain_leaderboard] Frame 1Symbol 26 MovieClip {htpPrevButton} [htpPrevButton]
"_base"Symbol 31 MovieClip {uimain_seeklogocorner} [uimain_seeklogocorner] Frame 1Symbol 30 MovieClip
"_roll"Symbol 31 MovieClip {uimain_seeklogocorner} [uimain_seeklogocorner] Frame 1Symbol 30 MovieClip
"_base"Symbol 37 MovieClip {ausFlag} [ausFlag] Frame 1Symbol 36 MovieClip
"_roll"Symbol 37 MovieClip {ausFlag} [ausFlag] Frame 1Symbol 36 MovieClip
"_base"Symbol 38 MovieClip {nzFlag} [nzFlag] Frame 1Symbol 17 MovieClip
"_roll"Symbol 38 MovieClip {nzFlag} [nzFlag] Frame 1Symbol 17 MovieClip
"_ausFlag"Symbol 41 MovieClip {uimain_flags} [uimain_flags] Frame 1Symbol 37 MovieClip {ausFlag} [ausFlag]
"_nzFlag"Symbol 41 MovieClip {uimain_flags} [uimain_flags] Frame 1Symbol 38 MovieClip {nzFlag} [nzFlag]
"_roll"Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric] Frame 1Symbol 44 MovieClip
"_roll"Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric] Frame 1Symbol 51 MovieClip
"_roll"Symbol 56 MovieClip {buttonPinkGenericLarge} [buttonPinkGenericLarge] Frame 1Symbol 55 MovieClip
"_seekMoreGames"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric]
"_credits"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 48 MovieClip {invisBlockButton} [invisBlockButton]
"_visitSeekSite"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 48 MovieClip {invisBlockButton} [invisBlockButton]
"_howToPlay"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric]
"_highScores"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric]
"_embed"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric]
"_sendToFriend"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 52 MovieClip {buttonPinkGeneric} [buttonPinkGeneric]
"_startGame"Symbol 63 MovieClip {uimain_navBar} [uimain_navBar] Frame 1Symbol 56 MovieClip {buttonPinkGenericLarge} [buttonPinkGenericLarge]
"_base"Symbol 75 MovieClip {uimain_soundBtn} [uimain_soundBtn] Frame 1Symbol 74 MovieClip
"_roll"Symbol 75 MovieClip {uimain_soundBtn} [uimain_soundBtn] Frame 1Symbol 74 MovieClip
"_playAgain"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric]
"_submitScore"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric]
"_summaryCopy"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 94 MovieClip
"_score"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 96 EditableText
"_trufflesCollected"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 99 EditableText
"_diamondsCollected"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 100 EditableText
"_pigsLeft"Symbol 103 MovieClip {uimain_gamesummary} [uimain_gamesummary] Frame 1Symbol 101 EditableText
"_base"Symbol 117 MovieClip {tickBox} [tickBox] Frame 1Symbol 116 MovieClip
"_roll"Symbol 117 MovieClip {tickBox} [tickBox] Frame 1Symbol 116 MovieClip
"_submitScore"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 45 MovieClip {buttonBlueGeneric} [buttonBlueGeneric]
"_username"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 108 EditableText
"_emailaddress"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 109 EditableText
"_score"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 114 EditableText
"_optInBox"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 117 MovieClip {tickBox} [tickBox]
"_progress"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 121 MovieClip
"_usernameX"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 123 MovieClip
"_emailaddressX"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 123 MovieClip
"_optNameBases"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 128 MovieClip
"_firstname"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 129 EditableText
"_surname"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 130 EditableText
"_tsandcs"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 48 MovieClip {invisBlockButton} [invisBlockButton]
"_privacyPolicy"Symbol 132 MovieClip {uimain_submitscore} [uimain_submitscore] Frame 1Symbol 48 MovieClip {invisBlockButton} [invisBlockButton]
"_roll"Symbol 170 MovieClip {soapButton} [soapButton] Frame 1Symbol 169 MovieClip
"_roll"Symbol 174 MovieClip {buttonSeek} [buttonSeek] Frame 1Symbol 173 MovieClip
"_soapButton"Symbol 176 MovieClip {uimain_credits} [uimain_credits] Frame 1Symbol 170 MovieClip {soapButton} [soapButton]
"_seekButton"Symbol 176 MovieClip {uimain_credits} [uimain_credits] Frame 1Symbol 174 MovieClip {buttonSeek} [buttonSeek]
"_bg"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 183 MovieClip
"_base"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 185 MovieClip
"_roll"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 187 MovieClip
"_bestScore"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 189 EditableText
"_levelNum"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 191 EditableText
"_lock"Symbol 195 MovieClip {levelSelecButton} [levelSelecButton] Frame 1Symbol 194 MovieClip {assets_fla.mc_48} [assets_fla.mc_48]
"_ls01"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_ls02"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_ls03"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_ls04"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_ls05"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_ls06"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 195 MovieClip {levelSelecButton} [levelSelecButton]
"_right"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 23 MovieClip {htpNextButton} [htpNextButton]
"_left"Symbol 196 MovieClip {uimain_levelSelect} [uimain_levelSelect] Frame 1Symbol 26 MovieClip {htpPrevButton} [htpPrevButton]
"_base"Symbol 203 MovieClip {closeButtonMain} [closeButtonMain] Frame 1Symbol 202 MovieClip
"_roll"Symbol 203 MovieClip {closeButtonMain} [closeButtonMain] Frame 1Symbol 202 MovieClip
"_closeButton"Symbol 204 MovieClip {uimain_base} [uimain_base] Frame 1Symbol 203 MovieClip {closeButtonMain} [closeButtonMain]
"_prevButton"Symbol 213 MovieClip {uimain_howtoplay2} [uimain_howtoplay2] Frame 1Symbol 26 MovieClip {htpPrevButton} [htpPrevButton]
"_inner"Symbol 219 MovieClip {assets_fla.ui_117} [assets_fla.ui_117] Frame 1Symbol 218 MovieClip {assets_fla.ui_118} [assets_fla.ui_118]
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"stones"Symbol 297 MovieClip Frame 1Symbol 296 MovieClip
"sign"Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115] Frame 1Symbol 219 MovieClip {assets_fla.ui_117} [assets_fla.ui_117]
"foreground"Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115] Frame 10Symbol 294 MovieClip {assets_fla.ui_153} [assets_fla.ui_153]
"hole"Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115] Frame 127Symbol 300 MovieClip
"logo"Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115] Frame 138Symbol 327 MovieClip {assets_fla.ui_175} [assets_fla.ui_175]
"_main"Symbol 335 MovieClip {uimain_introscreen} [uimain_introscreen] Frame 1Symbol 334 MovieClip {assets_fla.ui_115} [assets_fla.ui_115]
"_trufflesCollected"Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete] Frame 1Symbol 338 EditableText
"_diamondsCollected"Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete] Frame 1Symbol 338 EditableText
"_pigsLeft"Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete] Frame 1Symbol 338 EditableText
"_levelScore"Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete] Frame 1Symbol 341 EditableText
"_totalScore"Symbol 344 MovieClip {ui_levelComplete} [ui_levelComplete] Frame 1Symbol 341 EditableText
"_num"Symbol 348 MovieClip {ui_roundNumber} [ui_roundNumber] Frame 1Symbol 347 EditableText
"_roll"Symbol 352 MovieClip {buttonPinkGenericSmaller} [buttonPinkGenericSmaller] Frame 1Symbol 351 MovieClip
"_embed"Symbol 354 MovieClip {ui_mainMenuButton} [ui_mainMenuButton] Frame 1Symbol 352 MovieClip {buttonPinkGenericSmaller} [buttonPinkGenericSmaller]
"_base"Symbol 363 MovieClip {ui_scoreBlip} [ui_scoreBlip] Frame 1Symbol 361 MovieClip
"_points"Symbol 363 MovieClip {ui_scoreBlip} [ui_scoreBlip] Frame 1Symbol 362 EditableText
"_internal"Symbol 574 MovieClip {solidObj_rocks5} [solidObj_rocks5] Frame 1Symbol 571 MovieClip
"_col"Symbol 574 MovieClip {solidObj_rocks5} [solidObj_rocks5] Frame 1Symbol 573 MovieClip
"_internal"Symbol 580 MovieClip {solidObj_smallPipeStraight} [solidObj_smallPipeStraight] Frame 1Symbol 576 MovieClip
"_col"Symbol 580 MovieClip {solidObj_smallPipeStraight} [solidObj_smallPipeStraight] Frame 1Symbol 579 MovieClip
"_internal"Symbol 585 MovieClip {solidObj_rocks1} [solidObj_rocks1] Frame 1Symbol 582 MovieClip
"_col"Symbol 585 MovieClip {solidObj_rocks1} [solidObj_rocks1] Frame 1Symbol 584 MovieClip
"_internal"Symbol 593 MovieClip {solidObj_sign1} [solidObj_sign1] Frame 1Symbol 590 MovieClip
"_col"Symbol 593 MovieClip {solidObj_sign1} [solidObj_sign1] Frame 1Symbol 592 MovieClip
"_internal"Symbol 598 MovieClip {solidObj_rocks2} [solidObj_rocks2] Frame 1Symbol 595 MovieClip
"_col"Symbol 598 MovieClip {solidObj_rocks2} [solidObj_rocks2] Frame 1Symbol 597 MovieClip
"_internal"Symbol 604 MovieClip {solidObj_pipeElbow} [solidObj_pipeElbow] Frame 1Symbol 600 MovieClip
"_col"Symbol 604 MovieClip {solidObj_pipeElbow} [solidObj_pipeElbow] Frame 1Symbol 603 MovieClip
"_internal"Symbol 609 MovieClip {solidObj_rocks3} [solidObj_rocks3] Frame 1Symbol 606 MovieClip
"_col"Symbol 609 MovieClip {solidObj_rocks3} [solidObj_rocks3] Frame 1Symbol 608 MovieClip
"_internal"Symbol 614 MovieClip {solidObj_smallPipeTee} [solidObj_smallPipeTee] Frame 1Symbol 611 MovieClip
"_col"Symbol 614 MovieClip {solidObj_smallPipeTee} [solidObj_smallPipeTee] Frame 1Symbol 613 MovieClip
"_internal"Symbol 619 MovieClip {solidObj_smallPipeElbow} [solidObj_smallPipeElbow] Frame 1Symbol 616 MovieClip
"_col"Symbol 619 MovieClip {solidObj_smallPipeElbow} [solidObj_smallPipeElbow] Frame 1Symbol 618 MovieClip
"_internal"Symbol 626 MovieClip {solidObj_smallPipeCross} [solidObj_smallPipeCross] Frame 1Symbol 623 MovieClip
"_col"Symbol 626 MovieClip {solidObj_smallPipeCross} [solidObj_smallPipeCross] Frame 1Symbol 625 MovieClip
"_internal"Symbol 631 MovieClip {solidObj_rocks4} [solidObj_rocks4] Frame 1Symbol 628 MovieClip
"_col"Symbol 631 MovieClip {solidObj_rocks4} [solidObj_rocks4] Frame 1Symbol 630 MovieClip
"_internal"Symbol 635 MovieClip {solidObj_pipeStraight} [solidObj_pipeStraight] Frame 1Symbol 632 MovieClip
"_col"Symbol 635 MovieClip {solidObj_pipeStraight} [solidObj_pipeStraight] Frame 1Symbol 634 MovieClip

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1457 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 5 as "uimain_loader"
ExportAssets (56)Timeline Frame 2Symbol 27 as "uimain_leaderboard"
ExportAssets (56)Timeline Frame 2Symbol 31 as "uimain_seeklogocorner"
ExportAssets (56)Timeline Frame 2Symbol 41 as "uimain_flags"
ExportAssets (56)Timeline Frame 2Symbol 63 as "uimain_navBar"
ExportAssets (56)Timeline Frame 2Symbol 69 as "uimain_jobOp"
ExportAssets (56)Timeline Frame 2Symbol 75 as "uimain_soundBtn"
ExportAssets (56)Timeline Frame 2Symbol 103 as "uimain_gamesummary"
ExportAssets (56)Timeline Frame 2Symbol 132 as "uimain_submitscore"
ExportAssets (56)Timeline Frame 2Symbol 163 as "uimain_howtoplay1"
ExportAssets (56)Timeline Frame 2Symbol 165 as "uimain_bggradient"
ExportAssets (56)Timeline Frame 2Symbol 176 as "uimain_credits"
ExportAssets (56)Timeline Frame 2Symbol 196 as "uimain_levelSelect"
ExportAssets (56)Timeline Frame 2Symbol 199 as "uimain_leadin"
ExportAssets (56)Timeline Frame 2Symbol 204 as "uimain_base"
ExportAssets (56)Timeline Frame 2Symbol 207 as "g_cheat"
ExportAssets (56)Timeline Frame 2Symbol 213 as "uimain_howtoplay2"
ExportAssets (56)Timeline Frame 2Symbol 335 as "uimain_introscreen"
ExportAssets (56)Timeline Frame 2Symbol 23 as "htpNextButton"
ExportAssets (56)Timeline Frame 2Symbol 26 as "htpPrevButton"
ExportAssets (56)Timeline Frame 2Symbol 38 as "nzFlag"
ExportAssets (56)Timeline Frame 2Symbol 37 as "ausFlag"
ExportAssets (56)Timeline Frame 2Symbol 45 as "buttonBlueGeneric"
ExportAssets (56)Timeline Frame 2Symbol 48 as "invisBlockButton"
ExportAssets (56)Timeline Frame 2Symbol 52 as "buttonPinkGeneric"
ExportAssets (56)Timeline Frame 2Symbol 56 as "buttonPinkGenericLarge"
ExportAssets (56)Timeline Frame 2Symbol 117 as "tickBox"
ExportAssets (56)Timeline Frame 2Symbol 170 as "soapButton"
ExportAssets (56)Timeline Frame 2Symbol 174 as "buttonSeek"
ExportAssets (56)Timeline Frame 2Symbol 344 as "ui_levelComplete"
ExportAssets (56)Timeline Frame 2Symbol 348 as "ui_roundNumber"
ExportAssets (56)Timeline Frame 2Symbol 354 as "ui_mainMenuButton"
ExportAssets (56)Timeline Frame 2Symbol 357 as "ui_gameOver"
ExportAssets (56)Timeline Frame 2Symbol 363 as "ui_scoreBlip"
ExportAssets (56)Timeline Frame 2Symbol 195 as "levelSelecButton"
ExportAssets (56)Timeline Frame 2Symbol 364 as "Electrical_Spark_6"
ExportAssets (56)Timeline Frame 2Symbol 365 as "Dirt_Thud_2"
ExportAssets (56)Timeline Frame 2Symbol 366 as "Dirt_Thud_1"
ExportAssets (56)Timeline Frame 2Symbol 367 as "menuloop"
ExportAssets (56)Timeline Frame 2Symbol 368 as "Pig_Squeal_4"
ExportAssets (56)Timeline Frame 2Symbol 369 as "gameloop"
ExportAssets (56)Timeline Frame 2Symbol 370 as "Success3"
ExportAssets (56)Timeline Frame 2Symbol 371 as "win4"
ExportAssets (56)Timeline Frame 2Symbol 372 as "Electrical_Spark_4"
ExportAssets (56)Timeline Frame 2Symbol 373 as "Dirt_Thud_3"
ExportAssets (56)Timeline Frame 2Symbol 374 as "Pig_Squeal_short"
ExportAssets (56)Timeline Frame 2Symbol 375 as "Gameover"
ExportAssets (56)Timeline Frame 2Symbol 376 as "Electrical_Spark_2"
ExportAssets (56)Timeline Frame 2Symbol 377 as "diamondCollect"
ExportAssets (56)Timeline Frame 2Symbol 378 as "Pig_Grunt_3"
ExportAssets (56)Timeline Frame 2Symbol 379 as "Pig_Grunt_2"
ExportAssets (56)Timeline Frame 2Symbol 380 as "gameover2"
ExportAssets (56)Timeline Frame 2Symbol 381 as "truffleCollect"
ExportAssets (56)Timeline Frame 2Symbol 203 as "closeButtonMain"
ExportAssets (56)Timeline Frame 2Symbol 404 as "gClip_batteryRay"
ExportAssets (56)Timeline Frame 2Symbol 416 as "gClip_bonusItems"
ExportAssets (56)Timeline Frame 2Symbol 423 as "gClip_diamond"
ExportAssets (56)Timeline Frame 2Symbol 441 as "gClip_battery"
ExportAssets (56)Timeline Frame 2Symbol 443 as "gClip_DebugNode"
ExportAssets (56)Timeline Frame 2Symbol 446 as "gClip_FinishLine"
ExportAssets (56)Timeline Frame 2Symbol 448 as "gClip_indicatorPlayer"
ExportAssets (56)Timeline Frame 2Symbol 452 as "gClip_poisonShroom"
ExportAssets (56)Timeline Frame 2Symbol 456 as "gClip_star"
ExportAssets (56)Timeline Frame 2Symbol 476 as "gClip_smokePuff"
ExportAssets (56)Timeline Frame 2Symbol 479 as "gClip_mediumBluePuff"
ExportAssets (56)Timeline Frame 2Symbol 481 as "gClip_largePipeStraight"
ExportAssets (56)Timeline Frame 2Symbol 487 as "gClip_tinySpark"
ExportAssets (56)Timeline Frame 2Symbol 508 as "gClip_poisonBubble"
ExportAssets (56)Timeline Frame 2Symbol 514 as "gClip_truffle"
ExportAssets (56)Timeline Frame 2Symbol 534 as "gClip_poisonPuff"
ExportAssets (56)Timeline Frame 2Symbol 539 as "gClip_tinyPuff1"
ExportAssets (56)Timeline Frame 2Symbol 541 as "gClip_StartLine"
ExportAssets (56)Timeline Frame 2Symbol 543 as "gClip_arrow"
ExportAssets (56)Timeline Frame 2Symbol 545 as "gClip_cursor"
ExportAssets (56)Timeline Frame 2Symbol 557 as "gClip_positionDisplay"
ExportAssets (56)Timeline Frame 2Symbol 568 as "gClip_pig"
ExportAssets (56)Timeline Frame 2Symbol 569 as "large_hole_173x154"
ExportAssets (56)Timeline Frame 2Symbol 574 as "solidObj_rocks5"
ExportAssets (56)Timeline Frame 2Symbol 580 as "solidObj_smallPipeStraight"
ExportAssets (56)Timeline Frame 2Symbol 585 as "solidObj_rocks1"
ExportAssets (56)Timeline Frame 2Symbol 593 as "solidObj_sign1"
ExportAssets (56)Timeline Frame 2Symbol 598 as "solidObj_rocks2"
ExportAssets (56)Timeline Frame 2Symbol 604 as "solidObj_pipeElbow"
ExportAssets (56)Timeline Frame 2Symbol 609 as "solidObj_rocks3"
ExportAssets (56)Timeline Frame 2Symbol 614 as "solidObj_smallPipeTee"
ExportAssets (56)Timeline Frame 2Symbol 619 as "solidObj_smallPipeElbow"
ExportAssets (56)Timeline Frame 2Symbol 620 as "level_start"
ExportAssets (56)Timeline Frame 2Symbol 621 as "hole_128_01"
ExportAssets (56)Timeline Frame 2Symbol 626 as "solidObj_smallPipeCross"
ExportAssets (56)Timeline Frame 2Symbol 631 as "solidObj_rocks4"
ExportAssets (56)Timeline Frame 2Symbol 635 as "solidObj_pipeStraight"
ExportAssets (56)Timeline Frame 2Symbol 334 as "assets_fla.ui_115"
ExportAssets (56)Timeline Frame 2Symbol 636 as "bgtex5"
ExportAssets (56)Timeline Frame 2Symbol 637 as "bgtex2"
ExportAssets (56)Timeline Frame 2Symbol 638 as "bmd_bgplane"
ExportAssets (56)Timeline Frame 2Symbol 639 as "bgtex4"
ExportAssets (56)Timeline Frame 2Symbol 640 as "bgtex3"
ExportAssets (56)Timeline Frame 2Symbol 641 as "brushAlpha"
ExportAssets (56)Timeline Frame 2Symbol 642 as "bgtex1"
ExportAssets (56)Timeline Frame 2Symbol 352 as "buttonPinkGenericSmaller"
ExportAssets (56)Timeline Frame 2Symbol 194 as "assets_fla.mc_48"
ExportAssets (56)Timeline Frame 2Symbol 294 as "assets_fla.ui_153"
ExportAssets (56)Timeline Frame 2Symbol 307 as "assets_fla.ui_174"
ExportAssets (56)Timeline Frame 2Symbol 327 as "assets_fla.ui_175"
ExportAssets (56)Timeline Frame 2Symbol 305 as "assets_fla.ui_171"
ExportAssets (56)Timeline Frame 2Symbol 219 as "assets_fla.ui_117"
ExportAssets (56)Timeline Frame 2Symbol 293 as "assets_fla.ui_164"
ExportAssets (56)Timeline Frame 2Symbol 312 as "assets_fla.ui_177"
ExportAssets (56)Timeline Frame 2Symbol 218 as "assets_fla.ui_118"
EnableDebugger2 (64)Timeline Frame 131 bytes "u.$1$cj$vGmSeNcvgKOlPajDvU4g61."
DebugMX1 (63)Timeline Frame 1
SerialNumber (41)Timeline Frame 1

Labels

"preloader_AbstractPreloaderView"Frame 1
"Seek_Truffle_Hunter"Frame 2
"loop"Symbol 219 MovieClip {assets_fla.ui_117} [assets_fla.ui_117] Frame 30




http://swfchan.com/19/90973/info.shtml
Created: 28/3 -2019 03:51:37 Last modified: 28/3 -2019 03:51:37 Server time: 03/05 -2024 10:32:01