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

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

BubbleQuod.swf

This is the info page for
Flash #54513

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


Text
play this game on Kongregate.com

<p align="center"><font face="Courier New" size="14" color="#990000" letterSpacing="0.000000" kerning="1"><b>100%</b></font></p>

<p align="left"><font face="Courier New" size="12" color="#db0202" letterSpacing="0.000000" kerning="1"><b>1654563456456</b></font></p>

play  with
bonus levels

ActionScript [AS3]

Section 1
//CampaignInfo (com.google.analytics.campaign.CampaignInfo) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignInfo { private var _new:Boolean; private var _empty:Boolean; public function CampaignInfo(_arg1:Boolean=true, _arg2:Boolean=false){ _empty = _arg1; _new = _arg2; } public function isEmpty():Boolean{ return (_empty); } public function toURLString():String{ var _local1:Variables; _local1 = toVariables(); return (_local1.toString()); } public function toVariables():Variables{ var _local1:Variables; _local1 = new Variables(); _local1.URIencode = true; if (((!(isEmpty())) && (isNew()))){ _local1.utmcn = utmcn; }; if (((!(isEmpty())) && (!(isNew())))){ _local1.utmcr = utmcr; }; return (_local1); } public function isNew():Boolean{ return (_new); } public function get utmcn():String{ return ("1"); } public function get utmcr():String{ return ("1"); } } }//package com.google.analytics.campaign
Section 2
//CampaignKey (com.google.analytics.campaign.CampaignKey) package com.google.analytics.campaign { public class CampaignKey { public var UCMD:String;// = "utm_medium" public var UCID:String;// = "utm_id" public var UCTR:String;// = "utm_term" public var UCSR:String;// = "utm_source" public var UCNO:String;// = "utm_nooverride" public var UCCN:String;// = "utm_campaign" public var UGCLID:String;// = "gclid" public var UCCT:String;// = "utm_content" } }//package com.google.analytics.campaign
Section 3
//CampaignManager (com.google.analytics.campaign.CampaignManager) package com.google.analytics.campaign { import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; public class CampaignManager { private var _config:Configuration; private var _domainHash:Number; private var _debug:DebugConfiguration; private var _timeStamp:Number; private var _referrer:String; private var _buffer:Buffer; public static const trackingDelimiter:String = "|"; public function CampaignManager(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Number, _arg5:String, _arg6:Number){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _domainHash = _arg4; _referrer = _arg5; _timeStamp = _arg6; } public function hasNoOverride(_arg1:String):Boolean{ var _local2:CampaignKey; var _local3:Variables; var _local4:String; _local2 = _config.campaignKey; if (_arg1 == ""){ return (false); }; _local3 = new Variables(_arg1); _local4 = ""; if (_local3.hasOwnProperty(_local2.UCNO)){ _local4 = _local3[_local2.UCNO]; switch (_local4){ case "1": return (true); case "": case "0": default: return (false); }; }; return (false); } public function getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{ var _local3:CampaignInfo; var _local4:CampaignTracker; var _local5:Boolean; var _local6:Boolean; var _local7:int; var _local8:CampaignTracker; var _local9:int; _local3 = new CampaignInfo(); _local5 = false; _local6 = false; _local7 = 0; if (((_config.allowLinker) && (_buffer.isGenuine()))){ if (!_buffer.hasUTMZ()){ return (_local3); }; }; _local4 = getTrackerFromSearchString(_arg1); if (isValid(_local4)){ _local6 = hasNoOverride(_arg1); if (((_local6) && (!(_buffer.hasUTMZ())))){ return (_local3); }; }; if (!isValid(_local4)){ _local4 = getOrganicCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(_local4)))){ return (_local3); }; }; if (((!(isValid(_local4))) && (_arg2))){ _local4 = getReferrerCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(_local4)))){ return (_local3); }; }; if (!isValid(_local4)){ if (((!(_buffer.hasUTMZ())) && (_arg2))){ _local4 = getDirectCampaign(); }; }; if (!isValid(_local4)){ return (_local3); }; if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){ _local8 = new CampaignTracker(); _local8.fromTrackerString(_buffer.utmz.campaignTracking); _local5 = (_local8.toTrackerString() == _local4.toTrackerString()); _local7 = _buffer.utmz.responseCount; }; if (((!(_local5)) || (_arg2))){ _local9 = _buffer.utma.sessionCount; _local7++; if (_local9 == 0){ _local9 = 1; }; _buffer.utmz.domainHash = _domainHash; _buffer.utmz.campaignCreation = _timeStamp; _buffer.utmz.campaignSessions = _local9; _buffer.utmz.responseCount = _local7; _buffer.utmz.campaignTracking = _local4.toTrackerString(); _debug.info(_buffer.utmz.toString(), VisualDebugMode.geek); _local3 = new CampaignInfo(false, true); } else { _local3 = new CampaignInfo(false, false); }; return (_local3); } public function isValid(_arg1:CampaignTracker):Boolean{ if (((_arg1) && (_arg1.isValid()))){ return (true); }; return (false); } public function getTrackerFromSearchString(_arg1:String):CampaignTracker{ var _local2:CampaignTracker; var _local3:CampaignTracker; var _local4:CampaignKey; var _local5:Variables; _local2 = getOrganicCampaign(); _local3 = new CampaignTracker(); _local4 = _config.campaignKey; if (_arg1 == ""){ return (_local3); }; _local5 = new Variables(_arg1); if (_local5.hasOwnProperty(_local4.UCID)){ _local3.id = _local5[_local4.UCID]; }; if (_local5.hasOwnProperty(_local4.UCSR)){ _local3.source = _local5[_local4.UCSR]; }; if (_local5.hasOwnProperty(_local4.UGCLID)){ _local3.clickId = _local5[_local4.UGCLID]; }; if (_local5.hasOwnProperty(_local4.UCCN)){ _local3.name = _local5[_local4.UCCN]; } else { _local3.name = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCMD)){ _local3.medium = _local5[_local4.UCMD]; } else { _local3.medium = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCTR)){ _local3.term = _local5[_local4.UCTR]; } else { if (((_local2) && (!((_local2.term == ""))))){ _local3.term = _local2.term; }; }; if (_local5.hasOwnProperty(_local4.UCCT)){ _local3.content = _local5[_local4.UCCT]; }; return (_local3); } public function getOrganicCampaign():CampaignTracker{ var _local1:CampaignTracker; var _local2:URL; var _local3:String; var _local4:Array; var _local5:OrganicReferrer; var _local6:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; _local2 = new URL(_referrer); _local3 = ""; if (_local2.hostName != ""){ if (_local2.hostName.indexOf(".") > -1){ _local4 = _local2.hostName.split("."); switch (_local4.length){ case 2: _local3 = _local4[0]; break; case 3: _local3 = _local4[1]; break; }; }; }; if (_config.organic.match(_local3)){ _local5 = _config.organic.getReferrerByName(_local3); _local6 = _config.organic.getKeywordValue(_local5, _local2.search); _local1 = new CampaignTracker(); _local1.source = _local5.engine; _local1.name = "(organic)"; _local1.medium = "organic"; _local1.term = _local6; }; return (_local1); } public function isIgnoredReferral(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "referral")))){ return (_config.organic.isIgnoredReferral(_arg1.source)); }; return (false); } public function getDirectCampaign():CampaignTracker{ var _local1:CampaignTracker; _local1 = new CampaignTracker(); _local1.source = "(direct)"; _local1.name = "(direct)"; _local1.medium = "(none)"; return (_local1); } public function isIgnoredKeyword(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "organic")))){ return (_config.organic.isIgnoredKeyword(_arg1.term)); }; return (false); } public function getReferrerCampaign():CampaignTracker{ var _local1:CampaignTracker; var _local2:URL; var _local3:String; var _local4:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; _local2 = new URL(_referrer); _local3 = _local2.hostName; _local4 = _local2.path; if (_local3.indexOf("www.") == 0){ _local3 = _local3.substr(4); }; _local1 = new CampaignTracker(); _local1.source = _local3; _local1.name = "(referral)"; _local1.medium = "referral"; _local1.content = _local4; return (_local1); } public static function isInvalidReferrer(_arg1:String):Boolean{ var _local2:URL; if ((((((_arg1 == "")) || ((_arg1 == "-")))) || ((_arg1 == "0")))){ return (true); }; if (_arg1.indexOf("://") > -1){ _local2 = new URL(_arg1); if ((((_local2.protocol == Protocols.file)) || ((_local2.protocol == Protocols.none)))){ return (true); }; }; return (false); } public static function isFromGoogleCSE(_arg1:String, _arg2:Configuration):Boolean{ var _local3:URL; _local3 = new URL(_arg1); if (_local3.hostName.indexOf(_arg2.google) > -1){ if (_local3.search.indexOf((_arg2.googleSearchParam + "=")) > -1){ if (_local3.path == ("/" + _arg2.googleCsePath)){ return (true); }; }; }; return (false); } } }//package com.google.analytics.campaign
Section 4
//CampaignTracker (com.google.analytics.campaign.CampaignTracker) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignTracker { public var content:String; public var source:String; public var clickId:String; public var name:String; public var term:String; public var medium:String; public var id:String; public function CampaignTracker(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:String="", _arg5:String="", _arg6:String="", _arg7:String=""){ this.id = _arg1; this.source = _arg2; this.clickId = _arg3; this.name = _arg4; this.medium = _arg5; this.term = _arg6; this.content = _arg7; } public function isValid():Boolean{ if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){ return (true); }; return (false); } public function toTrackerString():String{ var _local1:Array = []; _addIfNotEmpty(_local1, "utmcsr=", source); _addIfNotEmpty(_local1, "utmccn=", name); _addIfNotEmpty(_local1, "utmcmd=", medium); _addIfNotEmpty(_local1, "utmctr=", term); _addIfNotEmpty(_local1, "utmcct=", content); _addIfNotEmpty(_local1, "utmcid=", id); _addIfNotEmpty(_local1, "utmgclid=", clickId); return (_local1.join(CampaignManager.trackingDelimiter)); } private function _addIfNotEmpty(_arg1:Array, _arg2:String, _arg3:String):void{ if (_arg3 != ""){ _arg3 = _arg3.split("+").join("%20"); _arg3 = _arg3.split(" ").join("%20"); _arg1.push((_arg2 + _arg3)); }; } public function fromTrackerString(_arg1:String):void{ var _local2:String = _arg1.split(CampaignManager.trackingDelimiter).join("&"); var _local3:Variables = new Variables(_local2); if (_local3.hasOwnProperty("utmcid")){ this.id = _local3["utmcid"]; }; if (_local3.hasOwnProperty("utmcsr")){ this.source = _local3["utmcsr"]; }; if (_local3.hasOwnProperty("utmccn")){ this.name = _local3["utmccn"]; }; if (_local3.hasOwnProperty("utmcmd")){ this.medium = _local3["utmcmd"]; }; if (_local3.hasOwnProperty("utmctr")){ this.term = _local3["utmctr"]; }; if (_local3.hasOwnProperty("utmcct")){ this.content = _local3["utmcct"]; }; if (_local3.hasOwnProperty("utmgclid")){ this.clickId = _local3["utmgclid"]; }; } } }//package com.google.analytics.campaign
Section 5
//BrowserInfo (com.google.analytics.core.BrowserInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; public class BrowserInfo { private var _config:Configuration; private var _info:Environment; public function BrowserInfo(_arg1:Configuration, _arg2:Environment){ _config = _arg1; _info = _arg2; } public function get utmul():String{ return (_info.language.toLowerCase()); } public function get utmje():String{ return ("0"); } public function toURLString():String{ var _local1:Variables; _local1 = toVariables(); return (_local1.toString()); } public function get utmsr():String{ return (((_info.screenWidth + "x") + _info.screenHeight)); } public function get utmcs():String{ return (_info.languageEncoding); } public function get utmfl():String{ var _local1:Version; if (_config.detectFlash){ _local1 = _info.flashVersion; return (((((_local1.major + ".") + _local1.minor) + " r") + _local1.build)); }; return ("-"); } public function toVariables():Variables{ var _local1:Variables; _local1 = new Variables(); _local1.URIencode = true; _local1.utmcs = utmcs; _local1.utmsr = utmsr; _local1.utmsc = utmsc; _local1.utmul = utmul; _local1.utmje = utmje; _local1.utmfl = utmfl; return (_local1); } public function get utmsc():String{ return ((_info.screenColorDepth + "-bit")); } } }//package com.google.analytics.core
Section 6
//Buffer (com.google.analytics.core.Buffer) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.data.*; public dynamic class Buffer { private var _SO:SharedObject; private var _OBJ:Object; private var _utma:UTMA; private var _utmb:UTMB; private var _utmc:UTMC; private var _debug:DebugConfiguration; private var _utmk:UTMK; private var _config:Configuration; private var _utmv:UTMV; private var _utmz:UTMZ; private var _volatile:Boolean; public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){ var _local5:Boolean; var _local6:String; super(); _config = _arg1; _debug = _arg2; UTMB.defaultTimespan = _config.sessionTimeout; UTMZ.defaultTimespan = _config.conversionTimeout; if (!_arg3){ _SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath); _local5 = false; if (_SO.data.utma){ if (!hasUTMA()){ _createUMTA(); }; _utma.fromSharedObject(_SO.data.utma); if (_debug.verbose){ _debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek); }; if (_utma.isExpired()){ if (_debug.verbose){ _debug.warning("UTMA has expired", VisualDebugMode.advanced); }; _clearUTMA(); _local5 = true; }; }; if (_SO.data.utmb){ if (!hasUTMB()){ _createUMTB(); }; _utmb.fromSharedObject(_SO.data.utmb); if (_debug.verbose){ _debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek); }; if (_utmb.isExpired()){ if (_debug.verbose){ _debug.warning("UTMB has expired", VisualDebugMode.advanced); }; _clearUTMB(); _local5 = true; }; }; if (_SO.data.utmc){ delete _SO.data.utmc; _local5 = true; }; if (_SO.data.utmk){ if (!hasUTMK()){ _createUMTK(); }; _utmk.fromSharedObject(_SO.data.utmk); if (_debug.verbose){ _debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek); }; }; if (_SO.data.utmv){ if (!hasUTMV()){ _createUMTV(); }; _utmv.fromSharedObject(_SO.data.utmv); if (_debug.verbose){ _debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek); }; if (_utmv.isExpired()){ if (_debug.verbose){ _debug.warning("UTMV has expired", VisualDebugMode.advanced); }; _clearUTMV(); _local5 = true; }; }; if (_SO.data.utmz){ if (!hasUTMZ()){ _createUMTZ(); }; _utmz.fromSharedObject(_SO.data.utmz); if (_debug.verbose){ _debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek); }; if (_utmz.isExpired()){ if (_debug.verbose){ _debug.warning("UTMZ has expired", VisualDebugMode.advanced); }; _clearUTMZ(); _local5 = true; }; }; if (_local5){ save(); }; } else { _OBJ = new Object(); if (_arg4){ for (_local6 in _arg4) { _OBJ[_local6] = _arg4[_local6]; }; }; }; _volatile = _arg3; } public function clearCookies():void{ utma.reset(); utmb.reset(); utmc.reset(); utmz.reset(); utmv.reset(); utmk.reset(); } public function save():void{ var flushStatus:String; if (!isVolatile()){ flushStatus = null; try { flushStatus = _SO.flush(); } catch(e:Error) { _debug.warning("Error...Could not write SharedObject to disk"); }; switch (flushStatus){ case SharedObjectFlushStatus.PENDING: _debug.info("Requesting permission to save object..."); _SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); break; case SharedObjectFlushStatus.FLUSHED: _debug.info("Value flushed to disk."); break; }; }; } public function get utmv():UTMV{ if (!hasUTMV()){ _createUMTV(); }; return (_utmv); } public function get 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 isGenuine():Boolean{ if (!hasUTMK()){ return (true); }; return ((utmk.hash == generateCookiesHash())); } public function resetCurrentSession():void{ _clearUTMB(); _clearUTMC(); save(); } public function hasUTMK():Boolean{ if (_utmk){ return (true); }; return (false); } public function generateCookiesHash():Number{ var _local1 = ""; _local1 = (_local1 + utma.valueOf()); _local1 = (_local1 + utmb.valueOf()); _local1 = (_local1 + utmc.valueOf()); _local1 = (_local1 + utmz.valueOf()); _local1 = (_local1 + utmv.valueOf()); return (Utils.generateHash(_local1)); } private function _createUMTB():void{ _utmb = new UTMB(); _utmb.proxy = this; } private function _createUMTC():void{ _utmc = new UTMC(); } private function _createUMTA():void{ _utma = new UTMA(); _utma.proxy = this; } public function hasUTMV():Boolean{ if (_utmv){ return (true); }; return (false); } private function _createUMTK():void{ _utmk = new UTMK(); _utmk.proxy = this; } public function hasUTMZ():Boolean{ if (_utmz){ return (true); }; return (false); } private function _createUMTV():void{ _utmv = new UTMV(); _utmv.proxy = this; } private function _onFlushStatus(_arg1:NetStatusEvent):void{ _debug.info("User closed permission dialog..."); switch (_arg1.info.code){ case "SharedObject.Flush.Success": _debug.info("User granted permission -- value saved."); break; case "SharedObject.Flush.Failed": _debug.info("User denied permission -- value not saved."); break; }; _SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); } private function _createUMTZ():void{ _utmz = new UTMZ(); _utmz.proxy = this; } public function updateUTMA(_arg1:Number):void{ if (_debug.verbose){ _debug.info((("updateUTMA( " + _arg1) + " )"), VisualDebugMode.advanced); }; if (!utma.isEmpty()){ if (isNaN(utma.sessionCount)){ utma.sessionCount = 1; } else { utma.sessionCount = (utma.sessionCount + 1); }; utma.lastTime = utma.currentTime; utma.currentTime = _arg1; }; } private function _clearUTMA():void{ _utma = null; if (!isVolatile()){ _SO.data.utma = null; delete _SO.data.utma; }; } private function _clearUTMC():void{ _utmc = null; } private function _clearUTMB():void{ _utmb = null; if (!isVolatile()){ _SO.data.utmb = null; delete _SO.data.utmb; }; } public function update(_arg1:String, _arg2):void{ if (isVolatile()){ _OBJ[_arg1] = _arg2; } else { _SO.data[_arg1] = _arg2; }; } private function _clearUTMZ():void{ _utmz = null; if (!isVolatile()){ _SO.data.utmz = null; delete _SO.data.utmz; }; } private function _clearUTMV():void{ _utmv = null; if (!isVolatile()){ _SO.data.utmv = null; delete _SO.data.utmv; }; } public function isVolatile():Boolean{ return (_volatile); } public function get utma():UTMA{ if (!hasUTMA()){ _createUMTA(); }; return (_utma); } public function get utmb():UTMB{ if (!hasUTMB()){ _createUMTB(); }; return (_utmb); } public function get utmc():UTMC{ if (!hasUTMC()){ _createUMTC(); }; return (_utmc); } public function get utmk():UTMK{ if (!hasUTMK()){ _createUMTK(); }; return (_utmk); } } }//package com.google.analytics.core
Section 7
//DocumentInfo (com.google.analytics.core.DocumentInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; public class DocumentInfo { private var _config:Configuration; private var _utmr:String; private var _adSense:AdSenseGlobals; private var _info:Environment; private var _pageURL:String; public function DocumentInfo(_arg1:Configuration, _arg2:Environment, _arg3:String, _arg4:String=null, _arg5:AdSenseGlobals=null){ _config = _arg1; _info = _arg2; _utmr = _arg3; _pageURL = _arg4; _adSense = _arg5; } public function get utmr():String{ if (!_utmr){ return ("-"); }; return (_utmr); } public function toURLString():String{ var _local1:Variables; _local1 = toVariables(); return (_local1.toString()); } private function _renderPageURL(_arg1:String=""):String{ var _local2:String; var _local3:String; _local2 = _info.locationPath; _local3 = _info.locationSearch; if (((!(_arg1)) || ((_arg1 == "")))){ _arg1 = (_local2 + unescape(_local3)); }; return (_arg1); } public function get utmp():String{ return (_renderPageURL(_pageURL)); } private function _generateHitId():Number{ var _local1:Number; if (((_adSense.hid) && (!((_adSense.hid == ""))))){ _local1 = Number(_adSense.hid); } else { _local1 = Math.round((Math.random() * 2147483647)); _adSense.hid = String(_local1); }; return (_local1); } public function get utmhid():String{ return (String(_generateHitId())); } public function toVariables():Variables{ var _local1:Variables; _local1 = new Variables(); _local1.URIencode = true; if (((_config.detectTitle) && (!((utmdt == ""))))){ _local1.utmdt = utmdt; }; _local1.utmhid = utmhid; _local1.utmr = utmr; _local1.utmp = utmp; return (_local1); } public function get utmdt():String{ return (_info.documentTitle); } } }//package com.google.analytics.core
Section 8
//Domain (com.google.analytics.core.Domain) package com.google.analytics.core { import com.google.analytics.debug.*; public class Domain { private var _mode:DomainNameMode; private var _debug:DebugConfiguration; private var _name:String; public function Domain(_arg1:DomainNameMode=null, _arg2:String="", _arg3:DebugConfiguration=null){ _debug = _arg3; if (_arg1 == null){ _arg1 = DomainNameMode.auto; }; _mode = _arg1; if (_arg1 == DomainNameMode.custom){ this.name = _arg2; } else { _name = _arg2; }; } public function get mode():DomainNameMode{ return (_mode); } public function set mode(_arg1:DomainNameMode):void{ _mode = _arg1; if (_mode == DomainNameMode.none){ _name = ""; }; } public function get name():String{ return (_name); } public function set name(_arg1:String):void{ if (((!((_arg1.charAt(0) == "."))) && (_debug))){ _debug.warning(("missing leading period \".\", cookie will only be accessible on " + _arg1), VisualDebugMode.geek); }; _name = _arg1; } } }//package com.google.analytics.core
Section 9
//DomainNameMode (com.google.analytics.core.DomainNameMode) package com.google.analytics.core { public class DomainNameMode { private var _value:int; private var _name:String; public static const custom:DomainNameMode = new DomainNameMode(2, "custom"); ; public static const none:DomainNameMode = new DomainNameMode(0, "none"); ; public static const auto:DomainNameMode = new DomainNameMode(1, "auto"); ; public function DomainNameMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 10
//EventInfo (com.google.analytics.core.EventInfo) package com.google.analytics.core { import com.google.analytics.utils.*; import com.google.analytics.data.*; public class EventInfo { private var _isEventHit:Boolean; private var _ext10:X10; private var _x10:X10; public function EventInfo(_arg1:Boolean, _arg2:X10, _arg3:X10=null){ _isEventHit = _arg1; _x10 = _arg2; _ext10 = _arg3; } public function toURLString():String{ var _local1:Variables; _local1 = toVariables(); return (_local1.toString()); } public function get utmt():String{ return ("event"); } public function get utme():String{ return (_x10.renderMergedUrlString(_ext10)); } public function toVariables():Variables{ var _local1:Variables; _local1 = new Variables(); _local1.URIencode = true; if (_isEventHit){ _local1.utmt = utmt; }; _local1.utme = utme; return (_local1); } } }//package com.google.analytics.core
Section 11
//EventTracker (com.google.analytics.core.EventTracker) package com.google.analytics.core { import com.google.analytics.v4.*; public class EventTracker { private var _parent:GoogleAnalyticsAPI; public var name:String; public function EventTracker(_arg1:String, _arg2:GoogleAnalyticsAPI){ this.name = _arg1; _parent = _arg2; } public function trackEvent(_arg1:String, _arg2:String=null, _arg3:Number=NaN):Boolean{ return (_parent.trackEvent(name, _arg1, _arg2, _arg3)); } } }//package com.google.analytics.core
Section 12
//ga_internal (com.google.analytics.core.ga_internal) package com.google.analytics.core { public namespace ga_internal; }//package com.google.analytics.core
Section 13
//GIFRequest (com.google.analytics.core.GIFRequest) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import flash.net.*; import com.google.analytics.utils.*; import flash.system.*; public class GIFRequest { private var _info:Environment; private var _count:int; private var _utmac:String; private var _alertcount:int; private var _debug:DebugConfiguration; private var _lastRequest:URLRequest; private var _buffer:Buffer; private var _config:Configuration; private var _requests:Array; public function GIFRequest(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Environment){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _info = _arg4; _count = 0; _alertcount = 0; _requests = []; } public function get utmn():String{ return ((Utils.generate32bitRandom() as String)); } public function onIOError(_arg1:IOErrorEvent):void{ var _local2:String = _lastRequest.url; var _local3:String = String((_requests.length - 1)); var _local4 = (("Gif Request #" + _local3) + " failed"); if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local2.indexOf("?") > -1){ _local2 = _local2.split("?")[0]; }; _local2 = _shortenURL(_local2); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local4 = (_local4 + ((" \"" + _local2) + "\" does not exists or is unreachable")); }; _debug.failure(_local4); } else { _debug.warning(_local4); }; _removeListeners(_arg1.target); } public function send(_arg1:String, _arg2:Variables=null, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local5:String; var _local6:URLRequest; var _local7:URLRequest; _utmac = _arg1; if (!_arg2){ _arg2 = new Variables(); }; _arg2.URIencode = false; _arg2.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"]; _arg2.post = ["utmcc"]; if (_debug.verbose){ _debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek); }; if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (_arg3))){ if (_arg4){ updateToken(); }; if (((((_arg3) || (!(_arg4)))) || ((_buffer.utmb.token >= 1)))){ if (((!(_arg3)) && (_arg4))){ _buffer.utmb.token = (_buffer.utmb.token - 1); }; _buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1); if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; _arg2.utmwv = utmwv; _arg2.utmn = Utils.generate32bitRandom(); if (_info.domainName != ""){ _arg2.utmhn = _info.domainName; }; if (_config.sampleRate < 1){ _arg2.utmsp = (_config.sampleRate * 100); }; if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){ _local5 = _info.locationSWFPath; if (_local5.lastIndexOf("/") > 0){ _local5 = _local5.substring(0, _local5.lastIndexOf("/")); }; _local6 = new URLRequest(); if (_config.localGIFpath.indexOf("http") == 0){ _local6.url = _config.localGIFpath; } else { _local6.url = (_local5 + _config.localGIFpath); }; _local6.url = (_local6.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local6); } else { sendRequest(_local6); }; }; if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){ _local7 = new URLRequest(); if (_info.protocol == Protocols.HTTPS){ _local7.url = _config.secureRemoteGIFpath; } else { if (_info.protocol == Protocols.HTTP){ _local7.url = _config.remoteGIFpath; } else { _local7.url = _config.remoteGIFpath; }; }; _arg2.utmac = utmac; _arg2.utmcc = encodeURIComponent(utmcc); _local7.url = (_local7.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local7); } else { sendRequest(_local7); }; }; }; }; } public function onSecurityError(_arg1:SecurityErrorEvent):void{ if (_debug.GIFRequests){ _debug.failure(_arg1.text); }; } public function get utmsp():String{ return (((_config.sampleRate * 100) as String)); } public function get utmcc():String{ var _local1:Array = []; if (_buffer.hasUTMA()){ _local1.push((_buffer.utma.toURLString() + ";")); }; if (_buffer.hasUTMZ()){ _local1.push((_buffer.utmz.toURLString() + ";")); }; if (_buffer.hasUTMV()){ _local1.push((_buffer.utmv.toURLString() + ";")); }; return (_local1.join("+")); } public function get utmac():String{ return (_utmac); } public function get utmwv():String{ return (_config.version); } public function sendRequest(_arg1:URLRequest):void{ var request = _arg1; var loader:Loader = new Loader(); loader.name = String(_count++); var context:LoaderContext = new LoaderContext(false); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _lastRequest = request; _requests[loader.name] = new RequestObject(request); try { loader.load(request, context); } catch(e:Error) { _debug.failure("\"Loader.load()\" could not instanciate Gif Request"); }; } private function _removeListeners(_arg1:Object):void{ _arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); _arg1.removeEventListener(Event.COMPLETE, onComplete); } public function updateToken():void{ var _local2:Number; var _local1:Number = new Date().getTime(); _local2 = ((_local1 - _buffer.utmb.lastTime) * (_config.tokenRate / 1000)); if (_debug.verbose){ _debug.info(("tokenDelta: " + _local2), VisualDebugMode.geek); }; if (_local2 >= 1){ _buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + _local2)), _config.bucketCapacity); _buffer.utmb.lastTime = _local1; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; }; } public function get utmhn():String{ return (_info.domainName); } private function _shortenURL(_arg1:String):String{ var _local2:Array; if (_arg1.length > 60){ _local2 = _arg1.split("/"); while (_arg1.length > 60) { _local2.shift(); _arg1 = ("../" + _local2.join("/")); }; }; return (_arg1); } private function _debugSend(_arg1:URLRequest):void{ var _local3:String; var _local2 = ""; switch (_debug.mode){ case VisualDebugMode.geek: _local2 = ((("Gif Request #" + _alertcount) + ":\n") + _arg1.url); break; case VisualDebugMode.advanced: _local3 = _arg1.url; if (_local3.indexOf("?") > -1){ _local3 = _local3.split("?")[0]; }; _local3 = _shortenURL(_local3); _local2 = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?"); break; case VisualDebugMode.basic: default: _local2 = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?"); }; _debug.alertGifRequest(_local2, _arg1, this); _alertcount++; } public function onComplete(_arg1:Event):void{ var _local2:String = _arg1.target.loader.name; _requests[_local2].complete(); var _local3 = (("Gif Request #" + _local2) + " sent"); var _local4:String = _requests[_local2].request.url; if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local4.indexOf("?") > -1){ _local4 = _local4.split("?")[0]; }; _local4 = _shortenURL(_local4); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local3 = (_local3 + ((" to \"" + _local4) + "\"")); }; _debug.success(_local3); } else { _debug.info(_local3); }; _removeListeners(_arg1.target); } } }//package com.google.analytics.core
Section 14
//IdleTimer (com.google.analytics.core.IdleTimer) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import flash.utils.*; public class IdleTimer { private var _loop:Timer; private var _stage:Stage; private var _lastMove:int; private var _debug:DebugConfiguration; private var _session:Timer; private var _inactivity:Number; private var _buffer:Buffer; public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){ var _local5:Number; var _local6:Number; var _local7:Number; super(); _local5 = _arg1.idleLoop; _local6 = _arg1.idleTimeout; _local7 = _arg1.sessionTimeout; _loop = new Timer((_local5 * 1000)); _session = new Timer((_local7 * 1000), 1); _debug = _arg2; _stage = _arg3.stage; _buffer = _arg4; _lastMove = getTimer(); _inactivity = (_local6 * 1000); _loop.addEventListener(TimerEvent.TIMER, checkForIdle); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); _stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); _debug.info(((((("delay: " + _local5) + "sec , inactivity: ") + _local6) + "sec, sessionTimeout: ") + _local7), VisualDebugMode.geek); _loop.start(); } private function onMouseMove(_arg1:MouseEvent):void{ _lastMove = getTimer(); if (_session.running){ _debug.info("session timer reset", VisualDebugMode.geek); _session.reset(); }; } public function endSession(_arg1:TimerEvent):void{ _session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession); _debug.info("session timer end session", VisualDebugMode.geek); _session.reset(); _buffer.resetCurrentSession(); _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); _debug.info(_buffer.utmc.toString(), VisualDebugMode.geek); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); } public function checkForIdle(_arg1:TimerEvent):void{ var _local2:int; _local2 = getTimer(); if ((_local2 - _lastMove) >= _inactivity){ if (!_session.running){ _debug.info("session timer start", VisualDebugMode.geek); _session.start(); }; }; } } }//package com.google.analytics.core
Section 15
//Organic (com.google.analytics.core.Organic) package com.google.analytics.core { import com.google.analytics.utils.*; public class Organic { private var _sourcesCache:Array; private var _sourcesEngine:Array; private var _ignoredKeywords:Array; private var _ignoredReferralsCache:Object; private var _ignoredReferrals:Array; private var _ignoredKeywordsCache:Object; private var _sources:Array; public static var throwErrors:Boolean = false; public function Organic(){ _sources = []; _sourcesCache = []; _sourcesEngine = []; _ignoredReferrals = []; _ignoredReferralsCache = {}; _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{ var _local3:String; _local3 = _arg1.keyword; return (getKeywordValueFromPath(_local3, _arg2)); } public function isIgnoredKeyword(_arg1:String):Boolean{ if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function isIgnoredReferral(_arg1:String):Boolean{ if (_ignoredReferralsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function clear():void{ clearEngines(); clearIgnoredReferrals(); clearIgnoredKeywords(); } public function get ignoredKeywordsCount():int{ return (_ignoredKeywords.length); } public function match(_arg1:String):Boolean{ if (_arg1 == ""){ return (false); }; _arg1 = _arg1.toLowerCase(); if (_sourcesEngine[_arg1] != undefined){ return (true); }; return (false); } public function get count():int{ return (_sources.length); } public function addSource(_arg1:String, _arg2:String):void{ var _local3:OrganicReferrer; _local3 = new OrganicReferrer(_arg1, _arg2); if (_sourcesCache[_local3.toString()] == undefined){ _sources.push(_local3); _sourcesCache[_local3.toString()] = (_sources.length - 1); if (_sourcesEngine[_local3.engine] == undefined){ _sourcesEngine[_local3.engine] = [(_sources.length - 1)]; } else { _sourcesEngine[_local3.engine].push((_sources.length - 1)); }; } else { if (throwErrors){ throw (new Error((_local3.toString() + " already exists, we don't add it."))); }; }; } public function clearIgnoredKeywords():void{ _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function clearEngines():void{ _sources = []; _sourcesCache = []; _sourcesEngine = []; } public function get ignoredReferralsCount():int{ return (_ignoredReferrals.length); } public function addIgnoredReferral(_arg1:String):void{ if (_ignoredReferralsCache[_arg1] == undefined){ _ignoredReferrals.push(_arg1); _ignoredReferralsCache[_arg1] = (_ignoredReferrals.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function clearIgnoredReferrals():void{ _ignoredReferrals = []; _ignoredReferralsCache = {}; } public function getReferrerByName(_arg1:String):OrganicReferrer{ var _local2:int; if (match(_arg1)){ _local2 = _sourcesEngine[_arg1][0]; return (_sources[_local2]); }; return (null); } public function addIgnoredKeyword(_arg1:String):void{ if (_ignoredKeywordsCache[_arg1] == undefined){ _ignoredKeywords.push(_arg1); _ignoredKeywordsCache[_arg1] = (_ignoredKeywords.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function get sources():Array{ return (_sources); } public static function getKeywordValueFromPath(_arg1:String, _arg2:String):String{ var _local3:String; var _local4:Variables; if (_arg2.indexOf((_arg1 + "=")) > -1){ if (_arg2.charAt(0) == "?"){ _arg2 = _arg2.substr(1); }; _arg2 = _arg2.split("+").join("%20"); _local4 = new Variables(_arg2); _local3 = _local4[_arg1]; }; return (_local3); } } }//package com.google.analytics.core
Section 16
//OrganicReferrer (com.google.analytics.core.OrganicReferrer) package com.google.analytics.core { public class OrganicReferrer { private var _engine:String; private var _keyword:String; public function OrganicReferrer(_arg1:String, _arg2:String){ this.engine = _arg1; this.keyword = _arg2; } public function set engine(_arg1:String):void{ _engine = _arg1.toLowerCase(); } public function get keyword():String{ return (_keyword); } public function toString():String{ return (((engine + "?") + keyword)); } public function get engine():String{ return (_engine); } public function set keyword(_arg1:String):void{ _keyword = _arg1.toLowerCase(); } } }//package com.google.analytics.core
Section 17
//RequestObject (com.google.analytics.core.RequestObject) package com.google.analytics.core { import flash.net.*; import flash.utils.*; public class RequestObject { public var start:int; public var request:URLRequest; public var end:int; public function RequestObject(_arg1:URLRequest){ start = getTimer(); this.request = _arg1; } public function toString():String{ var _local1:Array; _local1 = []; _local1.push((("duration: " + duration) + "ms")); _local1.push(("url: " + request.url)); return ((("{ " + _local1.join(", ")) + " }")); } public function get duration():int{ if (!hasCompleted()){ return (0); }; return ((end - start)); } public function hasCompleted():Boolean{ return ((end > 0)); } public function complete():void{ end = getTimer(); } } }//package com.google.analytics.core
Section 18
//ServerOperationMode (com.google.analytics.core.ServerOperationMode) package com.google.analytics.core { public class ServerOperationMode { private var _value:int; private var _name:String; public static const both:ServerOperationMode = new ServerOperationMode(2, "both"); ; public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote"); ; public static const local:ServerOperationMode = new ServerOperationMode(0, "local"); ; public function ServerOperationMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 19
//TrackerCache (com.google.analytics.core.TrackerCache) package com.google.analytics.core { import com.google.analytics.v4.*; import flash.errors.*; public class TrackerCache implements GoogleAnalyticsAPI { public var tracker:GoogleAnalyticsAPI; private var _ar:Array; public static var CACHE_THROW_ERROR:Boolean; public function TrackerCache(_arg1:GoogleAnalyticsAPI=null){ this.tracker = _arg1; _ar = []; } public function size():uint{ return (_ar.length); } public function flush():void{ var _local1:Object; var _local2:String; var _local3:Array; var _local4:int; var _local5:int; if (tracker == null){ return; }; if (size() > 0){ _local4 = _ar.length; while (_local5 < _local4) { _local1 = _ar.shift(); _local2 = (_local1.name as String); _local3 = (_local1.args as Array); if (((!((_local2 == null))) && ((_local2 in tracker)))){ (tracker[_local2] as Function).apply(tracker, _local3); }; _local5++; }; }; } public function enqueue(_arg1:String, ... _args):Boolean{ if (_arg1 == null){ return (false); }; _ar.push({name:_arg1, args:_args}); return (true); } public function link(_arg1:String, _arg2:Boolean=false):void{ enqueue("link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ enqueue("addOrganic", _arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ enqueue("setAllowLinker", _arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ enqueue("trackEvent", _arg1, _arg2, _arg3, _arg4); return (true); } public function getClientInfo():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment.")); }; return (false); } public function trackTrans():void{ enqueue("trackTrans"); } public function trackPageview(_arg1:String=""):void{ enqueue("trackPageview", _arg1); } public function setClientInfo(_arg1:Boolean):void{ enqueue("setClientInfo", _arg1); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ enqueue("linkByPost", _arg1, _arg2); } public function setCookieTimeout(_arg1:int):void{ enqueue("setCookieTimeout", _arg1); } public function isEmpty():Boolean{ return ((_ar.length == 0)); } public function getDetectTitle():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment.")); }; return (false); } public function resetSession():void{ enqueue("resetSession"); } public function setDetectFlash(_arg1:Boolean):void{ enqueue("setDetectFlash", _arg1); } public function clear():void{ _ar = []; } public function setCampNameKey(_arg1:String):void{ enqueue("setCampNameKey", _arg1); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ enqueue("addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function createEventTracker(_arg1:String):EventTracker{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment.")); }; return (null); } public function setVar(_arg1:String):void{ enqueue("setVar", _arg1); } public function clearIgnoredOrganic():void{ enqueue("clearIgnoredOrganic"); } public function setDomainName(_arg1:String):void{ enqueue("setDomainName", _arg1); } public function setCampSourceKey(_arg1:String):void{ enqueue("setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment.")); }; return (null); } public function setCampContentKey(_arg1:String):void{ enqueue("setCampContentKey", _arg1); } public function setLocalServerMode():void{ enqueue("setLocalServerMode"); } public function getLocalGifPath():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment.")); }; return (""); } public function setAllowAnchor(_arg1:Boolean):void{ enqueue("setAllowAnchor", _arg1); } public function clearIgnoredRef():void{ enqueue("clearIgnoredRef"); } public function setLocalGifPath(_arg1:String):void{ enqueue("setLocalGifPath", _arg1); } public function getVersion():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment.")); }; return (""); } public function setCookiePath(_arg1:String):void{ enqueue("setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ enqueue("setSampleRate", _arg1); } public function setDetectTitle(_arg1:Boolean):void{ enqueue("setDetectTitle", _arg1); } public function setAllowHash(_arg1:Boolean):void{ enqueue("setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ enqueue("addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ enqueue("setCampNOKey", _arg1); } public function getServiceMode():ServerOperationMode{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment.")); }; return (null); } public function setLocalRemoteServerMode():void{ enqueue("setLocalRemoteServerMode"); } public function cookiePathCopy(_arg1:String):void{ enqueue("cookiePathCopy", _arg1); } public function getDetectFlash():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment.")); }; return (false); } public function setCampaignTrack(_arg1:Boolean):void{ enqueue("setCampaignTrack", _arg1); } public function clearOrganic():void{ enqueue("clearOrganic"); } public function setCampTermKey(_arg1:String):void{ enqueue("setCampTermKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ enqueue("addIgnoredRef", _arg1); } public function setCampMediumKey(_arg1:String):void{ enqueue("setCampMediumKey", _arg1); } public function setSessionTimeout(_arg1:int):void{ enqueue("setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ enqueue("setRemoteServerMode"); } public function element(){ return (_ar[0]); } public function getAccount():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment.")); }; return (""); } } }//package com.google.analytics.core
Section 20
//TrackerMode (com.google.analytics.core.TrackerMode) package com.google.analytics.core { public class TrackerMode { public static const BRIDGE:String = "Bridge"; public static const AS3:String = "AS3"; } }//package com.google.analytics.core
Section 21
//Utils (com.google.analytics.core.Utils) package com.google.analytics.core { public class Utils { public static function trim(_arg1:String, _arg2:Boolean=false):String{ var _local3:Array; var _local4:String; var _local5:int; var _local6:int; var _local7:int; if (_arg1 == ""){ return (""); }; _local3 = [" ", "\n", "\r", "\t"]; _local4 = _arg1; if (_arg2){ _local5 = 0; while ((((_local5 < _local3.length)) && ((_local4.indexOf(_local3[_local5]) > -1)))) { _local4 = _local4.split(_local3[_local5]).join(""); _local5++; }; } else { _local6 = 0; while ((((_local6 < _local4.length)) && ((_local3.indexOf(_local4.charAt(_local6)) > -1)))) { _local6++; }; _local4 = _local4.substr(_local6); _local7 = (_local4.length - 1); while ((((_local7 >= 0)) && ((_local3.indexOf(_local4.charAt(_local7)) > -1)))) { _local7--; }; _local4 = _local4.substring(0, (_local7 + 1)); }; return (_local4); } public static function generateHash(_arg1:String):int{ var _local2:int; var _local3:int; var _local4:int; var _local5:int; _local2 = 1; _local3 = 0; if (((!((_arg1 == null))) && (!((_arg1 == ""))))){ _local2 = 0; _local4 = (_arg1.length - 1); while (_local4 >= 0) { _local5 = _arg1.charCodeAt(_local4); _local2 = ((((_local2 << 6) & 268435455) + _local5) + (_local5 << 14)); _local3 = (_local2 & 266338304); if (_local3 != 0){ _local2 = (_local2 ^ (_local3 >> 21)); }; _local4--; }; }; return (_local2); } public static function generate32bitRandom():int{ return (Math.round((Math.random() * 2147483647))); } public static function validateAccount(_arg1:String):Boolean{ var _local2:RegExp; _local2 = /^UA-[0-9]*-[0-9]*$/; return (_local2.test(_arg1)); } } }//package com.google.analytics.core
Section 22
//Cookie (com.google.analytics.data.Cookie) package com.google.analytics.data { public interface Cookie { function fromSharedObject(_arg1:Object):void; function toURLString():String; function get creation():Date; function toSharedObject():Object; function isExpired():Boolean; function set creation(_arg1:Date):void; function set expiration(_arg1:Date):void; function get expiration():Date; } }//package com.google.analytics.data
Section 23
//UTMA (com.google.analytics.data.UTMA) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMA extends UTMCookie { private var _sessionId:Number; private var _domainHash:Number; private var _firstTime:Number; private var _currentTime:Number; private var _lastTime:Number; private var _sessionCount:Number; public function UTMA(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:Number=NaN){ super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.sessionId = _arg2; this.firstTime = _arg3; this.lastTime = _arg4; this.currentTime = _arg5; this.sessionCount = _arg6; } public function get lastTime():Number{ return (_lastTime); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function set currentTime(_arg1:Number):void{ _currentTime = _arg1; update(); } public function get sessionId():Number{ return (_sessionId); } public function get sessionCount():Number{ return (_sessionCount); } public function get firstTime():Number{ return (_firstTime); } public function get currentTime():Number{ return (_currentTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set sessionId(_arg1:Number):void{ _sessionId = _arg1; update(); } public function set sessionCount(_arg1:Number):void{ _sessionCount = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function set firstTime(_arg1:Number):void{ _firstTime = _arg1; update(); } } }//package com.google.analytics.data
Section 24
//UTMB (com.google.analytics.data.UTMB) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMB extends UTMCookie { private var _trackCount:Number; private var _lastTime:Number; private var _domainHash:Number; private var _token:Number; public static var defaultTimespan:Number = Timespan.thirtyminutes; public function UTMB(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN){ super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.trackCount = _arg2; this.token = _arg3; this.lastTime = _arg4; } public function set token(_arg1:Number):void{ _token = _arg1; update(); } public function set trackCount(_arg1:Number):void{ _trackCount = _arg1; update(); } public function get lastTime():Number{ return (_lastTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function get token():Number{ return (_token); } public function get trackCount():Number{ return (_trackCount); } } }//package com.google.analytics.data
Section 25
//UTMC (com.google.analytics.data.UTMC) package com.google.analytics.data { public class UTMC extends UTMCookie { private var _domainHash:Number; public function UTMC(_arg1:Number=NaN){ super("utmc", "__utmc", ["domainHash"]); this.domainHash = _arg1; } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } } }//package com.google.analytics.data
Section 26
//UTMCookie (com.google.analytics.data.UTMCookie) package com.google.analytics.data { import com.google.analytics.core.*; public class UTMCookie implements Cookie { protected var inURL:String; protected var name:String; private var _creation:Date; private var _expiration:Date; public var proxy:Buffer; private var _timespan:Number; protected var fields:Array; public function UTMCookie(_arg1:String, _arg2:String, _arg3:Array, _arg4:Number=0){ this.name = _arg1; this.inURL = _arg2; this.fields = _arg3; _timestamp(_arg4); } public function isEmpty():Boolean{ var _local1:int; var _local2:String; var _local3:int; _local1 = 0; _local3 = 0; while (_local3 < fields.length) { _local2 = fields[_local3]; if ((((this[_local2] is Number)) && (isNaN(this[_local2])))){ _local1++; } else { if ((((this[_local2] is String)) && ((this[_local2] == "")))){ _local1++; }; }; _local3++; }; if (_local1 == fields.length){ return (true); }; return (false); } protected function update():void{ resetTimestamp(); if (proxy){ proxy.update(name, toSharedObject()); }; } public function fromSharedObject(_arg1:Object):void{ var _local2:String; var _local3:int; var _local4:int; _local3 = fields.length; _local4 = 0; while (_local4 < _local3) { _local2 = fields[_local4]; if (_arg1[_local2]){ this[_local2] = _arg1[_local2]; }; _local4++; }; if (_arg1.creation){ this.creation = _arg1.creation; }; if (_arg1.expiration){ this.expiration = _arg1.expiration; }; } private function _timestamp(_arg1:Number):void{ creation = new Date(); _timespan = _arg1; if (_arg1 > 0){ expiration = new Date((creation.valueOf() + _arg1)); }; } public function isExpired():Boolean{ var _local1:Date; var _local2:Number; _local1 = new Date(); _local2 = (expiration.valueOf() - _local1.valueOf()); if (_local2 <= 0){ return (true); }; return (false); } public function set expiration(_arg1:Date):void{ _expiration = _arg1; } public function get creation():Date{ return (_creation); } public function reset():void{ var _local1:String; var _local2:int; _local2 = 0; while (_local2 < fields.length) { _local1 = fields[_local2]; if ((this[_local1] is Number)){ this[_local1] = NaN; } else { if ((this[_local1] is String)){ this[_local1] = ""; }; }; _local2++; }; resetTimestamp(); update(); } public function valueOf():String{ var _local1:Array; var _local2:String; var _local3:*; var _local4:int; _local1 = []; _local4 = 0; while (_local4 < fields.length) { _local2 = fields[_local4]; _local3 = this[_local2]; if ((_local3 is String)){ if (_local3 == ""){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; } else { if ((_local3 is Number)){ if (_local3 == 0){ _local1.push(_local3); } else { if (isNaN(_local3)){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; }; }; }; _local4++; }; return (("" + _local1.join("."))); } public function resetTimestamp(_arg1:Number=NaN):void{ if (!isNaN(_arg1)){ _timespan = _arg1; }; _creation = null; _expiration = null; _timestamp(_timespan); } public function get expiration():Date{ if (_expiration){ return (_expiration); }; return (new Date((new Date().valueOf() + 1000))); } public function toURLString():String{ return (((inURL + "=") + valueOf())); } public function toSharedObject():Object{ var _local1:Object; var _local2:String; var _local3:*; var _local4:int; _local1 = {}; _local4 = 0; for (;_local4 < fields.length;_local4++) { _local2 = fields[_local4]; _local3 = this[_local2]; if ((_local3 is String)){ _local1[_local2] = _local3; } else { if (_local3 == 0){ _local1[_local2] = _local3; } else { if (isNaN(_local3)){ continue; } else { _local1[_local2] = _local3; }; }; }; }; _local1.creation = creation; _local1.expiration = expiration; return (_local1); } public function toString(_arg1:Boolean=false):String{ var _local2:Array; var _local3:String; var _local4:*; var _local5:int; var _local6:int; var _local7:String; _local2 = []; _local5 = fields.length; _local6 = 0; for (;_local6 < _local5;_local6++) { _local3 = fields[_local6]; _local4 = this[_local3]; if ((_local4 is String)){ _local2.push((((_local3 + ": \"") + _local4) + "\"")); } else { if (_local4 == 0){ _local2.push(((_local3 + ": ") + _local4)); } else { if (isNaN(_local4)){ continue; } else { _local2.push(((_local3 + ": ") + _local4)); }; }; }; }; _local7 = (((name.toUpperCase() + " {") + _local2.join(", ")) + "}"); if (_arg1){ _local7 = (_local7 + (((" creation:" + creation) + ", expiration:") + expiration)); }; return (_local7); } public function set creation(_arg1:Date):void{ _creation = _arg1; } } }//package com.google.analytics.data
Section 27
//UTMK (com.google.analytics.data.UTMK) package com.google.analytics.data { public class UTMK extends UTMCookie { private var _hash:Number; public function UTMK(_arg1:Number=NaN){ super("utmk", "__utmk", ["hash"]); this.hash = _arg1; } public function set hash(_arg1:Number):void{ _hash = _arg1; update(); } public function get hash():Number{ return (_hash); } } }//package com.google.analytics.data
Section 28
//UTMV (com.google.analytics.data.UTMV) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMV extends UTMCookie { private var _domainHash:Number; private var _value:String; public function UTMV(_arg1:Number=NaN, _arg2:String=""){ super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.value = _arg2; } override public function toURLString():String{ return (((inURL + "=") + encodeURI(valueOf()))); } public function get value():String{ return (_value); } public function get domainHash():Number{ return (_domainHash); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set value(_arg1:String):void{ _value = _arg1; update(); } } }//package com.google.analytics.data
Section 29
//UTMZ (com.google.analytics.data.UTMZ) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMZ extends UTMCookie { private var _campaignTracking:String; private var _campaignCreation:Number; private var _responseCount:Number; private var _domainHash:Number; private var _campaignSessions:Number; public static var defaultTimespan:Number = Timespan.sixmonths; public function UTMZ(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:String=""){ super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.campaignCreation = _arg2; this.campaignSessions = _arg3; this.responseCount = _arg4; this.campaignTracking = _arg5; } public function set responseCount(_arg1:Number):void{ _responseCount = _arg1; update(); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set campaignCreation(_arg1:Number):void{ _campaignCreation = _arg1; update(); } public function get campaignTracking():String{ return (_campaignTracking); } public function get campaignSessions():Number{ return (_campaignSessions); } public function get domainHash():Number{ return (_domainHash); } public function get responseCount():Number{ return (_responseCount); } public function get campaignCreation():Number{ return (_campaignCreation); } public function set campaignSessions(_arg1:Number):void{ _campaignSessions = _arg1; update(); } public function set campaignTracking(_arg1:String):void{ _campaignTracking = _arg1; update(); } } }//package com.google.analytics.data
Section 30
//X10 (com.google.analytics.data.X10) package com.google.analytics.data { public class X10 { private var _delimEnd:String;// = ")" private var _delimSet:String;// = "*" private var _escapeChar:String;// = "'" private var _delimBegin:String;// = "(" private var _delimNumValue:String;// = "!" private var _key:String;// = "k" private var _set:Array; private var _projectData:Object; private var _hasData:int; private var _escapeCharMap:Object; private var _minimum:int; private var _value:String;// = "v" public function X10(){ _key = "k"; _value = "v"; _set = [_key, _value]; _delimBegin = "("; _delimEnd = ")"; _delimSet = "*"; _delimNumValue = "!"; _escapeChar = "'"; super(); _projectData = {}; _escapeCharMap = {}; _escapeCharMap[_escapeChar] = "'0"; _escapeCharMap[_delimEnd] = "'1"; _escapeCharMap[_delimSet] = "'2"; _escapeCharMap[_delimNumValue] = "'3"; _minimum = 1; } private function _clearInternal(_arg1:Number, _arg2:String):void{ var _local3:Boolean; var _local4:int; var _local5:int; if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ _projectData[_arg1][_arg2] = undefined; _local3 = true; _local5 = _set.length; _local4 = 0; while (_local4 < _local5) { if (_projectData[_arg1][_set[_local4]] != undefined){ _local3 = false; break; }; _local4++; }; if (_local3){ _projectData[_arg1] = undefined; _hasData = (_hasData - 1); }; }; } public function hasData():Boolean{ return ((_hasData > 0)); } private function _setInternal(_arg1:Number, _arg2:String, _arg3:Number, _arg4:String):void{ if (!hasProject(_arg1)){ _projectData[_arg1] = {}; }; if (_projectData[_arg1][_arg2] == undefined){ _projectData[_arg1][_arg2] = []; }; _projectData[_arg1][_arg2][_arg3] = _arg4; _hasData = (_hasData + 1); } public function hasProject(_arg1:Number):Boolean{ return (_projectData[_arg1]); } public function clearKey(_arg1:Number):void{ _clearInternal(_arg1, _key); } private function _renderDataType(_arg1:Array):String{ var _local2:Array; var _local3:String; var _local4:int; _local2 = []; _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] != undefined){ _local3 = ""; if (((!((_local4 == _minimum))) && ((_arg1[(_local4 - 1)] == undefined)))){ _local3 = (_local3 + _local4.toString()); _local3 = (_local3 + _delimNumValue); }; _local3 = (_local3 + _escapeExtensibleValue(_arg1[_local4])); _local2.push(_local3); }; _local4++; }; return (((_delimBegin + _local2.join(_delimSet)) + _delimEnd)); } public function getKey(_arg1:Number, _arg2:Number):String{ return ((_getInternal(_arg1, _key, _arg2) as String)); } public function clearValue(_arg1:Number):void{ _clearInternal(_arg1, _value); } public function renderMergedUrlString(_arg1:X10=null):String{ var _local2:Array; var _local3:String; if (!_arg1){ return (renderUrlString()); }; _local2 = [_arg1.renderUrlString()]; for (_local3 in _projectData) { if (((hasProject(Number(_local3))) && (!(_arg1.hasProject(Number(_local3)))))){ _local2.push((_local3 + _renderProject(_projectData[_local3]))); }; }; return (_local2.join("")); } public function setValue(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if (((((!((Math.round(_arg3) == _arg3))) || (isNaN(_arg3)))) || ((_arg3 == Infinity)))){ return (false); }; _setInternal(_arg1, _value, _arg2, _arg3.toString()); return (true); } public function renderUrlString():String{ var _local1:Array; var _local2:String; _local1 = []; for (_local2 in _projectData) { if (hasProject(Number(_local2))){ _local1.push((_local2 + _renderProject(_projectData[_local2]))); }; }; return (_local1.join("")); } private function _getInternal(_arg1:Number, _arg2:String, _arg3:Number):Object{ if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ return (_projectData[_arg1][_arg2][_arg3]); }; return (undefined); } public function setKey(_arg1:Number, _arg2:Number, _arg3:String):Boolean{ _setInternal(_arg1, _key, _arg2, _arg3); return (true); } public function getValue(_arg1:Number, _arg2:Number){ var _local3:*; _local3 = _getInternal(_arg1, _value, _arg2); if (_local3 == null){ return (null); }; return (Number(_local3)); } private function _renderProject(_arg1:Object):String{ var _local2:String; var _local3:Boolean; var _local4:int; var _local5:Array; var _local6:int; _local2 = ""; _local3 = false; _local6 = _set.length; _local4 = 0; while (_local4 < _local6) { _local5 = _arg1[_set[_local4]]; if (_local5){ if (_local3){ _local2 = (_local2 + _set[_local4]); }; _local2 = (_local2 + _renderDataType(_local5)); _local3 = false; } else { _local3 = true; }; _local4++; }; return (_local2); } private function _escapeExtensibleValue(_arg1:String):String{ var _local2:String; var _local3:int; var _local4:String; var _local5:String; _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1.charAt(_local3); _local5 = _escapeCharMap[_local4]; if (_local5){ _local2 = (_local2 + _local5); } else { _local2 = (_local2 + _local4); }; _local3++; }; return (_local2); } } }//package com.google.analytics.data
Section 31
//_Style (com.google.analytics.debug._Style) package com.google.analytics.debug { import flash.net.*; import flash.text.*; public class _Style { public var borderColor:uint; public var backgroundColor:uint; private var _sheet:StyleSheet; public var roundedCorner:uint; public var alertColor:uint; public var infoColor:uint; public var successColor:uint; private var _loader:URLLoader; public var failureColor:uint; private var _defaultSheet:String; public var warningColor:uint; public function _Style(){ _sheet = new StyleSheet(); _loader = new URLLoader(); _init(); } private function _parseSheet(_arg1:String):void{ _sheet.parseCSS(_arg1); } public function get sheet():StyleSheet{ return (_sheet); } private function _init():void{ _defaultSheet = ""; _defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n"); _defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n"); _defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + "\n"); roundedCorner = 6; backgroundColor = 0xCCCCCC; borderColor = 0x555555; infoColor = 16777113; alertColor = 0xFFCC00; warningColor = 0xCC0000; successColor = 0xFF00; failureColor = 0xFF0000; _parseSheet(_defaultSheet); } } }//package com.google.analytics.debug
Section 32
//Alert (com.google.analytics.debug.Alert) package com.google.analytics.debug { import flash.events.*; public class Alert extends Label { public var actionOnNextLine:Boolean;// = true public var autoClose:Boolean;// = true private var _actions:Array; public function Alert(_arg1:String, _arg2:Array, _arg3:String="uiAlert", _arg4:uint=0, _arg5:Align=null, _arg6:Boolean=false, _arg7:Boolean=true){ var _local8:int; autoClose = true; actionOnNextLine = true; if (_arg4 == 0){ _arg4 = Style.alertColor; }; if (_arg5 == null){ _arg5 = Align.center; }; super(_arg1, _arg3, _arg4, _arg5, _arg6); this.selectable = true; super.mouseChildren = true; this.buttonMode = true; this.mouseEnabled = true; this.useHandCursor = true; this.actionOnNextLine = _arg7; _actions = []; _local8 = 0; while (_local8 < _arg2.length) { _arg2[_local8].container = this; _actions.push(_arg2[_local8]); _local8++; }; } protected function getAction(_arg1:String):AlertAction{ var _local2:int; _local2 = 0; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (_actions[_local2]); }; _local2++; }; return (null); } override protected function layout():void{ super.layout(); _defineActions(); } protected function spaces(_arg1:int):String{ var _local2:String; var _local3:String; var _local4:int; _local2 = ""; _local3 = " "; _local4 = 0; while (_local4 < (_arg1 + 1)) { _local2 = (_local2 + _local3); _local4++; }; return (_local2); } override public function onLink(_arg1:TextEvent):void{ var _local2:AlertAction; if (isValidAction(_arg1.text)){ _local2 = getAction(_arg1.text); if (_local2){ _local2.execute(); }; }; if (autoClose){ close(); }; } protected function isValidAction(_arg1:String):Boolean{ var _local2:int; _local2 = 0; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (true); }; _local2++; }; return (false); } private function _defineActions():void{ var _local1:String; var _local2:Array; var _local3:AlertAction; var _local4:int; _local1 = ""; if (actionOnNextLine){ _local1 = (_local1 + "\n"); } else { _local1 = (_local1 + " |"); }; _local1 = (_local1 + " "); _local2 = []; _local4 = 0; while (_local4 < _actions.length) { _local3 = _actions[_local4]; _local2.push((((("<a href=\"event:" + _local3.activator) + "\">") + _local3.name) + "</a>")); _local4++; }; _local1 = (_local1 + _local2.join(" | ")); appendText(_local1, "uiAlertAction"); } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 33
//AlertAction (com.google.analytics.debug.AlertAction) package com.google.analytics.debug { public class AlertAction { public var container:Alert; private var _callback; public var name:String; public var activator:String; public function AlertAction(_arg1:String, _arg2:String, _arg3){ this.name = _arg1; this.activator = _arg2; _callback = _arg3; } public function execute():void{ if (_callback){ if ((_callback is Function)){ (_callback as Function)(); } else { if ((_callback is String)){ var _local1 = container; _local1[_callback](); }; }; }; } } }//package com.google.analytics.debug
Section 34
//Align (com.google.analytics.debug.Align) package com.google.analytics.debug { public class Align { private var _value:int; private var _name:String; public static const bottomRight:Align = new Align(18, "bottomRight"); ; public static const right:Align = new Align(16, "right"); ; public static const left:Align = new Align(32, "left"); ; public static const topRight:Align = new Align(17, "topRight"); ; public static const bottom:Align = new Align(2, "bottom"); ; public static const bottomLeft:Align = new Align(34, "bottomLeft"); ; public static const topLeft:Align = new Align(33, "topLeft"); ; public static const center:Align = new Align(0x0100, "center"); ; public static const none:Align = new Align(0, "none"); ; public static const top:Align = new Align(1, "top"); ; public function Align(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 35
//Background (com.google.analytics.debug.Background) package com.google.analytics.debug { import flash.display.*; public class Background { public static function drawRounded(_arg1, _arg2:Graphics, _arg3:uint=0, _arg4:uint=0):void{ var _local5:uint; var _local6:uint; var _local7:uint; _local7 = Style.roundedCorner; if ((((_arg3 > 0)) && ((_arg4 > 0)))){ _local5 = _arg3; _local6 = _arg4; } else { _local5 = _arg1.width; _local6 = _arg1.height; }; if (((_arg1.stickToEdge) && (!((_arg1.alignement == Align.none))))){ switch (_arg1.alignement){ case Align.top: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, _local7); break; case Align.topLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, 0, _local7); break; case Align.topRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, 0); break; case Align.bottom: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, _local7, 0, 0); break; case Align.bottomLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, 0); break; case Align.bottomRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, 0, 0); break; case Align.left: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, _local7); break; case Align.right: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, _local7, 0); break; case Align.center: _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); break; }; } else { _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); }; } } }//package com.google.analytics.debug
Section 36
//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 = 0; public function Debug(_arg1:uint=0, _arg2:Align=null, _arg3:Boolean=false){ if (_arg2 == null){ _arg2 = Align.bottom; }; super("", "uiLabel", _arg1, _arg2, _arg3); this.name = ("Debug" + count++); _lines = []; selectable = true; addEventListener(KeyboardEvent.KEY_DOWN, onKey); } public function writeBold(_arg1:String):void{ write(_arg1, true); } private function _getLinesToDisplay(_arg1:int=0):Array{ var _local2:Array; var _local3:uint; var _local4:uint; if ((_lines.length - 1) > maxLines){ if ((_linediff <= 0)){ _linediff = (_linediff + _arg1); } else { if ((((_linediff > 0)) && ((_arg1 < 0)))){ _linediff = (_linediff + _arg1); }; }; _local3 = ((_lines.length - maxLines) + _linediff); _local4 = (_local3 + maxLines); _local2 = _lines.slice(_local3, _local4); } else { _local2 = _lines; }; return (_local2); } private function onKey(_arg1:KeyboardEvent=null):void{ var _local2:Array; switch (_arg1.keyCode){ case Keyboard.DOWN: _local2 = _getLinesToDisplay(1); break; case Keyboard.UP: _local2 = _getLinesToDisplay(-1); break; default: _local2 = null; }; if (_local2 == null){ return; }; text = _local2.join("\n"); } override public function get forcedWidth():uint{ if (this.parent){ if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){ return (_preferredForcedWidth); }; return (UISprite(this.parent).forcedWidth); //unresolved jump }; return (super.forcedWidth); } public function write(_arg1:String, _arg2:Boolean=false):void{ var _local3:Array; if (_arg1.indexOf("") > -1){ _local3 = _arg1.split("\n"); } else { _local3 = [_arg1]; }; var _local4 = ""; var _local5 = ""; if (_arg2){ _local4 = "<b>"; _local5 = "</b>"; }; var _local6:int; while (_local6 < _local3.length) { _lines.push(((_local4 + _local3[_local6]) + _local5)); _local6++; }; var _local7:Array = _getLinesToDisplay(); text = _local7.join("\n"); } public function close():void{ dispose(); } override protected function dispose():void{ removeEventListener(KeyboardEvent.KEY_DOWN, onKey); super.dispose(); } } }//package com.google.analytics.debug
Section 37
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration) package com.google.analytics.debug { import com.google.analytics.core.*; import flash.net.*; import flash.utils.*; import flash.ui.*; public class DebugConfiguration { public var showHideKey:Number; private var _mode:VisualDebugMode; private var _verbose:Boolean;// = false public var destroyKey:Number; public var GIFRequests:Boolean;// = false public var 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; showHideKey = Keyboard.SPACE; destroyKey = Keyboard.BACKSPACE; super(); } public function get verbose():Boolean{ return (_verbose); } public function set verbose(_arg1:Boolean):void{ _verbose = _arg1; } public function set mode(_arg1):void{ if ((_arg1 is String)){ switch (_arg1){ case "geek": _arg1 = VisualDebugMode.geek; break; case "advanced": _arg1 = VisualDebugMode.advanced; break; case "basic": default: _arg1 = VisualDebugMode.basic; }; }; _mode = _arg1; } public function success(_arg1:String):void{ if (layout){ layout.createSuccessAlert(_arg1); }; if (traceOutput){ trace((("[+] " + _arg1) + " !!")); }; } public function get active():Boolean{ return (_active); } private function _initializeVisual():void{ if (layout){ layout.init(); _visualInitialized = true; }; } private function _destroyVisual():void{ if (((layout) && (_visualInitialized))){ layout.destroy(); }; } public function warning(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showWarnings))){ layout.createWarning(_arg1); }; if (traceOutput){ trace((("## " + _arg1) + " ##")); }; } private function _filter(_arg1:VisualDebugMode=null):Boolean{ return (((_arg1) && ((int(_arg1) >= int(this.mode))))); } public function failure(_arg1:String):void{ if (layout){ layout.createFailureAlert(_arg1); }; if (traceOutput){ trace((("[-] " + _arg1) + " !!")); }; } public function get mode(){ return (_mode); } public function set active(_arg1:Boolean):void{ _active = _arg1; if (_active){ _initializeVisual(); } else { _destroyVisual(); }; } protected function trace(_arg1:String):void{ var _local7:Array; var _local8:int; var _local2:Array = []; var _local3 = ""; var _local4 = ""; if (this.mode == VisualDebugMode.geek){ _local3 = (getTimer() + " - "); _local4 = (new Array(_local3.length).join(" ") + " "); }; if (_arg1.indexOf("\n") > -1){ _local7 = _arg1.split("\n"); _local8 = 0; while (_local8 < _local7.length) { if (_local7[_local8] == ""){ } else { if (_local8 == 0){ _local2.push((_local3 + _local7[_local8])); } else { _local2.push((_local4 + _local7[_local8])); }; }; _local8++; }; } else { _local2.push((_local3 + _arg1)); }; var _local5:int = _local2.length; var _local6:int; while (_local6 < _local5) { trace(_local2[_local6]); _local6++; }; } public function alert(_arg1:String):void{ if (layout){ layout.createAlert(_arg1); }; if (traceOutput){ trace((("!! " + _arg1) + " !!")); }; } public function info(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showInfos))){ layout.createInfo(_arg1); }; if (traceOutput){ trace(_arg1); }; } public function alertGifRequest(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ if (layout){ layout.createGIFRequestAlert(_arg1, _arg2, _arg3); }; if (traceOutput){ trace(((">> " + _arg1) + " <<")); }; } } }//package com.google.analytics.debug
Section 38
//FailureAlert (com.google.analytics.debug.FailureAlert) package com.google.analytics.debug { public class FailureAlert extends Alert { public function FailureAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align; var _local5:Boolean; var _local6:Boolean; _local4 = Align.bottomLeft; _local5 = true; _local6 = false; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiFailure", Style.failureColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 39
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert) package com.google.analytics.debug { public class GIFRequestAlert extends Alert { public function GIFRequestAlert(_arg1:String, _arg2:Array){ super(_arg1, _arg2); } } }//package com.google.analytics.debug
Section 40
//ILayout (com.google.analytics.debug.ILayout) package com.google.analytics.debug { import com.google.analytics.core.*; import flash.display.*; import flash.net.*; public interface ILayout { function createWarning(_arg1:String):void; function addToStage(_arg1:DisplayObject):void; function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void; function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void; function createInfo(_arg1:String):void; function createFailureAlert(_arg1:String):void; function addToPanel(_arg1:String, _arg2:DisplayObject):void; function init():void; function createSuccessAlert(_arg1:String):void; function createVisualDebug():void; function createAlert(_arg1:String):void; function destroy():void; function bringToFront(_arg1:DisplayObject):void; function isAvailable():Boolean; } }//package com.google.analytics.debug
Section 41
//Info (com.google.analytics.debug.Info) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Info extends Label { private var _timer:Timer; public function Info(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiInfo", Style.infoColor, Align.top, true); if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function onComplete(_arg1:TimerEvent):void{ close(); } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 42
//Label (com.google.analytics.debug.Label) package com.google.analytics.debug { import flash.events.*; import flash.display.*; import flash.text.*; public class Label extends UISprite { private var _color:uint; private var _background:Shape; private var _textField:TextField; public var stickToEdge:Boolean; private var _text:String; protected var selectable:Boolean; private var _tag:String; public static var count:uint = 0; public function Label(_arg1:String="", _arg2:String="uiLabel", _arg3:uint=0, _arg4:Align=null, _arg5:Boolean=false){ this.name = ("Label" + count++); selectable = false; _background = new Shape(); _textField = new TextField(); _text = _arg1; _tag = _arg2; if (_arg4 == null){ _arg4 = Align.none; }; this.alignement = _arg4; this.stickToEdge = _arg5; if (_arg3 == 0){ _arg3 = Style.backgroundColor; }; _color = _arg3; _textField.addEventListener(TextEvent.LINK, onLink); } public function get tag():String{ return (_tag); } private function _draw():void{ var _local1:Graphics = _background.graphics; _local1.clear(); _local1.beginFill(_color); var _local2:uint = _textField.width; var _local3:uint = _textField.height; if (forcedWidth > 0){ _local2 = forcedWidth; }; Background.drawRounded(this, _local1, _local2, _local3); _local1.endFill(); } public function get text():String{ return (_textField.text); } public function appendText(_arg1:String, _arg2:String=""):void{ if (_arg1 == ""){ return; }; if (_arg2 == ""){ _arg2 = tag; }; _textField.htmlText = (_textField.htmlText + (((("<span class=\"" + _arg2) + "\">") + _arg1) + "</span>")); _text = (_text + _arg1); _draw(); resize(); } public function set text(_arg1:String):void{ if (_arg1 == ""){ _arg1 = _text; }; _textField.htmlText = (((("<span class=\"" + tag) + "\">") + _arg1) + "</span>"); _text = _arg1; _draw(); resize(); } override protected function layout():void{ _textField.type = TextFieldType.DYNAMIC; _textField.autoSize = TextFieldAutoSize.LEFT; _textField.background = false; _textField.selectable = selectable; _textField.multiline = true; _textField.styleSheet = Style.sheet; this.text = _text; addChild(_background); addChild(_textField); } public function set tag(_arg1:String):void{ _tag = _arg1; text = ""; } public function onLink(_arg1:TextEvent):void{ } override protected function dispose():void{ _textField.removeEventListener(TextEvent.LINK, onLink); super.dispose(); } } }//package com.google.analytics.debug
Section 43
//Layout (com.google.analytics.debug.Layout) package com.google.analytics.debug { import flash.events.*; import com.google.analytics.core.*; import flash.display.*; import flash.net.*; import com.google.analytics.*; public class Layout implements ILayout { private var _display:DisplayObject; private var _infoQueue:Array; private var _maxCharPerLine:int;// = 85 private var _hasInfo:Boolean; private var _warningQueue:Array; private var _hasDebug:Boolean; private var _hasWarning:Boolean; private var _mainPanel:Panel; private var _GRAlertQueue:Array; private var _debug:DebugConfiguration; public var visualDebug:Debug; private var _hasGRAlert:Boolean; public function Layout(_arg1:DebugConfiguration, _arg2:DisplayObject){ _display = _arg2; _debug = _arg1; _hasWarning = false; _hasInfo = false; _hasDebug = false; _hasGRAlert = false; _warningQueue = []; _infoQueue = []; _GRAlertQueue = []; } private function onKey(_arg1:KeyboardEvent=null):void{ switch (_arg1.keyCode){ case _debug.showHideKey: _mainPanel.visible = !(_mainPanel.visible); break; case _debug.destroyKey: destroy(); break; }; } public function createWarning(_arg1:String):void{ if (((_hasWarning) || (!(isAvailable())))){ _warningQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasWarning = true; var _local2:Warning = new Warning(_arg1, _debug.warningTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function bringToFront(_arg1:DisplayObject):void{ _display.stage.setChildIndex(_arg1, (_display.stage.numChildren - 1)); } public function createFailureAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new FailureAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function init():void{ var _local1 = 10; var _local2:uint = (_display.stage.stageWidth - (_local1 * 2)); var _local3:uint = (_display.stage.stageHeight - (_local1 * 2)); var _local4:Panel = new Panel("analytics", _local2, _local3); _local4.alignement = Align.top; _local4.stickToEdge = false; _local4.title = ("Google Analytics v" + GATracker.version); _mainPanel = _local4; addToStage(_local4); bringToFront(_local4); if (_debug.minimizedOnStart){ _mainPanel.onToggle(); }; createVisualDebug(); _display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true); } public function addToPanel(_arg1:String, _arg2:DisplayObject):void{ var _local4:Panel; var _local3:DisplayObject = _display.stage.getChildByName(_arg1); if (_local3){ _local4 = (_local3 as Panel); _local4.addData(_arg2); } else { trace((("panel \"" + _arg1) + "\" not found")); }; } private function _clearInfo(_arg1:Event):void{ _hasInfo = false; if (_infoQueue.length > 0){ createInfo(_infoQueue.shift()); }; } private function _filterMaxChars(_arg1:String, _arg2:int=0):String{ var _local6:String; var _local3 = "\n"; var _local4:Array = []; var _local5:Array = _arg1.split(_local3); if (_arg2 == 0){ _arg2 = _maxCharPerLine; }; var _local7:int; while (_local7 < _local5.length) { _local6 = _local5[_local7]; while (_local6.length > _arg2) { _local4.push(_local6.substr(0, _arg2)); _local6 = _local6.substring(_arg2); }; _local4.push(_local6); _local7++; }; return (_local4.join(_local3)); } private function _clearGRAlert(_arg1:Event):void{ _hasGRAlert = false; if (_GRAlertQueue.length > 0){ createGIFRequestAlert.apply(this, _GRAlertQueue.shift()); }; } public function createSuccessAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new SuccessAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function isAvailable():Boolean{ return (!((_display.stage == null))); } public function createAlert(_arg1:String):void{ _arg1 = _filterMaxChars(_arg1); var _local2:Alert = new Alert(_arg1, [new AlertAction("Close", "close", "close")]); addToPanel("analytics", _local2); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function createInfo(_arg1:String):void{ if (((_hasInfo) || (!(isAvailable())))){ _infoQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasInfo = true; var _local2:Info = new Info(_arg1, _debug.infoTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true); if (_hasDebug){ visualDebug.write(_arg1); }; } public function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ var message = _arg1; var request = _arg2; var ref = _arg3; if (_hasGRAlert){ _GRAlertQueue.push([message, request, ref]); return; }; _hasGRAlert = true; var f:Function = function ():void{ ref.sendRequest(request); }; message = _filterMaxChars(message); var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]); addToPanel("analytics", gra); gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true); if (_hasDebug){ if (_debug.verbose){ message = message.split("\n").join(""); message = _filterMaxChars(message, 66); }; visualDebug.write(message); }; } public function createVisualDebug():void{ if (!visualDebug){ visualDebug = new Debug(); visualDebug.alignement = Align.bottom; visualDebug.stickToEdge = true; addToPanel("analytics", visualDebug); _hasDebug = true; }; } public function addToStage(_arg1:DisplayObject):void{ _display.stage.addChild(_arg1); } private function _clearWarning(_arg1:Event):void{ _hasWarning = false; if (_warningQueue.length > 0){ createWarning(_warningQueue.shift()); }; } public function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void{ var _local4:Panel = new Panel(_arg1, _arg2, _arg3); _local4.alignement = Align.center; _local4.stickToEdge = false; addToStage(_local4); bringToFront(_local4); } public function destroy():void{ _mainPanel.close(); _debug.layout = null; } } }//package com.google.analytics.debug
Section 44
//Margin (com.google.analytics.debug.Margin) package com.google.analytics.debug { public class Margin { public var bottom:int; public var top:int; public var right:int; public var left:int; public function Margin(_arg1:int=0, _arg2:int=0, _arg3:int=0, _arg4:int=0){ this.top = _arg1; this.bottom = _arg2; this.left = _arg3; this.right = _arg4; } } }//package com.google.analytics.debug
Section 45
//Panel (com.google.analytics.debug.Panel) package com.google.analytics.debug { import flash.events.*; import flash.display.*; public class Panel extends UISprite { private var _savedH:uint; private var _data:UISprite; private var _mask:Sprite; private var _background:Shape; private var _savedW:uint; private var _stickToEdge:Boolean; private var _border:Shape; private var _borderColor:uint; protected var baseAlpha:Number; private var _backgroundColor:uint; private var _title:Label; private var _colapsed:Boolean; private var _name:String; public function Panel(_arg1:String, _arg2:uint, _arg3:uint, _arg4:uint=0, _arg5:uint=0, _arg6:Number=0.3, _arg7:Align=null, _arg8:Boolean=false){ _name = _arg1; this.name = _arg1; this.mouseEnabled = false; _colapsed = false; forcedWidth = _arg2; forcedHeight = _arg3; this.baseAlpha = _arg6; _background = new Shape(); _data = new UISprite(); _data.forcedWidth = _arg2; _data.forcedHeight = _arg3; _data.mouseEnabled = false; _title = new Label(_arg1, "uiLabel", 0xFFFFFF, Align.topLeft, _arg8); _title.buttonMode = true; _title.margin.top = 0.6; _title.margin.left = 0.6; _title.addEventListener(MouseEvent.CLICK, onToggle); _title.mouseChildren = false; _border = new Shape(); _mask = new Sprite(); _mask.useHandCursor = false; _mask.mouseEnabled = false; _mask.mouseChildren = false; if (_arg7 == null){ _arg7 = Align.none; }; this.alignement = _arg7; this.stickToEdge = _arg8; if (_arg4 == 0){ _arg4 = Style.backgroundColor; }; _backgroundColor = _arg4; if (_arg5 == 0){ _arg5 = Style.borderColor; }; _borderColor = _arg5; } public function get stickToEdge():Boolean{ return (_stickToEdge); } public function onToggle(_arg1:MouseEvent=null):void{ if (_colapsed){ _data.visible = true; } else { _data.visible = false; }; _colapsed = !(_colapsed); _update(); resize(); } public function set stickToEdge(_arg1:Boolean):void{ _stickToEdge = _arg1; _title.stickToEdge = _arg1; } override protected function dispose():void{ _title.removeEventListener(MouseEvent.CLICK, onToggle); super.dispose(); } private function _draw():void{ var _local1:uint; var _local2:uint; if (((_savedW) && (_savedH))){ forcedWidth = _savedW; forcedHeight = _savedH; }; if (!_colapsed){ _local1 = forcedWidth; _local2 = forcedHeight; } else { _local1 = _title.width; _local2 = _title.height; _savedW = forcedWidth; _savedH = forcedHeight; forcedWidth = _local1; forcedHeight = _local2; }; var _local3:Graphics = _background.graphics; _local3.clear(); _local3.beginFill(_backgroundColor); Background.drawRounded(this, _local3, _local1, _local2); _local3.endFill(); var _local4:Graphics = _data.graphics; _local4.clear(); _local4.beginFill(_backgroundColor, 0); Background.drawRounded(this, _local4, _local1, _local2); _local4.endFill(); var _local5:Graphics = _border.graphics; _local5.clear(); _local5.lineStyle(0.1, _borderColor); Background.drawRounded(this, _local5, _local1, _local2); _local5.endFill(); var _local6:Graphics = _mask.graphics; _local6.clear(); _local6.beginFill(_backgroundColor); Background.drawRounded(this, _local6, (_local1 + 1), (_local2 + 1)); _local6.endFill(); } public function get title():String{ return (_title.text); } private function _update():void{ _draw(); if (baseAlpha < 1){ _background.alpha = baseAlpha; _border.alpha = baseAlpha; }; } public function addData(_arg1:DisplayObject):void{ _data.addChild(_arg1); } override protected function layout():void{ _update(); addChild(_background); addChild(_data); addChild(_title); addChild(_border); addChild(_mask); mask = _mask; } public function set title(_arg1:String):void{ _title.text = _arg1; } public function close():void{ dispose(); if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 46
//Style (com.google.analytics.debug.Style) package com.google.analytics.debug { public const Style:_Style = new _Style(); }//package com.google.analytics.debug
Section 47
//SuccessAlert (com.google.analytics.debug.SuccessAlert) package com.google.analytics.debug { public class SuccessAlert extends Alert { public function SuccessAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align; var _local5:Boolean; var _local6:Boolean; _local4 = Align.bottomLeft; _local5 = true; _local6 = false; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiSuccess", Style.successColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 48
//UISprite (com.google.analytics.debug.UISprite) package com.google.analytics.debug { import flash.events.*; import flash.display.*; public class UISprite extends Sprite { private var _forcedHeight:uint; protected var listenResize:Boolean; public var alignement:Align; private var _forcedWidth:uint; public var margin:Margin; protected var alignTarget:DisplayObject; public function UISprite(_arg1:DisplayObject=null){ listenResize = false; alignement = Align.none; this.alignTarget = _arg1; margin = new Margin(); addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); } protected function dispose():void{ var _local1:DisplayObject; var _local2:int; _local2 = 0; while (_local2 < numChildren) { _local1 = getChildAt(_local2); if (_local1){ removeChild(_local1); }; _local2++; }; } protected function layout():void{ } public function get forcedHeight():uint{ if (_forcedHeight){ return (_forcedHeight); }; return (height); } public function alignTo(_arg1:Align, _arg2:DisplayObject=null):void{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:UISprite; if (_arg2 == null){ if ((parent is Stage)){ _arg2 = this.stage; } else { _arg2 = parent; }; }; if (_arg2 == this.stage){ if (this.stage == null){ return; }; _local3 = this.stage.stageHeight; _local4 = this.stage.stageWidth; _local5 = 0; _local6 = 0; } else { _local7 = (_arg2 as UISprite); if (_local7.forcedHeight){ _local3 = _local7.forcedHeight; } else { _local3 = _local7.height; }; if (_local7.forcedWidth){ _local4 = _local7.forcedWidth; } else { _local4 = _local7.width; }; _local5 = 0; _local6 = 0; }; switch (_arg1){ case Align.top: x = ((_local4 / 2) - (forcedWidth / 2)); y = (_local6 + margin.top); break; case Align.bottom: x = ((_local4 / 2) - (forcedWidth / 2)); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.left: x = (_local5 + margin.left); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.right: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.center: x = ((_local4 / 2) - (forcedWidth / 2)); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.topLeft: x = (_local5 + margin.left); y = (_local6 + margin.top); break; case Align.topRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (_local6 + margin.top); break; case Align.bottomLeft: x = (_local5 + margin.left); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.bottomRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; }; if (((!(listenResize)) && (!((_arg1 == Align.none))))){ _arg2.addEventListener(Event.RESIZE, onResize, false, 0, true); listenResize = true; }; this.alignement = _arg1; this.alignTarget = _arg2; } public function get forcedWidth():uint{ if (_forcedWidth){ return (_forcedWidth); }; return (width); } protected function onResize(_arg1:Event):void{ resize(); } private function _onRemovedFromStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); dispose(); } public function resize():void{ if (alignement != Align.none){ alignTo(alignement, alignTarget); }; } private function _onAddedToStage(_arg1:Event):void{ layout(); resize(); } public function set forcedHeight(_arg1:uint):void{ _forcedHeight = _arg1; } public function set forcedWidth(_arg1:uint):void{ _forcedWidth = _arg1; } } }//package com.google.analytics.debug
Section 49
//Warning (com.google.analytics.debug.Warning) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Warning extends Label { private var _timer:Timer; public function Warning(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiWarning", Style.warningColor, Align.top, false); margin.top = 32; if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function onComplete(_arg1:TimerEvent):void{ close(); } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 50
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode) package com.google.analytics.debug { public class VisualDebugMode { private var _value:int; private var _name:String; public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced"); ; public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek"); ; public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic"); ; public function VisualDebugMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 51
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent) package com.google.analytics.events { import flash.events.*; import com.google.analytics.*; public class AnalyticsEvent extends Event { public var tracker:AnalyticsTracker; public static const READY:String = "ready"; public function AnalyticsEvent(_arg1:String, _arg2:AnalyticsTracker, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.tracker = _arg2; } override public function clone():Event{ return (new AnalyticsEvent(type, tracker, bubbles, cancelable)); } } }//package com.google.analytics.events
Section 52
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals) package com.google.analytics.external { import com.google.analytics.debug.*; public class AdSenseGlobals extends JavascriptProxy { private var _gaGlobalVerified:Boolean;// = false public static var gaGlobal_js:XML = <script> <![CDATA[ function() { try { gaGlobal } catch(e) { gaGlobal = {} ; } } ]]> </script> ; public function AdSenseGlobals(_arg1:DebugConfiguration){ _gaGlobalVerified = false; super(_arg1); } public function set vid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.vid", _arg1); } public function get hid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.hid")); } public function get dh():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.dh")); } public function get gaGlobal():Object{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal")); } public function set hid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.hid", _arg1); } public function get sid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.sid")); } private function _verify():void{ if (!_gaGlobalVerified){ executeBlock(gaGlobal_js); _gaGlobalVerified = true; }; } public function get vid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.vid")); } public function set sid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.sid", _arg1); } } }//package com.google.analytics.external
Section 53
//HTMLDOM (com.google.analytics.external.HTMLDOM) package com.google.analytics.external { import com.google.analytics.debug.*; public class HTMLDOM extends JavascriptProxy { private var _referrer:String; private var _protocol:String; private var _host:String; private var _location:String; private var _pathname:String; private var _title:String; private var _characterSet:String; private var _search:String; private var _language:String; private var _colorDepth:String; public static var cache_properties_js:XML = <script> <![CDATA[ function() { var obj = {}; obj.host = document.location.host; obj.language = navigator.language ? navigator.language : navigator.browserLanguage; obj.characterSet = document.characterSet ? document.characterSet : document.charset; obj.colorDepth = window.screen.colorDepth; obj.location = document.location.toString(); obj.pathname = document.location.pathname; obj.protocol = document.location.protocol; obj.search = document.location.search; obj.referrer = document.referrer; obj.title = document.title; return obj; } ]]> </script> ; public function HTMLDOM(_arg1:DebugConfiguration){ super(_arg1); } public function get search():String{ if (_search){ return (_search); }; if (!isAvailable()){ return (null); }; _search = getProperty("document.location.search"); return (_search); } public function get location():String{ if (_location){ return (_location); }; if (!isAvailable()){ return (null); }; _location = getPropertyString("document.location"); return (_location); } public function get pathname():String{ if (_pathname){ return (_pathname); }; if (!isAvailable()){ return (null); }; _pathname = getProperty("document.location.pathname"); return (_pathname); } public function get referrer():String{ if (_referrer){ return (_referrer); }; if (!isAvailable()){ return (null); }; _referrer = getProperty("document.referrer"); return (_referrer); } public function get protocol():String{ if (_protocol){ return (_protocol); }; if (!isAvailable()){ return (null); }; _protocol = getProperty("document.location.protocol"); return (_protocol); } public function cacheProperties():void{ var _local1:Object; if (!isAvailable()){ return; }; _local1 = call(cache_properties_js); if (_local1){ _host = _local1.host; _language = _local1.language; _characterSet = _local1.characterSet; _colorDepth = _local1.colorDepth; _location = _local1.location; _pathname = _local1.pathname; _protocol = _local1.protocol; _search = _local1.search; _referrer = _local1.referrer; _title = _local1.title; }; } public function get colorDepth():String{ if (_colorDepth){ return (_colorDepth); }; if (!isAvailable()){ return (null); }; _colorDepth = getProperty("window.screen.colorDepth"); return (_colorDepth); } public function get title():String{ if (_title){ return (_title); }; if (!isAvailable()){ return (null); }; _title = getProperty("document.title"); return (_title); } public function get host():String{ if (_host){ return (_host); }; if (!isAvailable()){ return (null); }; _host = getProperty("document.location.host"); return (_host); } public function get characterSet():String{ var _local1:String; if (_characterSet){ return (_characterSet); }; if (!isAvailable()){ return (null); }; _local1 = getProperty("document.characterSet"); if (_local1 == null){ _local1 = getProperty("document.charset"); }; _characterSet = _local1; return (_characterSet); } public function get language():String{ var _local1:String; if (_language){ return (_language); }; if (!isAvailable()){ return (null); }; _local1 = getProperty("navigator.language"); if (_local1 == null){ _local1 = getProperty("navigator.browserLanguage"); }; _language = _local1; return (_language); } } }//package com.google.analytics.external
Section 54
//JavascriptProxy (com.google.analytics.external.JavascriptProxy) package com.google.analytics.external { import com.google.analytics.debug.*; import flash.system.*; import flash.external.*; public class JavascriptProxy { private var _notAvailableWarning:Boolean;// = true private var _debug:DebugConfiguration; public static var setProperty_js:XML = <script> <![CDATA[ function( path , value ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } target[ prop ] = value ; } ]]> </script> ; public static var hasProperty_js:XML = <script> <![CDATA[ function( path ) { var paths; if( path.indexOf(".") > 0 ) { paths = path.split("."); } else { paths = [path]; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } if( target ) { return true; } else { return false; } } ]]> </script> ; public static var setPropertyRef_js:XML = <script> <![CDATA[ function( path , target ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } alert( "paths:"+paths.length+", prop:"+prop ); var targets; var name; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } alert( "targets:"+targets.length+", name:"+name ); var root = window; var len = paths.length; for( var i = 0 ; i < len ; i++ ) { root = root[ paths[i] ] ; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } root[ prop ] = ref[name] ; } ]]> </script> ; public function JavascriptProxy(_arg1:DebugConfiguration){ _notAvailableWarning = true; super(); _debug = _arg1; } public function getProperty(_arg1:String){ return (call((_arg1 + ".valueOf"))); } public function hasProperty(_arg1:String):Boolean{ return (call(hasProperty_js, _arg1)); } public function setProperty(_arg1:String, _arg2):void{ call(setProperty_js, _arg1, _arg2); } public function executeBlock(_arg1:String):void{ var data = _arg1; if (isAvailable()){ try { ExternalInterface.call(data); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; } public function getPropertyString(_arg1:String):String{ return (call((_arg1 + ".toString"))); } public function setPropertyByReference(_arg1:String, _arg2:String):void{ call(setPropertyRef_js, _arg1, _arg2); } public function call(_arg1:String, ... _args){ var output:String; var functionName = _arg1; var args = _args; if (isAvailable()){ try { if (((_debug.javascript) && (_debug.verbose))){ output = ""; output = ("Flash->JS: " + functionName); output = (output + "( "); if (args.length > 0){ output = (output + args.join(",")); }; output = (output + " )"); _debug.info(output); }; args.unshift(functionName); return (ExternalInterface.call.apply(ExternalInterface, args)); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; return (null); } public function isAvailable():Boolean{ var _local1:Boolean; _local1 = ExternalInterface.available; if (((_local1) && ((Capabilities.playerType == "External")))){ _local1 = false; }; if (((((!(_local1)) && (_debug.javascript))) && (_notAvailableWarning))){ _debug.warning("ExternalInterface is not available."); _notAvailableWarning = false; }; return (_local1); } } }//package com.google.analytics.external
Section 55
//Environment (com.google.analytics.utils.Environment) package com.google.analytics.utils { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; import flash.system.*; public class Environment { private var _dom:HTMLDOM; private var _appName:String; private var _debug:DebugConfiguration; private var _appVersion:Version; private var _url:String; private var _protocol:Protocols; private var _userAgent:UserAgent; public function Environment(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:DebugConfiguration=null, _arg5:HTMLDOM=null){ var _local6:Version; super(); if (_arg2 == ""){ if (isAIR()){ _arg2 = "AIR"; } else { _arg2 = "Flash"; }; }; if (_arg3 == ""){ _local6 = flashVersion; } else { _local6 = Version.fromString(_arg3); }; _url = _arg1; _appName = _arg2; _appVersion = _local6; _debug = _arg4; _dom = _arg5; } public function isAIR():Boolean{ return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application")))); } public function get playerType():String{ return (Capabilities.playerType); } public function get locationSearch():String{ var _local1:String; _local1 = _dom.search; if (_local1){ return (_local1); }; return (""); } public function get protocol():Protocols{ if (!_protocol){ _findProtocol(); }; return (_protocol); } public function get flashVersion():Version{ var _local1:Version; _local1 = Version.fromString(Capabilities.version.split(" ")[1], ","); return (_local1); } public function get screenWidth():Number{ return (Capabilities.screenResolutionX); } public function get languageEncoding():String{ var _local1:String; if (System.useCodePage){ _local1 = _dom.characterSet; if (_local1){ return (_local1); }; return ("-"); }; return ("UTF-8"); } public function get appName():String{ return (_appName); } public function get screenColorDepth():String{ var _local1:String; var _local2:String; switch (Capabilities.screenColor){ case "bw": _local1 = "1"; break; case "gray": _local1 = "2"; break; case "color": default: _local1 = "24"; }; _local2 = _dom.colorDepth; if (_local2){ _local1 = _local2; }; return (_local1); } private function _findProtocol():void{ var _local1:Protocols; var _local2:String; var _local3:String; var _local4:String; var _local5:String; _local1 = Protocols.none; if (_url != ""){ _local4 = _url.toLowerCase(); _local5 = _local4.substr(0, 5); switch (_local5){ case "file:": _local1 = Protocols.file; break; case "http:": _local1 = Protocols.HTTP; break; case "https": if (_local4.charAt(5) == ":"){ _local1 = Protocols.HTTPS; }; break; default: _protocol = Protocols.none; }; }; _local2 = _dom.protocol; _local3 = (_local1.toString() + ":").toLowerCase(); if (((((_local2) && (!((_local2 == _local3))))) && (_debug))){ _debug.warning(((("Protocol mismatch: SWF=" + _local3) + ", DOM=") + _local2)); }; _protocol = _local1; } public function get locationSWFPath():String{ return (_url); } public function get platform():String{ var _local1:String; _local1 = Capabilities.manufacturer; return (_local1.split("Adobe ")[1]); } public function get operatingSystem():String{ return (Capabilities.os); } public function set appName(_arg1:String):void{ _appName = _arg1; userAgent.applicationProduct = _arg1; } public function get userAgent():UserAgent{ if (!_userAgent){ _userAgent = new UserAgent(this, appName, appVersion.toString(4)); }; return (_userAgent); } ga_internal function set url(_arg1:String):void{ _url = _arg1; } public function get referrer():String{ var _local1:String; _local1 = _dom.referrer; if (_local1){ return (_local1); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function isInHTML():Boolean{ return ((Capabilities.playerType == "PlugIn")); } public function get language():String{ var _local1:String; var _local2:String; _local1 = _dom.language; _local2 = Capabilities.language; if (_local1){ if ((((_local1.length > _local2.length)) && ((_local1.substr(0, _local2.length) == _local2)))){ _local2 = _local1; }; }; return (_local2); } public function get domainName():String{ var _local1:String; var _local2:String; var _local3:int; if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){ _local1 = _url.toLowerCase(); if (protocol == Protocols.HTTP){ _local2 = _local1.split("http://").join(""); } else { if (protocol == Protocols.HTTPS){ _local2 = _local1.split("https://").join(""); }; }; _local3 = _local2.indexOf("/"); if (_local3 > -1){ _local2 = _local2.substring(0, _local3); }; return (_local2); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function set userAgent(_arg1:UserAgent):void{ _userAgent = _arg1; } public function set appVersion(_arg1:Version):void{ _appVersion = _arg1; userAgent.applicationVersion = _arg1.toString(4); } public function get screenHeight():Number{ return (Capabilities.screenResolutionY); } public function get locationPath():String{ var _local1:String; _local1 = _dom.pathname; if (_local1){ return (_local1); }; return (""); } public function get documentTitle():String{ var _local1:String; _local1 = _dom.title; if (_local1){ return (_local1); }; return (""); } public function get appVersion():Version{ return (_appVersion); } } }//package com.google.analytics.utils
Section 56
//Protocols (com.google.analytics.utils.Protocols) package com.google.analytics.utils { public class Protocols { private var _value:int; private var _name:String; public static const none:Protocols = new Protocols(0, "none"); ; public static const HTTPS:Protocols = new Protocols(3, "HTTPS"); ; public static const file:Protocols = new Protocols(1, "file"); ; public static const HTTP:Protocols = new Protocols(2, "HTTP"); ; public function Protocols(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.utils
Section 57
//Timespan (com.google.analytics.utils.Timespan) package com.google.analytics.utils { public class Timespan { public static var sixmonths:Number = 15768000; public static var twoyears:Number = 63072000; public static var thirtyminutes:Number = 1800; } }//package com.google.analytics.utils
Section 58
//URL (com.google.analytics.utils.URL) package com.google.analytics.utils { public class URL { private var _url:String; public function URL(_arg1:String=""){ _url = _arg1.toLowerCase(); } public function get domain():String{ var _local1:Array; if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){ _local1 = hostName.split("."); switch (_local1.length){ case 2: return (hostName); case 3: if (_local1[1] == "co"){ return (hostName); }; _local1.shift(); return (_local1.join(".")); case 4: _local1.shift(); return (_local1.join(".")); }; }; return (""); } public function get path():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if (_local1.charAt(0) != "/"){ _local1 = ("/" + _local1); }; return (_local1); } public function get protocol():Protocols{ var _local1:String = _url.split("://")[0]; switch (_local1){ case "file": return (Protocols.file); case "http": return (Protocols.HTTP); case "https": return (Protocols.HTTPS); default: return (Protocols.none); }; } public function get hostName():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf("/") > -1){ _local1 = _local1.split("/")[0]; }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){ return (""); }; return (_local1); } public function get subDomain():String{ if (((!((domain == ""))) && (!((domain == hostName))))){ return (hostName.split(("." + domain)).join("")); }; return (""); } public function get search():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[1]; } else { _local1 = ""; }; return (_local1); } } }//package com.google.analytics.utils
Section 59
//UserAgent (com.google.analytics.utils.UserAgent) package com.google.analytics.utils { import com.google.analytics.core.*; import flash.system.*; public class UserAgent { private var _version:Version; private var _localInfo:Environment; private var _applicationProduct:String; public static var minimal:Boolean = false; public function UserAgent(_arg1:Environment, _arg2:String="", _arg3:String=""){ _localInfo = _arg1; applicationProduct = _arg2; _version = Version.fromString(_arg3); } public function get tamarinProductToken():String{ if (UserAgent.minimal){ return (""); }; if (System.vmVersion){ return (("Tamarin/" + Utils.trim(System.vmVersion, true))); }; return (""); } public function set applicationProduct(_arg1:String):void{ _applicationProduct = _arg1; } public function get applicationVersion():String{ return (_version.toString(2)); } public function get applicationProductToken():String{ var _local1:String; _local1 = applicationProduct; if (applicationVersion != ""){ _local1 = (_local1 + ("/" + applicationVersion)); }; return (_local1); } public function get vendorProductToken():String{ var _local1:String; _local1 = ""; if (_localInfo.isAIR()){ _local1 = (_local1 + "AIR"); } else { _local1 = (_local1 + "FlashPlayer"); }; _local1 = (_local1 + "/"); _local1 = (_local1 + _version.toString(3)); return (_local1); } public function toString():String{ var _local1:String; _local1 = ""; _local1 = (_local1 + applicationProductToken); if (applicationComment != ""){ _local1 = (_local1 + (" " + applicationComment)); }; if (tamarinProductToken != ""){ _local1 = (_local1 + (" " + tamarinProductToken)); }; if (vendorProductToken != ""){ _local1 = (_local1 + (" " + vendorProductToken)); }; return (_local1); } public function get applicationComment():String{ var _local1:Array; _local1 = []; _local1.push(_localInfo.platform); _local1.push(_localInfo.playerType); if (!UserAgent.minimal){ _local1.push(_localInfo.operatingSystem); _local1.push(_localInfo.language); }; if (Capabilities.isDebugger){ _local1.push("DEBUG"); }; if (_local1.length > 0){ return ((("(" + _local1.join("; ")) + ")")); }; return (""); } public function set applicationVersion(_arg1:String):void{ _version = Version.fromString(_arg1); } public function get applicationProduct():String{ return (_applicationProduct); } } }//package com.google.analytics.utils
Section 60
//Variables (com.google.analytics.utils.Variables) package com.google.analytics.utils { import flash.net.*; public dynamic class Variables { public var post:Array; public var URIencode:Boolean; public var pre:Array; public var sort:Boolean;// = true public function Variables(_arg1:String=null, _arg2:Array=null, _arg3:Array=null){ pre = []; post = []; super(); if (_arg1){ decode(_arg1); }; if (_arg2){ this.pre = _arg2; }; if (_arg3){ this.post = _arg3; }; } private function _join(_arg1:Variables):void{ var _local2:String; if (!_arg1){ return; }; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } public function join(... _args):void{ var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { if (!(_args[_local3] is Variables)){ } else { _join(_args[_local3]); }; _local3++; }; } public function toString():String{ var _local2:String; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local8:String; var _local1:Array = []; for (_local3 in this) { _local2 = this[_local3]; if (URIencode){ _local2 = encodeURI(_local2); }; _local1.push(((_local3 + "=") + _local2)); }; if (sort){ _local1.sort(); }; if (pre.length > 0){ pre.reverse(); _local5 = 0; while (_local5 < pre.length) { _local7 = pre[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local7) == 0){ _local1.unshift(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; pre.reverse(); }; if (post.length > 0){ _local5 = 0; while (_local5 < post.length) { _local8 = post[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local8) == 0){ _local1.push(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; }; return (_local1.join("&")); } public function decode(_arg1:String):void{ var _local2:Array; var _local3:String; var _local4:String; var _local5:String; var _local6:Array; if (_arg1 == ""){ return; }; if (_arg1.indexOf("&") > -1){ _local2 = _arg1.split("&"); } else { _local2 = [_arg1]; }; var _local7:int; while (_local7 < _local2.length) { _local3 = _local2[_local7]; if (_local3.indexOf("=") > -1){ _local6 = _local3.split("="); _local4 = _local6[0]; _local5 = decodeURI(_local6[1]); this[_local4] = _local5; }; _local7++; }; } public function toURLVariables():URLVariables{ var _local2:String; var _local1:URLVariables = new URLVariables(); for (_local2 in this) { _local1[_local2] = this[_local2]; }; return (_local1); } } }//package com.google.analytics.utils
Section 61
//Version (com.google.analytics.utils.Version) package com.google.analytics.utils { public class Version { private var _maxBuild:uint;// = 0xFF private var _maxMinor:uint;// = 15 private var _maxMajor:uint;// = 15 private var _revision:uint; private var _separator:String;// = "." private var _maxRevision:uint;// = 0xFFFF private var _build:uint; private var _minor:uint; private var _major:uint; public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){ var _local5:Version; _maxMajor = 15; _maxMinor = 15; _maxBuild = 0xFF; _maxRevision = 0xFFFF; _separator = "."; super(); if ((((((((_arg1 > _maxMajor)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){ _local5 = Version.fromNumber(_arg1); _arg1 = _local5.major; _arg2 = _local5.minor; _arg3 = _local5.build; _arg4 = _local5.revision; }; this.major = _arg1; this.minor = _arg2; this.build = _arg3; this.revision = _arg4; } public function toString(_arg1:int=0):String{ var _local2:Array; if ((((_arg1 <= 0)) || ((_arg1 > 4)))){ _arg1 = getFields(); }; switch (_arg1){ case 1: _local2 = [major]; break; case 2: _local2 = [major, minor]; break; case 3: _local2 = [major, minor, build]; break; case 4: default: _local2 = [major, minor, build, revision]; }; return (_local2.join(_separator)); } public function get revision():uint{ return (_revision); } public function set build(_arg1:uint):void{ _build = Math.min(_arg1, _maxBuild); } public function set minor(_arg1:uint):void{ _minor = Math.min(_arg1, _maxMinor); } public function get build():uint{ return (_build); } public function set major(_arg1:uint):void{ _major = Math.min(_arg1, _maxMajor); } public function get minor():uint{ return (_minor); } public function valueOf():uint{ return (((((major << 28) | (minor << 24)) | (build << 16)) | revision)); } public function get major():uint{ return (_major); } public function set revision(_arg1:uint):void{ _revision = Math.min(_arg1, _maxRevision); } private function getFields():int{ var _local1:int; _local1 = 4; if (revision == 0){ _local1--; }; if ((((_local1 == 3)) && ((build == 0)))){ _local1--; }; if ((((_local1 == 2)) && ((minor == 0)))){ _local1--; }; return (_local1); } public function equals(_arg1):Boolean{ if (!(_arg1 is Version)){ return (false); }; if ((((((((_arg1.major == major)) && ((_arg1.minor == minor)))) && ((_arg1.build == build)))) && ((_arg1.revision == revision)))){ return (true); }; return (false); } public static function fromString(_arg1:String="", _arg2:String="."):Version{ var _local3:Version; var _local4:Array; _local3 = new (Version); if ((((_arg1 == "")) || ((_arg1 == null)))){ return (_local3); }; if (_arg1.indexOf(_arg2) > -1){ _local4 = _arg1.split(_arg2); _local3.major = parseInt(_local4[0]); _local3.minor = parseInt(_local4[1]); _local3.build = parseInt(_local4[2]); _local3.revision = parseInt(_local4[3]); } else { _local3.major = parseInt(_arg1); }; return (_local3); } public static function fromNumber(_arg1:Number=0):Version{ var _local2:Version; _local2 = new (Version); if (((((((((((isNaN(_arg1)) || ((_arg1 == 0)))) || ((_arg1 < 0)))) || ((_arg1 == Number.MAX_VALUE)))) || ((_arg1 == Number.POSITIVE_INFINITY)))) || ((_arg1 == Number.NEGATIVE_INFINITY)))){ return (_local2); }; _local2.major = (_arg1 >>> 28); _local2.minor = ((_arg1 & 251658240) >>> 24); _local2.build = ((_arg1 & 0xFF0000) >>> 16); _local2.revision = (_arg1 & 0xFFFF); return (_local2); } } }//package com.google.analytics.utils
Section 62
//Bridge (com.google.analytics.v4.Bridge) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; public class Bridge implements GoogleAnalyticsAPI { private var _debug:DebugConfiguration; private var _proxy:JavascriptProxy; private var _jsContainer:String;// = "_GATracker" private var _hasGATracker:Boolean;// = false private var _account:String; private static var _linkTrackingObject_js:XML = <script> <![CDATA[ function( container , target ) { var targets ; var name ; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } window[container][target] = ref[name] ; } ]]> </script> ; private static var _createTrackingObject_js:XML = <script> <![CDATA[ function( acct ) { _GATracker[acct] = _gat._getTracker(acct); } ]]> </script> ; private static var _injectTrackingObject_js:XML = <script> <![CDATA[ function() { try { _GATracker } catch(e) { _GATracker = {}; } } ]]> </script> ; private static var _checkGAJS_js:XML = <script> <![CDATA[ function() { if( _gat && _gat._getTracker ) { return true; } return false; } ]]> </script> ; private static var _checkValidTrackingObject_js:XML = <script> <![CDATA[ function(acct) { if( _GATracker[acct] && (_GATracker[acct]._getAccount) ) { return true ; } else { return false; } } ]]> </script> ; public function Bridge(_arg1:String, _arg2:DebugConfiguration, _arg3:JavascriptProxy){ var _local4:String; var _local5:String; var _local6:String; super(); _account = _arg1; _debug = _arg2; _proxy = _arg3; if (!_checkGAJS()){ _local4 = ""; _local4 = (_local4 + "ga.js not found, be sure to check if\n"); _local4 = (_local4 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n"); _local4 = (_local4 + "is included in the HTML."); _debug.warning(_local4); throw (new Error(_local4)); }; if (!_hasGATracker){ if (((_debug.javascript) && (_debug.verbose))){ _local5 = ""; _local5 = (_local5 + "The Google Analytics tracking code was not found on the container page\n"); _local5 = (_local5 + "we create it"); _debug.info(_local5, VisualDebugMode.advanced); }; _injectTrackingObject(); }; if (Utils.validateAccount(_arg1)){ _createTrackingObject(_arg1); } else { if (_checkTrackingObject(_arg1)){ _linkTrackingObject(_arg1); } else { _local6 = ""; _local6 = (_local6 + (("JS Object \"" + _arg1) + "\" doesn't exist in DOM\n")); _local6 = (_local6 + "Bridge object not created."); _debug.warning(_local6); throw (new Error(_local6)); }; }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _debug.info((((("link( " + _arg1) + ", ") + _arg2) + " )")); _call("_link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _call("_addOrganic", _arg1); } public function setAllowLinker(_arg1:Boolean):void{ _debug.info((("setAllowLinker( " + _arg1) + " )")); _call("_setAllowLinker", _arg1); } private function _linkTrackingObject(_arg1:String):void{ _proxy.call(_linkTrackingObject_js, _jsContainer, _arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ var _local5 = 2; if (((_arg3) && (!((_arg3 == ""))))){ _local5 = 3; }; if ((((_local5 == 3)) && (!(isNaN(_arg4))))){ _local5 = 4; }; switch (_local5){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3, _arg4)); case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3)); case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2)); }; } public function setClientInfo(_arg1:Boolean):void{ _debug.info((("setClientInfo( " + _arg1) + " )")); _call("_setClientInfo", _arg1); } public function trackTrans():void{ _debug.info("trackTrans()"); _call("_trackTrans"); } public function setCookieTimeout(_arg1:int):void{ _debug.info((("setCookieTimeout( " + _arg1) + " )")); _call("_setCookieTimeout", _arg1); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); _call("_trackPageview", _arg1); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_call("_getClientInfo")); } private function _checkValidTrackingObject(_arg1:String):Boolean{ return (_proxy.call(_checkValidTrackingObject_js, _arg1)); } private function _checkGAJS():Boolean{ return (_proxy.call(_checkGAJS_js)); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning((((("linkByPost( " + _arg1) + ", ") + _arg2) + " ) not implemented")); } private function _call(_arg1:String, ... _args){ _args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + _arg1)); return (_proxy.call.apply(_proxy, _args)); } public function hasGAJS():Boolean{ return (_checkGAJS()); } private function _checkTrackingObject(_arg1:String):Boolean{ var _local2:Boolean = _proxy.hasProperty(_arg1); var _local3:Boolean = _proxy.hasProperty((_arg1 + "._getAccount")); return (((_local2) && (_local3))); } public function resetSession():void{ _debug.warning("resetSession() not implemented"); } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_call("_getDetectTitle")); } public function setCampNameKey(_arg1:String):void{ _debug.info((("setCampNameKey( " + _arg1) + " )")); _call("_setCampNameKey", _arg1); } public function setDetectFlash(_arg1:Boolean):void{ _debug.info((("setDetectFlash( " + _arg1) + " )")); _call("_setDetectFlash", _arg1); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )")); _call("_addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _call("_clearIgnoreOrganic"); } public function setVar(_arg1:String):void{ _debug.info((("setVar( " + _arg1) + " )")); _call("_setVar", _arg1); } public function setDomainName(_arg1:String):void{ _debug.info((("setDomainName( " + _arg1) + " )")); _call("_setDomainName", _arg1); } public function hasTrackingAccount(_arg1:String):Boolean{ if (Utils.validateAccount(_arg1)){ return (_checkValidTrackingObject(_arg1)); }; return (_checkTrackingObject(_arg1)); } public function setCampSourceKey(_arg1:String):void{ _debug.info((("setCampSourceKey( " + _arg1) + " )")); _call("_setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )")); _call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); return (null); } public function setCampContentKey(_arg1:String):void{ _debug.info((("setCampContentKey( " + _arg1) + " )")); _call("_setCampContentKey", _arg1); } public function setLocalServerMode():void{ _debug.info("setLocalServerMode()"); _call("_setLocalServerMode"); } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_call("_getLocalGifPath")); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _call("_clearIgnoreRef"); } public function setAllowAnchor(_arg1:Boolean):void{ _debug.info((("setAllowAnchor( " + _arg1) + " )")); _call("_setAllowAnchor", _arg1); } public function setLocalGifPath(_arg1:String):void{ _debug.info((("setLocalGifPath( " + _arg1) + " )")); _call("_setLocalGifPath", _arg1); } public function getVersion():String{ _debug.info("getVersion()"); return (_call("_getVersion")); } private function _injectTrackingObject():void{ _proxy.executeBlock(_injectTrackingObject_js); _hasGATracker = true; } public function setCookiePath(_arg1:String):void{ _debug.info((("setCookiePath( " + _arg1) + " )")); _call("_setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ _debug.info((("setSampleRate( " + _arg1) + " )")); _call("_setSampleRate", _arg1); } public function setAllowHash(_arg1:Boolean):void{ _debug.info((("setAllowHash( " + _arg1) + " )")); _call("_setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _call("_addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ _debug.info((("setCampNOKey( " + _arg1) + " )")); _call("_setCampNOKey", _arg1); } public function cookiePathCopy(_arg1:String):void{ _debug.info((("cookiePathCopy( " + _arg1) + " )")); _call("_cookiePathCopy", _arg1); } public function setLocalRemoteServerMode():void{ _debug.info("setLocalRemoteServerMode()"); _call("_setLocalRemoteServerMode"); } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_call("_getServiceMode")); } public function setDetectTitle(_arg1:Boolean):void{ _debug.info((("setDetectTitle( " + _arg1) + " )")); _call("_setDetectTitle", _arg1); } private function _createTrackingObject(_arg1:String):void{ _proxy.call(_createTrackingObject_js, _arg1); } public function setCampaignTrack(_arg1:Boolean):void{ _debug.info((("setCampaignTrack( " + _arg1) + " )")); _call("_setCampaignTrack", _arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _call("_clearOrganic"); } public function setCampTermKey(_arg1:String):void{ _debug.info((("setCampTermKey( " + _arg1) + " )")); _call("_setCampTermKey", _arg1); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_call("_getDetectFlash")); } public function setCampMediumKey(_arg1:String):void{ _debug.info((("setCampMediumKey( " + _arg1) + " )")); _call("_setCampMediumKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _call("_addIgnoredRef", _arg1); } public function setSessionTimeout(_arg1:int):void{ _debug.info((("setSessionTimeout( " + _arg1) + " )")); _call("_setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ _debug.info("setRemoteServerMode()"); _call("_setRemoteServerMode"); } public function getAccount():String{ _debug.info("getAccount()"); return (_call("_getAccount")); } } }//package com.google.analytics.v4
Section 63
//Configuration (com.google.analytics.v4.Configuration) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.campaign.*; public class Configuration { public var serverMode:ServerOperationMode; public var detectFlash:Boolean;// = true public var allowLocalTracking:Boolean;// = true public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif" public var hasSiteOverlay:Boolean;// = false private var _version:String;// = "4.3as" public var allowDomainHash:Boolean;// = true public var detectClientInfo:Boolean;// = true public var idleLoop:Number;// = 30 public var isTrackOutboundSubdomains:Boolean;// = false public var cookiePath:String;// = "/" public var transactionFieldDelim:String;// = "|" private var _organic:Organic; private var _cookieName:String;// = "analytics" public var campaignKey:CampaignKey; public var google:String;// = "google" public var googleCsePath:String;// = "cse" public var bucketCapacity:Number;// = 10 private var _sampleRate:Number;// = 1 public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif" public var googleSearchParam:String;// = "q" public var allowLinker:Boolean;// = false public var maxOutboundLinkExamined:Number;// = 1000 private var _debug:DebugConfiguration; private var _trackingLimitPerSession:int;// = 500 private var _domain:Domain; public var allowAnchor:Boolean;// = false public var tokenCliff:int;// = 10 public var sessionTimeout:Number; public var idleTimeout:Number;// = 60 public var campaignTracking:Boolean;// = true public var domainName:String;// = "" public var detectTitle:Boolean;// = true public var tokenRate:Number;// = 0.2 public var conversionTimeout:Number; public var localGIFpath:String;// = "/__utm.gif" public function Configuration(_arg1:DebugConfiguration=null){ _version = "4.3as"; _sampleRate = 1; _trackingLimitPerSession = 500; _organic = new Organic(); googleCsePath = "cse"; googleSearchParam = "q"; google = "google"; _cookieName = "analytics"; allowDomainHash = true; allowAnchor = false; allowLinker = false; hasSiteOverlay = false; tokenRate = 0.2; conversionTimeout = Timespan.sixmonths; sessionTimeout = Timespan.thirtyminutes; idleLoop = 30; idleTimeout = 60; maxOutboundLinkExamined = 1000; tokenCliff = 10; bucketCapacity = 10; detectClientInfo = true; detectFlash = true; detectTitle = true; campaignKey = new CampaignKey(); campaignTracking = true; isTrackOutboundSubdomains = false; serverMode = ServerOperationMode.remote; localGIFpath = "/__utm.gif"; remoteGIFpath = "http://www.google-analytics.com/__utm.gif"; secureRemoteGIFpath = "https://ssl.google-analytics.com/__utm.gif"; cookiePath = "/"; transactionFieldDelim = "|"; domainName = ""; allowLocalTracking = true; super(); _debug = _arg1; _domain = new Domain(DomainNameMode.auto, "", _debug); serverMode = ServerOperationMode.remote; _initOrganicSources(); } public function get organic():Organic{ return (_organic); } public function get trackingLimitPerSession():int{ return (_trackingLimitPerSession); } private function _initOrganicSources():void{ addOrganicSource(google, googleSearchParam); addOrganicSource("yahoo", "p"); addOrganicSource("msn", "q"); addOrganicSource("aol", "query"); addOrganicSource("aol", "encquery"); addOrganicSource("lycos", "query"); addOrganicSource("ask", "q"); addOrganicSource("altavista", "q"); addOrganicSource("netscape", "query"); addOrganicSource("cnn", "query"); addOrganicSource("looksmart", "qt"); addOrganicSource("about", "terms"); addOrganicSource("mamma", "query"); addOrganicSource("alltheweb", "q"); addOrganicSource("gigablast", "q"); addOrganicSource("voila", "rdata"); addOrganicSource("virgilio", "qs"); addOrganicSource("live", "q"); addOrganicSource("baidu", "wd"); addOrganicSource("alice", "qs"); addOrganicSource("yandex", "text"); addOrganicSource("najdi", "q"); addOrganicSource("aol", "q"); addOrganicSource("club-internet", "q"); addOrganicSource("mama", "query"); addOrganicSource("seznam", "q"); addOrganicSource("search", "q"); addOrganicSource("wp", "szukaj"); addOrganicSource("onet", "qt"); addOrganicSource("netsprint", "q"); addOrganicSource("google.interia", "q"); addOrganicSource("szukacz", "q"); addOrganicSource("yam", "k"); addOrganicSource("pchome", "q"); addOrganicSource("kvasir", "searchExpr"); addOrganicSource("sesam", "q"); addOrganicSource("ozu", "q"); addOrganicSource("terra", "query"); addOrganicSource("nostrum", "query"); addOrganicSource("mynet", "q"); addOrganicSource("ekolay", "q"); addOrganicSource("search.ilse", "search_for"); } public function get sampleRate():Number{ return (_sampleRate); } public function get cookieName():String{ return (_cookieName); } public function addOrganicSource(_arg1:String, _arg2:String):void{ var engine = _arg1; var keyword = _arg2; try { _organic.addSource(engine, keyword); } catch(e:Error) { if (((_debug) && (_debug.active))){ _debug.warning(e.message); }; }; } public function get domain():Domain{ return (_domain); } public function set sampleRate(_arg1:Number):void{ if (_arg1 <= 0){ _arg1 = 0.1; }; if (_arg1 > 1){ _arg1 = 1; }; _arg1 = Number(_arg1.toFixed(2)); _sampleRate = _arg1; } public function get version():String{ return (_version); } } }//package com.google.analytics.v4
Section 64
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI) package com.google.analytics.v4 { import com.google.analytics.core.*; public interface GoogleAnalyticsAPI { function setCampSourceKey(_arg1:String):void; function getServiceMode():ServerOperationMode; function resetSession():void; function setLocalServerMode():void; function setCampContentKey(_arg1:String):void; function addOrganic(_arg1:String, _arg2:String):void; function setDetectFlash(_arg1:Boolean):void; function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object; function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean; function setCampTermKey(_arg1:String):void; function setCampNameKey(_arg1:String):void; function addIgnoredOrganic(_arg1:String):void; function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void; function setAllowLinker(_arg1:Boolean):void; function getClientInfo():Boolean; function getDetectFlash():Boolean; function setCampaignTrack(_arg1:Boolean):void; function createEventTracker(_arg1:String):EventTracker; function setCookieTimeout(_arg1:int):void; function setAllowAnchor(_arg1:Boolean):void; function trackTrans():void; function clearOrganic():void; function trackPageview(_arg1:String=""):void; function setLocalGifPath(_arg1:String):void; function getVersion():String; function getLocalGifPath():String; function setVar(_arg1:String):void; function clearIgnoredOrganic():void; function setCampMediumKey(_arg1:String):void; function addIgnoredRef(_arg1:String):void; function setClientInfo(_arg1:Boolean):void; function setCookiePath(_arg1:String):void; function setSampleRate(_arg1:Number):void; function setSessionTimeout(_arg1:int):void; function setRemoteServerMode():void; function clearIgnoredRef():void; function setDomainName(_arg1:String):void; function setDetectTitle(_arg1:Boolean):void; function setAllowHash(_arg1:Boolean):void; function getAccount():String; function linkByPost(_arg1:Object, _arg2:Boolean=false):void; function link(_arg1:String, _arg2:Boolean=false):void; function setCampNOKey(_arg1:String):void; function setLocalRemoteServerMode():void; function cookiePathCopy(_arg1:String):void; function getDetectTitle():Boolean; } }//package com.google.analytics.v4
Section 65
//Tracker (com.google.analytics.v4.Tracker) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; import com.google.analytics.data.*; import com.google.analytics.campaign.*; public class Tracker implements GoogleAnalyticsAPI { private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3; private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1; private const EVENT_TRACKER_PROJECT_ID:int = 5; private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1; private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2; private var _adSense:AdSenseGlobals; private var _eventTracker:X10; private var _noSessionInformation:Boolean;// = false private var _browserInfo:BrowserInfo; private var _debug:DebugConfiguration; private var _isNewVisitor:Boolean;// = false private var _buffer:Buffer; private var _config:Configuration; private var _x10Module:X10; private var _campaign:CampaignManager; private var _formatedReferrer:String; private var _timeStamp:Number; private var _info:Environment; private var _domainHash:Number; private var _campaignInfo:CampaignInfo; private var _gifRequest:GIFRequest; private var _hasInitData:Boolean;// = false private var _account:String; public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals){ var _local8:String; super(); _account = _arg1; _config = _arg2; _debug = _arg3; _info = _arg4; _buffer = _arg5; _gifRequest = _arg6; _adSense = _arg7; if (!Utils.validateAccount(_arg1)){ _local8 = (("Account \"" + _arg1) + "\" is not valid."); _debug.warning(_local8); throw (new Error(_local8)); }; _initData(); } private function _doTracking():Boolean{ if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){ return (true); }; if (_config.allowLocalTracking){ return (true); }; return (false); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _config.organic.addSource(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _config.allowLinker = _arg1; _debug.info((("setAllowLinker( " + _config.allowLinker) + " )")); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ var _local5:Boolean; var _local6 = 2; if (((!((_arg1 == ""))) && (!((_arg2 == ""))))){ _eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID); _eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, _arg1); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, _arg2); if (((_arg3) && (!((_arg3 == ""))))){ _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, _arg3); _local6 = 3; if (!isNaN(_arg4)){ _local5 = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, _arg4); _local6 = 4; }; }; if (_local5){ _debug.info(((("valid event tracking call\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _sendXEvent(_eventTracker); }; } else { _debug.warning(((("event tracking call is not valid, failed!\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _local5 = false; }; switch (_local6){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); break; case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); break; case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); }; return (_local5); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); if (_doTracking()){ _initData(); _trackMetrics(_arg1); _noSessionInformation = false; } else { _debug.warning((("trackPageview( " + _arg1) + " ) failed")); }; } public function setCookieTimeout(_arg1:int):void{ _config.conversionTimeout = _arg1; _debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )")); } public function trackTrans():void{ _debug.warning("trackTrans() not implemented"); } public function setClientInfo(_arg1:Boolean):void{ _config.detectClientInfo = _arg1; _debug.info((("setClientInfo( " + _config.detectClientInfo) + " )")); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning((("linkByPost( " + [_arg1, _arg2].join(", ")) + " ) not implemented")); } private function _initData():void{ var _local1:String; var _local2:String; if (!_hasInitData){ _updateDomainName(); _domainHash = _getDomainHash(); _timeStamp = Math.round((new Date().getTime() / 1000)); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "_initData 0"); _local1 = (_local1 + ("\ndomain name: " + _config.domainName)); _local1 = (_local1 + ("\ndomain hash: " + _domainHash)); _local1 = (_local1 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_doTracking()){ _handleCookie(); }; if (!_hasInitData){ if (_doTracking()){ _formatedReferrer = _formatReferrer(); _browserInfo = new BrowserInfo(_config, _info); _debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced); if (_config.campaignTracking){ _campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp); _campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation); _debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced); }; }; _x10Module = new X10(); _eventTracker = new X10(); _hasInitData = true; }; if (_config.hasSiteOverlay){ _debug.warning("Site Overlay is not supported"); }; if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "_initData (misc)"); _local2 = (_local2 + ("\nflash version: " + _info.flashVersion.toString(4))); _local2 = (_local2 + ("\nprotocol: " + _info.protocol)); _local2 = (_local2 + (("\ndefault domain name (auto): \"" + _info.domainName) + "\"")); _local2 = (_local2 + ("\nlanguage: " + _info.language)); _local2 = (_local2 + ("\ndomain hash: " + _getDomainHash())); _local2 = (_local2 + ("\nuser-agent: " + _info.userAgent)); _debug.info(_local2, VisualDebugMode.geek); }; } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_config.detectTitle); } public function resetSession():void{ _debug.info("resetSession()"); _buffer.resetCurrentSession(); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_config.detectClientInfo); } private function _sendXEvent(_arg1:X10=null):void{ var _local2:Variables; var _local3:EventInfo; var _local4:Variables; var _local5:Variables; _initData(); if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; _local3 = new EventInfo(true, _x10Module, _arg1); _local4 = _local3.toVariables(); _local5 = _renderMetricsSearchVariables(); _local2.join(_local4, _local5); _gifRequest.send(_account, _local2, false, true); }; } public function setDetectFlash(_arg1:Boolean):void{ _config.detectFlash = _arg1; _debug.info((("setDetectFlash( " + _config.detectFlash) + " )")); } public function setCampNameKey(_arg1:String):void{ _config.campaignKey.UCCN = _arg1; var _local2 = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCN]")); } else { _debug.info(_local2); }; } private function _formatReferrer():String{ var _local2:String; var _local3:URL; var _local4:URL; var _local1:String = _info.referrer; if ((((_local1 == "")) || ((_local1 == "localhost")))){ _local1 = "-"; } else { _local2 = _info.domainName; _local3 = new URL(_local1); _local4 = new URL(("http://" + _local2)); if (_local3.hostName == _local2){ return ("-"); }; if (_local4.domain == _local3.domain){ if (_local4.subDomain != _local3.subDomain){ _local1 = "0"; }; }; if ((((_local1.charAt(0) == "[")) && (_local1.charAt((_local1.length - 1))))){ _local1 = "-"; }; }; _debug.info(("formated referrer: " + _local1), VisualDebugMode.advanced); return (_local1); } private function _visitCode():Number{ if (_debug.verbose){ _debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek); }; return (_buffer.utma.sessionId); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _debug.warning((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " ) not implemented")); } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _config.organic.clearIgnoredKeywords(); } public function setVar(_arg1:String):void{ var _local2:Variables; if (((!((_arg1 == ""))) && (_isNotGoogleSearch()))){ _initData(); _buffer.utmv.domainHash = _domainHash; _buffer.utmv.value = _arg1; if (_debug.verbose){ _debug.info(_buffer.utmv.toString(), VisualDebugMode.geek); }; _debug.info((("setVar( " + _arg1) + " )")); if (_takeSample()){ _local2 = new Variables(); _local2.utmt = "var"; _gifRequest.send(_account, _local2); }; } else { _debug.warning((("setVar \"" + _arg1) + "\" is ignored")); }; } public function setDomainName(_arg1:String):void{ if (_arg1 == "auto"){ _config.domain.mode = DomainNameMode.auto; } else { if (_arg1 == "none"){ _config.domain.mode = DomainNameMode.none; } else { _config.domain.mode = DomainNameMode.custom; _config.domain.name = _arg1; }; }; _updateDomainName(); _debug.info((("setDomainName( " + _config.domainName) + " )")); } private function _updateDomainName():void{ var _local1:String; if (_config.domain.mode == DomainNameMode.auto){ _local1 = _info.domainName; if (_local1.substring(0, 4) == "www."){ _local1 = _local1.substring(4); }; _config.domain.name = _local1; }; _config.domainName = _config.domain.name.toLowerCase(); _debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{ _debug.warning((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " ) not implemented")); return (null); } private function _renderMetricsSearchVariables(_arg1:String=""):Variables{ var _local4:Variables; var _local2:Variables = new Variables(); _local2.URIencode = true; var _local3:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, _arg1, _adSense); _debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek); if (_config.campaignTracking){ _local4 = _campaignInfo.toVariables(); }; var _local5:Variables = _browserInfo.toVariables(); _local2.join(_local3.toVariables(), _local5, _local4); return (_local2); } public function setCampContentKey(_arg1:String):void{ _config.campaignKey.UCCT = _arg1; var _local2 = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCT]")); } else { _debug.info(_local2); }; } private function _handleCookie():void{ var _local1:String; var _local2:String; var _local3:Array; var _local4:String; if (_config.allowLinker){ }; if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){ if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){ _buffer.updateUTMA(_timeStamp); _noSessionInformation = true; }; if (_debug.verbose){ _debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek); }; } else { _debug.info("create a new utma", VisualDebugMode.advanced); _buffer.utma.domainHash = _domainHash; _buffer.utma.sessionId = _getUniqueSessionId(); _buffer.utma.firstTime = _timeStamp; _buffer.utma.lastTime = _timeStamp; _buffer.utma.currentTime = _timeStamp; _buffer.utma.sessionCount = 1; if (_debug.verbose){ _debug.info(_buffer.utma.toString(), VisualDebugMode.geek); }; _noSessionInformation = true; _isNewVisitor = true; }; if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){ if (_adSense.sid){ _buffer.utma.currentTime = Number(_adSense.sid); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "AdSense sid found\n"); _local1 = (_local1 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_isNewVisitor){ if (_adSense.sid){ _buffer.utma.lastTime = Number(_adSense.sid); if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "AdSense sid found (new visitor)\n"); _local2 = (_local2 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local2, VisualDebugMode.geek); }; }; if (_adSense.vid){ _local3 = _adSense.vid.split("."); _buffer.utma.sessionId = Number(_local3[0]); _buffer.utma.firstTime = Number(_local3[1]); if (_debug.verbose){ _local4 = ""; _local4 = (_local4 + "AdSense vid found (new visitor)\n"); _local4 = (_local4 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(_local3[0])) + ")\n")); _local4 = (_local4 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(_local3[1])) + ")")); _debug.info(_local4, VisualDebugMode.geek); }; }; if (_debug.verbose){ _debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek); }; }; }; _buffer.utmb.domainHash = _domainHash; if (isNaN(_buffer.utmb.trackCount)){ _buffer.utmb.trackCount = 0; }; if (isNaN(_buffer.utmb.token)){ _buffer.utmb.token = _config.tokenCliff; }; if (isNaN(_buffer.utmb.lastTime)){ _buffer.utmb.lastTime = _buffer.utma.currentTime; }; _buffer.utmc.domainHash = _domainHash; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced); _debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced); }; } public function setLocalServerMode():void{ _config.serverMode = ServerOperationMode.local; _debug.info("setLocalServerMode()"); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _config.organic.clearIgnoredReferrals(); } public function setCampSourceKey(_arg1:String):void{ _config.campaignKey.UCSR = _arg1; var _local2 = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCSR]")); } else { _debug.info(_local2); }; } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_config.localGIFpath); } public function setLocalGifPath(_arg1:String):void{ _config.localGIFpath = _arg1; _debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )")); } public function getVersion():String{ _debug.info("getVersion()"); return (_config.version); } public function setAllowAnchor(_arg1:Boolean):void{ _config.allowAnchor = _arg1; _debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )")); } private function _isNotGoogleSearch():Boolean{ var _local1:String = _config.domainName; var _local2 = (_local1.indexOf("www.google.") < 0); var _local3 = (_local1.indexOf(".google.") < 0); var _local4 = (_local1.indexOf("google.") < 0); var _local5 = (_local1.indexOf("google.org") > -1); return (((((((((_local2) || (_local3))) || (_local4))) || (!((_config.cookiePath == "/"))))) || (_local5))); } public function setSampleRate(_arg1:Number):void{ if (_arg1 < 0){ _debug.warning("sample rate can not be negative, ignoring value."); } else { _config.sampleRate = _arg1; }; _debug.info((("setSampleRate( " + _config.sampleRate) + " )")); } private function _takeSample():Boolean{ if (_debug.verbose){ _debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek); }; return (((_visitCode() % 10000) < (_config.sampleRate * 10000))); } public function setCookiePath(_arg1:String):void{ _config.cookiePath = _arg1; _debug.info((("setCookiePath( " + _config.cookiePath) + " )")); } public function setAllowHash(_arg1:Boolean):void{ _config.allowDomainHash = _arg1; _debug.info((("setAllowHash( " + _config.allowDomainHash) + " )")); } private function _generateUserDataHash():Number{ var _local1 = ""; _local1 = (_local1 + _info.appName); _local1 = (_local1 + _info.appVersion); _local1 = (_local1 + _info.language); _local1 = (_local1 + _info.platform); _local1 = (_local1 + _info.userAgent.toString()); _local1 = (_local1 + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth)); _local1 = (_local1 + _info.referrer); return (Utils.generateHash(_local1)); } public function setCampNOKey(_arg1:String):void{ _config.campaignKey.UCNO = _arg1; var _local2 = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCNO]")); } else { _debug.info(_local2); }; } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _config.organic.addIgnoredKeyword(_arg1); } public function setLocalRemoteServerMode():void{ _config.serverMode = ServerOperationMode.both; _debug.info("setLocalRemoteServerMode()"); } public function cookiePathCopy(_arg1:String):void{ _debug.warning((("cookiePathCopy( " + _arg1) + " ) not implemented")); } public function setDetectTitle(_arg1:Boolean):void{ _config.detectTitle = _arg1; _debug.info((("setDetectTitle( " + _config.detectTitle) + " )")); } public function setCampTermKey(_arg1:String):void{ _config.campaignKey.UCTR = _arg1; var _local2 = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCTR]")); } else { _debug.info(_local2); }; } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_config.serverMode); } private function _trackMetrics(_arg1:String=""):void{ var _local2:Variables; var _local3:Variables; var _local4:Variables; var _local5:EventInfo; if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; if (((_x10Module) && (_x10Module.hasData()))){ _local5 = new EventInfo(false, _x10Module); _local3 = _local5.toVariables(); }; _local4 = _renderMetricsSearchVariables(_arg1); _local2.join(_local3, _local4); _gifRequest.send(_account, _local2); }; } public function setCampaignTrack(_arg1:Boolean):void{ _config.campaignTracking = _arg1; _debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )")); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _config.organic.addIgnoredReferral(_arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _config.organic.clearEngines(); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_config.detectFlash); } public function setCampMediumKey(_arg1:String):void{ _config.campaignKey.UCMD = _arg1; var _local2 = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCMD]")); } else { _debug.info(_local2); }; } private function _getUniqueSessionId():Number{ var _local1:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647); _debug.info(("Session ID: " + _local1), VisualDebugMode.geek); return (_local1); } private function _getDomainHash():Number{ if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){ _config.domainName = ""; return (1); }; _updateDomainName(); if (_config.allowDomainHash){ return (Utils.generateHash(_config.domainName)); }; return (1); } public function setSessionTimeout(_arg1:int):void{ _config.sessionTimeout = _arg1; _debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )")); } public function getAccount():String{ _debug.info("getAccount()"); return (_account); } public function link(_arg1:String, _arg2:Boolean=false):void{ _debug.warning((("link( " + [_arg1, _arg2].join(", ")) + " ) not implemented")); } public function setRemoteServerMode():void{ _config.serverMode = ServerOperationMode.remote; _debug.info("setRemoteServerMode()"); } } }//package com.google.analytics.v4
Section 66
//AnalyticsTracker (com.google.analytics.AnalyticsTracker) package com.google.analytics { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher { function set config(_arg1:Configuration):void; function isReady():Boolean; function get mode():String; function set debug(_arg1:DebugConfiguration):void; function get account():String; function set mode(_arg1:String):void; function get config():Configuration; function get debug():DebugConfiguration; function set account(_arg1:String):void; function get visualDebug():Boolean; function set visualDebug(_arg1:Boolean):void; } }//package com.google.analytics
Section 67
//API (com.google.analytics.API) package com.google.analytics { import com.google.analytics.utils.*; public class API { public static var version:Version = new Version(); version.major = 1; version.minor = 0; version.build = 1; version.revision = "$Rev: 319 $ ".split(" ")[1]; } }//package com.google.analytics
Section 68
//GATracker (com.google.analytics.GATracker) package com.google.analytics { import flash.events.*; import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; import com.google.analytics.events.*; public class GATracker implements AnalyticsTracker { private var _adSense:AdSenseGlobals; private var _env:Environment; private var _visualDebug:Boolean; private var _idleTimer:IdleTimer; private var _debug:DebugConfiguration; private var _buffer:Buffer; private var _config:Configuration; private var _mode:String; private var _display:DisplayObject; private var _jsproxy:JavascriptProxy; private var _dom:HTMLDOM; private var _eventDispatcher:EventDispatcher; private var _ready:Boolean;// = false private var _gifRequest:GIFRequest; private var _account:String; private var _tracker:GoogleAnalyticsAPI; public static var version:Version = API.version; public static var autobuild:Boolean = true; public function GATracker(_arg1:DisplayObject, _arg2:String, _arg3:String="AS3", _arg4:Boolean=false, _arg5:Configuration=null, _arg6:DebugConfiguration=null){ _ready = false; super(); _display = _arg1; _eventDispatcher = new EventDispatcher(this); _tracker = new TrackerCache(); this.account = _arg2; this.mode = _arg3; this.visualDebug = _arg4; if (!_arg6){ this.debug = new DebugConfiguration(); }; if (!_arg5){ this.config = new Configuration(_arg6); }; if (autobuild){ _factory(); }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _tracker.link(_arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _tracker.addOrganic(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _tracker.setAllowLinker(_arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ return (_tracker.trackEvent(_arg1, _arg2, _arg3, _arg4)); } public function setCookieTimeout(_arg1:int):void{ _tracker.setCookieTimeout(_arg1); } public function trackTrans():void{ _tracker.trackTrans(); } public function trackPageview(_arg1:String=""):void{ _tracker.trackPageview(_arg1); } public function getClientInfo():Boolean{ return (_tracker.getClientInfo()); } public function setClientInfo(_arg1:Boolean):void{ _tracker.setClientInfo(_arg1); } public function get account():String{ return (_account); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _tracker.linkByPost(_arg1, _arg2); } public function getDetectTitle():Boolean{ return (_tracker.getDetectTitle()); } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } public function get config():Configuration{ return (_config); } public function set mode(_arg1:String):void{ _mode = _arg1; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function setDetectFlash(_arg1:Boolean):void{ _tracker.setDetectFlash(_arg1); } public function resetSession():void{ _tracker.resetSession(); } public function setCampNameKey(_arg1:String):void{ _tracker.setCampNameKey(_arg1); } public function get debug():DebugConfiguration{ return (_debug); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _tracker.addItem(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } private function _bridgeFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account)); return (new Bridge(account, _debug, _jsproxy)); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function clearIgnoredOrganic():void{ _tracker.clearIgnoredOrganic(); } public function set account(_arg1:String):void{ _account = _arg1; } public function setVar(_arg1:String):void{ _tracker.setVar(_arg1); } public function build():void{ if (!isReady()){ _factory(); }; } public function setDomainName(_arg1:String):void{ _tracker.setDomainName(_arg1); } public function createEventTracker(_arg1:String):EventTracker{ return (_tracker.createEventTracker(_arg1)); } public function set config(_arg1:Configuration):void{ _config = _arg1; } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):Object{ return (_tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8)); } public function setCampSourceKey(_arg1:String):void{ _tracker.setCampSourceKey(_arg1); } public function setCampContentKey(_arg1:String):void{ _tracker.setCampContentKey(_arg1); } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } public function setLocalServerMode():void{ _tracker.setLocalServerMode(); } public function isReady():Boolean{ return (_ready); } public function getLocalGifPath():String{ return (_tracker.getLocalGifPath()); } public function setAllowAnchor(_arg1:Boolean):void{ _tracker.setAllowAnchor(_arg1); } public function clearIgnoredRef():void{ _tracker.clearIgnoredRef(); } public function get mode():String{ return (_mode); } public function set debug(_arg1:DebugConfiguration):void{ _debug = _arg1; } public function setLocalGifPath(_arg1:String):void{ _tracker.setLocalGifPath(_arg1); } public function getVersion():String{ return (_tracker.getVersion()); } public function setSampleRate(_arg1:Number):void{ _tracker.setSampleRate(_arg1); } public function setCookiePath(_arg1:String):void{ _tracker.setCookiePath(_arg1); } public function setAllowHash(_arg1:Boolean):void{ _tracker.setAllowHash(_arg1); } public function setCampNOKey(_arg1:String):void{ _tracker.setCampNOKey(_arg1); } public function addIgnoredOrganic(_arg1:String):void{ _tracker.addIgnoredOrganic(_arg1); } public function setLocalRemoteServerMode():void{ _tracker.setLocalRemoteServerMode(); } public function cookiePathCopy(_arg1:String):void{ _tracker.cookiePathCopy(_arg1); } private function _factory():void{ var _local1:GoogleAnalyticsAPI; var _local2:TrackerCache; _jsproxy = new JavascriptProxy(debug); if (visualDebug){ debug.layout = new Layout(debug, _display); debug.active = visualDebug; }; _local2 = (_tracker as TrackerCache); switch (mode){ case TrackerMode.BRIDGE: _local1 = _bridgeFactory(); break; case TrackerMode.AS3: default: _local1 = _trackerFactory(); }; if (!_local2.isEmpty()){ _local2.tracker = _local1; _local2.flush(); }; _tracker = _local1; _ready = true; dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this)); } public function setCampTermKey(_arg1:String):void{ _tracker.setCampTermKey(_arg1); } private function _trackerFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account)); _adSense = new AdSenseGlobals(debug); _dom = new HTMLDOM(debug); _dom.cacheProperties(); _env = new Environment("", "", "", debug, _dom); _buffer = new Buffer(config, debug, false); _gifRequest = new GIFRequest(config, debug, _buffer, _env); _idleTimer = new IdleTimer(config, debug, _display, _buffer); _env.url = _display.stage.loaderInfo.url; return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense)); } public function setDetectTitle(_arg1:Boolean):void{ _tracker.setDetectTitle(_arg1); } public function getServiceMode():ServerOperationMode{ return (_tracker.getServiceMode()); } public function clearOrganic():void{ _tracker.clearOrganic(); } public function setCampaignTrack(_arg1:Boolean):void{ _tracker.setCampaignTrack(_arg1); } public function addIgnoredRef(_arg1:String):void{ _tracker.addIgnoredRef(_arg1); } public function set visualDebug(_arg1:Boolean):void{ _visualDebug = _arg1; } public function setCampMediumKey(_arg1:String):void{ _tracker.setCampMediumKey(_arg1); } public function setSessionTimeout(_arg1:int):void{ _tracker.setSessionTimeout(_arg1); } public function getDetectFlash():Boolean{ return (_tracker.getDetectFlash()); } public function get visualDebug():Boolean{ return (_visualDebug); } public function getAccount():String{ return (_tracker.getAccount()); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function setRemoteServerMode():void{ _tracker.setRemoteServerMode(); } } var _local1:* = ServerOperationMode; return (_local1); }//package com.google.analytics
Section 69
//KongregateEvent (com.kongregate.as3.client.events.KongregateEvent) package com.kongregate.as3.client.events { import flash.events.*; public class KongregateEvent extends Event { public static const COMPLETE:String = "component_api_available"; public function KongregateEvent(_arg1:String){ super(_arg1); } } }//package com.kongregate.as3.client.events
Section 70
//AbstractShadowService (com.kongregate.as3.client.services.AbstractShadowService) package com.kongregate.as3.client.services { import flash.events.*; public class AbstractShadowService extends EventDispatcher { protected function alert(_arg1:String, _arg2:String, _arg3="", _arg4:String=""):void{ trace(((((((("Kongregate API: " + _arg1) + ".") + _arg2) + "(") + _arg3) + ") ") + _arg4)); } } }//package com.kongregate.as3.client.services
Section 71
//HighScoreServiceShadow (com.kongregate.as3.client.services.HighScoreServiceShadow) package com.kongregate.as3.client.services { public class HighScoreServiceShadow extends AbstractShadowService implements IHighScoreServices { private var mode:String; public function HighScoreServiceShadow(){ mode = ""; } public function submit(_arg1:Number, _arg2:String=null):void{ alert("IHighScoreServices", "submit", arguments); } public function connect():Boolean{ alert("IKongregateServices", "connect"); return (true); } public function requestList(_arg1:Function):void{ alert("IHighScoreServices", "requestList", "", (("[Mode: " + mode) + "]")); _arg1({success:false}); } public function setMode(_arg1:String):void{ alert("IHighScoreServices", "setMode", arguments); this.mode = _arg1; } } }//package com.kongregate.as3.client.services
Section 72
//IHighScoreServices (com.kongregate.as3.client.services.IHighScoreServices) package com.kongregate.as3.client.services { public interface IHighScoreServices { function setMode(_arg1:String):void; function submit(_arg1:Number, _arg2:String=null):void; function requestList(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 73
//IKongregateServices (com.kongregate.as3.client.services.IKongregateServices) package com.kongregate.as3.client.services { import flash.events.*; public interface IKongregateServices extends IEventDispatcher { function getPlayerInfo(_arg1:Function):void; function connect(_arg1:Number=-1):Boolean; } }//package com.kongregate.as3.client.services
Section 74
//IStatServices (com.kongregate.as3.client.services.IStatServices) package com.kongregate.as3.client.services { public interface IStatServices { function submitArray(_arg1:Array):void; function submit(_arg1:String, _arg2:Number):void; } }//package com.kongregate.as3.client.services
Section 75
//IUserServices (com.kongregate.as3.client.services.IUserServices) package com.kongregate.as3.client.services { public interface IUserServices { function getName():String; function getPlayerInfo(_arg1:Function):void; } }//package com.kongregate.as3.client.services
Section 76
//KongregateServiceShadow (com.kongregate.as3.client.services.KongregateServiceShadow) package com.kongregate.as3.client.services { public class KongregateServiceShadow extends AbstractShadowService implements IKongregateServices { public function getName():String{ alert("IKongregateServices", "getName"); return ("Guest"); } public function connect(_arg1:Number=-1):Boolean{ alert("IKongregateServices", "connect", arguments); return (true); } public function getPlayerInfo(_arg1:Function):void{ alert("IKongregateServices", "getPlayerInfo"); _arg1(new Object()); } } }//package com.kongregate.as3.client.services
Section 77
//StatServiceShadow (com.kongregate.as3.client.services.StatServiceShadow) package com.kongregate.as3.client.services { public class StatServiceShadow extends AbstractShadowService implements IStatServices { public function submitArray(_arg1:Array):void{ alert("IStatServices", "submitArray", arguments); } public function submit(_arg1:String, _arg2:Number):void{ alert("IStatServices", "submitStat", arguments); } } }//package com.kongregate.as3.client.services
Section 78
//UserServiceShadow (com.kongregate.as3.client.services.UserServiceShadow) package com.kongregate.as3.client.services { public class UserServiceShadow extends AbstractShadowService implements IUserServices { public function getName():String{ alert("UserService", "getName"); return ("Guest"); } public function getPlayerInfo(_arg1:Function):void{ alert("UserService", "getPlayerInfo"); _arg1({isGuest:true, name:"Guest", points:0, level:0, isMode:false, isAdmin:false, isDeveloper:false, avatarPath:"", chatAvatarPath:""}); } } }//package com.kongregate.as3.client.services
Section 79
//IAPIBootstrap (com.kongregate.as3.client.IAPIBootstrap) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; public interface IAPIBootstrap { function init(_arg1:Event=null, _arg2:Stage=null):void; function hideLog():void; function showLog(_arg1:int=0):void; } }//package com.kongregate.as3.client
Section 80
//KongregateAPI (com.kongregate.as3.client.KongregateAPI) package com.kongregate.as3.client { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.services.*; import flash.net.*; import flash.system.*; import flash.utils.*; import com.kongregate.as3.client.events.*; import flash.errors.*; public class KongregateAPI extends Sprite { private const VERSION:Number = 1; private var loader:Loader; private var loadedDomain:ApplicationDomain; private static const CLASS_USER:String = "com.kongregate.as3.client.services.UserServices"; private static const CLASS_STATS:String = "com.kongregate.as3.client.services.StatServices"; private static const CLASS_SERVICES:String = "com.kongregate.as3.client.services.KongregateServices"; private static const CLASS_SCORES:String = "com.kongregate.as3.client.services.HighScoreServices"; private static const DEBUG_API_URL:String = "//Linuxpc/kongregate/public/flash/API_AS3.swf"; private static var _connected:Boolean; private static var kUser:IUserServices; private static var _loaded:Boolean; private static var kServices:IKongregateServices; private static var kScores:IHighScoreServices; private static var mInstance:KongregateAPI; private static var kStats:IStatServices; private static var kAPI:IAPIBootstrap; public function KongregateAPI(){ if (mInstance != null){ throw (new Error("Warning: KongregateAPI has been added to stage more than once or accessed improperly. Use getInstance() or a stage reference to access.")); }; mInstance = this; this.addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true); } public function get loaded():Boolean{ return (_loaded); } public function get connected():Boolean{ return (_connected); } private function alertConnected(_arg1:TimerEvent=null):void{ var _local2:KongregateEvent; var _local3:Boolean; _local2 = new KongregateEvent(KongregateEvent.COMPLETE); _local3 = this.dispatchEvent(_local2); } private function init(_arg1:Event):void{ var _local2:Object; var _local3:String; var _local4:URLRequest; var _local5:LoaderContext; this.removeEventListener(Event.ADDED_TO_STAGE, init); _loaded = false; _connected = false; _local2 = LoaderInfo(root.loaderInfo).parameters; _local3 = _local2.api_path; if (_local3 == null){ trace("Alert: Kongregate API could not be loaded, due to local testing. API will load when the game is uploaded."); createShadowServices(); return; }; Security.allowDomain("*.kongregate.com"); Security.allowDomain("kongregatetrunk.com"); _local4 = new URLRequest(_local3); _local5 = new LoaderContext(false); _local5.applicationDomain = ApplicationDomain.currentDomain; _local5.securityDomain = SecurityDomain.currentDomain; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); loader.load(_local4, _local5); } public function get api():IAPIBootstrap{ return (kAPI); } private function loadComplete(_arg1:Event):void{ getServices(); } public function get scores():IHighScoreServices{ return (kScores); } private function ioErrorHandler(_arg1:IOErrorEvent):void{ throw (new IOError(("API file not found. " + _arg1))); } public function get services():IKongregateServices{ return (kServices); } public function get stats():IStatServices{ return (kStats); } private function createShadowServices():void{ var _local1:Timer; trace(">>> Kongregate Shadow Services instantiated for local development.."); kServices = new KongregateServiceShadow(); kScores = new HighScoreServiceShadow(); kStats = new StatServiceShadow(); kUser = new UserServiceShadow(); _local1 = new Timer(200, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, alertConnected); _local1.start(); _connected = true; } public function get user():IUserServices{ return (kUser); } private function getServices():void{ var _local1:ApplicationDomain; var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local1 = ApplicationDomain.currentDomain; kAPI = IAPIBootstrap(loader.getChildAt(0)); this.addChild(loader); _local2 = _local1.getDefinition(CLASS_SERVICES); trace(_local2); kServices = _local2.getInstance(); _local3 = _local1.getDefinition(CLASS_SCORES); kScores = _local3.getInstance(); _local4 = _local1.getDefinition(CLASS_STATS); kStats = _local4.getInstance(); _local5 = _local1.getDefinition(CLASS_USER); kUser = _local5.getInstance(); kServices.connect(VERSION); _loaded = true; _connected = true; alertConnected(); } public static function getInstance():KongregateAPI{ if (!mInstance){ throw (new IllegalOperationError("You must add the Kongregate API component to the stage before attempting to access it.")); }; return (mInstance); } } }//package com.kongregate.as3.client
Section 81
//CommandBase (commands.CommandBase) package commands { import view.*; public class CommandBase implements ICommand { protected var engine:Engine; protected var view:View; protected var model:Model; public function CommandBase(){ view = Global.view; model = Global.model; engine = Global.engine; super(); } public function execute():void{ } } }//package commands
Section 82
//EndLevelCommand (commands.EndLevelCommand) package commands { public class EndLevelCommand extends CommandBase { override public function execute():void{ if (model.currentLevel){ engine.stop(); engine.destroySpace(); view.removeLevel(model.currentLevel); model.currentLevel.destroy(); model.currentLevel = null; view.levelMenuTimer.stop(); }; } } }//package commands
Section 83
//ICommand (commands.ICommand) package commands { public interface ICommand { function execute():void; } }//package commands
Section 84
//RestartLevelCommand (commands.RestartLevelCommand) package commands { public class RestartLevelCommand extends CommandBase { override public function execute():void{ Global.model.restarting = true; new EndLevelCommand().execute(); new StartLevelCommandWthoutMenu(model.currentLevelNum).execute(); } } }//package commands
Section 85
//ShowCreditsCommand (commands.ShowCreditsCommand) package commands { public class ShowCreditsCommand extends CommandBase { override public function execute():void{ view.creditsWin.show(); super.execute(); } } }//package commands
Section 86
//ShowFinishCommand (commands.ShowFinishCommand) package commands { public class ShowFinishCommand extends CommandBase { override public function execute():void{ view.finishIntro.show(); super.execute(); } } }//package commands
Section 87
//ShowIntroCommand (commands.ShowIntroCommand) package commands { public class ShowIntroCommand extends CommandBase { override public function execute():void{ view.intro.show(); super.execute(); } } }//package commands
Section 88
//ShowLevelMenuCommand (commands.ShowLevelMenuCommand) package commands { import gs.*; public class ShowLevelMenuCommand extends CommandBase { private var callback:Function; public function ShowLevelMenuCommand(_arg1:Function=null){ callback = _arg1; } public function hide():void{ TweenLite.to(view._levelMenu, 1, {alpha:0, onComplete:function ():void{ Global.view._levelMenu.visible = false; }}); } override public function execute():void{ view._levelMenu.alpha = 1; view._levelMenu.visible = true; view.inLevelMenu.visible = false; view._levelMenu.refresh(); view._levelMenu.y = -450; TweenLite.to(view._levelMenu, 0.5, {y:0, onComplete:onComp}); TweenLite.to(view.mainMenu, 0.5, {y:-470}); if (model.currentLevel){ new EndLevelCommand().execute(); }; super.execute(); } private function onComp():void{ Global.engine.stop(); view.mainMenu.stop(); view.mainMenu.visible = false; if (callback != null){ callback(); }; } } }//package commands
Section 89
//ShowMainMenuCommans (commands.ShowMainMenuCommans) package commands { import gs.*; public class ShowMainMenuCommans extends CommandBase { override public function execute():void{ view.mainMenu.start(); view.mainMenu.visible = true; view.mainMenu.refresh(); view.mainMenu.y = -650; TweenLite.to(view.mainMenu, 0.5, {y:0}); super.execute(); } } }//package commands
Section 90
//ShowResultsWindowCommand (commands.ShowResultsWindowCommand) package commands { public class ShowResultsWindowCommand extends CommandBase { private var callback:Function; public function ShowResultsWindowCommand(_arg1:Function=null){ callback = _arg1; } public function hide():void{ } override public function execute():void{ view.resultsWindow.init(); view.resultsWindow.visible = true; view.resultsWindow.y = -450; view.resultsWindow.show(); LinksManager.resultWindow(view.resultsWindow.adClip, view.resultsWindow.showAnim, Global.model.currentLevelNum, Global.view.resultsWindow.setReady, Global.view.resultsWindow.preloader); super.execute(); } } }//package commands
Section 91
//StartLevelCommand (commands.StartLevelCommand) package commands { import flash.events.*; import gs.*; public class StartLevelCommand extends CommandBase { private var levelNum:int; private var createLevelCounter:int; private var hideMenuCounter:int; public function StartLevelCommand(_arg1:int){ levelNum = _arg1; } private function hideMenu():void{ TweenLite.to(view.levelBeginMenu, 0.5, {y:-450}); Global.model.restarting = false; } private function onEnterFrame(_arg1:Event):void{ hideMenuCounter--; createLevelCounter--; if (hideMenuCounter < 0){ hideMenu(); Global.view.removeEventListener(Event.ENTER_FRAME, onEnterFrame); hideMenuCounter = 10000000; return; }; if (createLevelCounter < 0){ createLevelCounter = 10000000; createLevel(); }; } override public function execute():void{ view.levelBeginMenu.visible = true; view.levelBeginMenu.alpha = 1; view.levelBeginMenu.setNum(levelNum); view.levelBeginMenu.y = -450; TweenLite.to(view.levelBeginMenu, 0.5, {y:0}); hideMenuCounter = 60; createLevelCounter = 50; Global.view.addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function createLevel():void{ model.currentLevelNum = levelNum; model.currentLevel = LevelManager.createLevel(levelNum); engine.initLevel(model.currentLevel); engine.start(); view.showLevel(model.currentLevel); model.timer.start(); view.levelMenuTimer.start(); } } }//package commands
Section 92
//StartLevelCommandWthoutMenu (commands.StartLevelCommandWthoutMenu) package commands { import flash.events.*; import gs.*; public class StartLevelCommandWthoutMenu extends CommandBase { private var levelNum:int; private var createLevelCounter:int; private var hideMenuCounter:int; public function StartLevelCommandWthoutMenu(_arg1:int){ levelNum = _arg1; } public function hideMenu():void{ TweenLite.to(view.levelBeginMenu, 0.5, {y:-450}); Global.model.restarting = false; } private function onEnterFrame(_arg1:Event):void{ hideMenuCounter--; createLevelCounter--; if (hideMenuCounter < 0){ hideMenu(); Global.view.removeEventListener(Event.ENTER_FRAME, onEnterFrame); hideMenuCounter = 10000000; return; }; if (createLevelCounter < 0){ createLevelCounter = 10000000; createLevel(); }; } override public function execute():void{ view.levelBeginMenu.visible = true; view.levelBeginMenu.alpha = 1; view.levelBeginMenu.setNum(levelNum); view.levelBeginMenu.y = -450; TweenLite.to(view.levelBeginMenu, 0.4, {y:0}); hideMenuCounter = 20; createLevelCounter = 15; Global.view.addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function createLevel():void{ model.currentLevelNum = levelNum; model.currentLevel = LevelManager.createLevel(levelNum); engine.initLevel(model.currentLevel); engine.start(); view.showLevel(model.currentLevel); model.timer.start(); view.levelMenuTimer.start(); } } }//package commands
Section 93
//AdLoader (CPMStar.AdLoader) package CPMStar { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public class AdLoader extends Sprite { private var errorHandler:Function; private var cpmstarLoader:Loader; private var contentspotid:String; public function AdLoader(_arg1:String, _arg2:Function){ this.contentspotid = _arg1; errorHandler = _arg2; addEventListener(Event.ADDED, addedHandler); } private function dispatchHandler(_arg1:Event):void{ dispatchEvent(_arg1); } private function addedHandler(_arg1:Event):void{ removeEventListener(Event.ADDED, addedHandler); Security.allowDomain("server.cpmstar.com"); var _local2 = "http://server.cpmstar.com/adviewas3.swf"; var _local3:DisplayObjectContainer = parent; cpmstarLoader = new Loader(); cpmstarLoader.contentLoaderInfo.addEventListener(Event.INIT, dispatchHandler); cpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, dispatchHandler); cpmstarLoader.load(new URLRequest(((_local2 + "?contentspotid=") + contentspotid))); cpmstarLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); addChild(cpmstarLoader); } private function onLoadError(_arg1:IOErrorEvent):void{ errorHandler(); trace(_arg1); } } }//package CPMStar
Section 94
//BoobleManMan (elements.BoobleManMan) package elements { import flash.events.*; import view.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import flash.utils.*; import flash.ui.*; public class BoobleManMan extends PhysicsElement { private var jumping:Boolean;// = false private var idleAnim:MovieClip; private var space:Space; private var run2:MovieClip; private var run3:MovieClip; private var run1:MovieClip; private var idleAnimFlag:Boolean;// = false private var gravityAngle:Number; private var currentAnim:MovieClip; private var perecach:MovieClip; private var jump:MovieClip; private var staticBody:MovieClip; public var paused:Boolean;// = false private var animSprite:MovieClip; private var keyRightDown:Boolean; private var jumpAngle:Number; private var pina2:Number;// = 1.5707963267949 private var booble:MovieClip; private var hitPoints:Array; private var secondHitShape:Boolean;// = false private var idleAnimations:Array; private var keyJumpDown:Boolean; public var r:int;// = 23 private var endPoint:Point; private var v:Vector2D; private var secondPoints:Array; private var idleCounter:int;// = -1 private var groundHit:Boolean;// = false private var seconShape:GeometricShape; private var dw:Number;// = 2 private var modW:Number; private var gravityAngleDeg:Number; private var animCounter:int;// = -1 private var beginSleep:MovieClip; private var rotationAnim:Number; private var animScale:int;// = 1 private var keyLeftDown:Boolean; private var walk:MovieClip; private var hit:Boolean; private var idleTimeOut:uint; private var dRot:Number;// = 0 private var win1:MovieClip; private var win2:MovieClip; private var sleep:MovieClip; private var idle1:MovieClip; private var idle2:MovieClip; private var idle3:MovieClip; private var idle4:MovieClip; private var idle5:MovieClip; private var idle6:MovieClip; private var staticProf:MovieClip; private var jumpCounter:int;// = 0 private var hitShape:GeometricShape; private var pointsCount:int;// = 6 private var startIdleAnimTime:int; private var jumpV:Number;// = 170 private var bodyV:Number; private var jumpImpulse:Number;// = 7000 public function BoobleManMan(_arg1:MovieClip){ hitPoints = new Array(); endPoint = new Point(); secondPoints = new Array(); super(_arg1); graph = _arg1; _arg1.x = 0; _arg1.y = 0; var _local2:RigidBody = new RigidBody(RigidBody.DYNAMIC_BODY, 2); _local2.sleepSpeed = 1; material = LevelManager.getDefaultMaterial(LevelManager.boobleMan); _local2.p.setTo(p.x, p.y); _local2.addShape(new Circle(r, Vector2D.zeroVect, material)); body = _local2; animSprite = _arg1["animSprite"]; booble = _arg1["booble"]; staticBody = animSprite["staticBody"]; staticProf = animSprite["staticProf"]; run1 = animSprite["run1"]; run2 = animSprite["run2"]; run3 = animSprite["run3"]; walk = animSprite["walk"]; jump = animSprite["jump"]; win1 = animSprite["win1"]; win2 = animSprite["win2"]; sleep = animSprite["sleep"]; beginSleep = animSprite["beginSleep"]; idle1 = animSprite["idle1"]; idle2 = animSprite["idle2"]; idle3 = animSprite["idle3"]; idle4 = animSprite["idle4"]; idle5 = animSprite["idle5"]; idle6 = animSprite["idle6"]; perecach = animSprite["perecach"]; walk.stop(); run1.stop(); run2.stop(); run3.stop(); win1.stop(); win2.stop(); jump.stop(); staticProf.stop(); sleep.stop(); beginSleep.stop(); idle1.stop(); idle2.stop(); idle3.stop(); idle4.stop(); idle5.stop(); idle6.stop(); perecach.stop(); staticBody.visible = true; walk.visible = false; run1.visible = false; run2.visible = false; run3.visible = false; jump.visible = false; win1.visible = false; win2.visible = false; staticProf.visible = false; sleep.visible = false; beginSleep.visible = false; idle1.visible = false; idle2.visible = false; idle3.visible = false; idle4.visible = false; idle5.visible = false; idle6.visible = false; perecach.visible = false; idleAnimations = [idle1, idle2, idle2, idle3, idle4, idle4, idle5, idle5, idle6, perecach, jump]; currentAnim = staticBody; } private function hitSecond():Boolean{ for each (v in secondPoints) { seconShape = space.getShapeAtPoint(new Vector2D((x + v.x), (y + v.y))); if (seconShape){ if (seconShape.body != body){ return (true); }; }; }; return (false); } private function onKey():void{ keyJumpDown = ((Global.keyManager.isKeyDown(Keyboard.UP)) || (Global.keyManager.isKeyDown(Keyboard.SPACE))); keyRightDown = Global.keyManager.isKeyDown(Keyboard.RIGHT); keyLeftDown = Global.keyManager.isKeyDown(Keyboard.LEFT); if (keyJumpDown){ stopIdle(); idleCounter = 90; if (((groundHit) && ((jumpCounter < 0)))){ jumpCounter = 8; body.ApplyImpulse(new Vector2D((jumpImpulse * Math.cos(jumpAngle)), (jumpImpulse * Math.sin(jumpAngle))), new Vector2D(0, 0)); }; }; if (keyRightDown){ if (body.w < 15){ body.w = (body.w + dw); }; animScale = 1; stopIdle(); if (Global.model.gameMode){ if (((((!(groundHit)) && ((body.v.x < 250)))) && (!(secondHitShape)))){ body.v.x = (body.v.x - (Math.cos((jumpAngle - pina2)) * 15)); body.v.y = (body.v.y - (Math.sin((jumpAngle - pina2)) * 15)); }; }; return; }; if (keyLeftDown){ if (body.w > -15){ body.w = (body.w - dw); }; animScale = -1; stopIdle(); if (Global.model.gameMode){ if (((((!(groundHit)) && ((body.v.x > -250)))) && (!(secondHitShape)))){ body.v.x = (body.v.x + (Math.cos((jumpAngle - pina2)) * 15)); body.v.y = (body.v.y + (Math.sin((jumpAngle - pina2)) * 15)); }; }; }; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ _level = _arg2; space = _arg1; super.init(space); Global.engine.changeGravitationEvent.addListener(onGravitationChange); onGravitationChange(); return (createdGood); } public function onColision(_arg1:RigidBody):void{ trace("colll"); } private function jumpControl():void{ addEventListener(Event.ENTER_FRAME, onJump); } private function startIdle():void{ setAnim(idleAnim); idleAnimFlag = true; addEventListener(Event.ENTER_FRAME, idleControl); } private function onGroundHit(_arg1:Boolean):void{ } private function onGravitationChange():void{ gravityAngle = Math.atan2(space.masslessForce.x, space.masslessForce.y); gravityAngleDeg = (gravityAngle * PhysicsElement.radToDeg); if (gravityAngleDeg > 180){ gravityAngleDeg = (gravityAngleDeg - 360); } else { if (gravityAngleDeg < -180){ gravityAngleDeg = (gravityAngleDeg + 360); }; }; gravityAngleDeg = (360 - gravityAngleDeg); if (gravityAngleDeg > 180){ gravityAngleDeg = (gravityAngleDeg - 360); } else { if (gravityAngleDeg < -180){ gravityAngleDeg = (gravityAngleDeg + 360); }; }; jumpAngle = gravityAngleDeg; if (jumpAngle < 0){ jumpAngle = (360 + jumpAngle); }; jumpAngle = (jumpAngle - 90); jumpAngle = (jumpAngle * PhysicsElement.degToRad); createHitpoints(); createSecondPoints(); } private function checkAnimation():void{ if (jumping){ return; }; modW = Math.abs(body.w); if (modW <= 1.5){ if (!idleAnimFlag){ setAnim(staticBody); }; checkIdle(); } else { currentAnim.scaleX = (((keyLeftDown) || (keyRightDown))) ? (Math.abs(currentAnim.scaleX) * animScale) : (Math.abs(currentAnim.scaleX) * ((body.w)>=0) ? 1 : -1); }; if ((((((modW > 1.5)) && ((modW < 5)))) && ((animCounter < 0)))){ setAnim(walk); return; }; if ((((((modW >= 5)) && ((modW < 8)))) && ((animCounter < 0)))){ setAnim(run1); return; }; if ((((((modW >= 8)) && ((modW < 11)))) && ((animCounter < 0)))){ setAnim(run2); return; }; if ((((modW >= 11)) && ((animCounter < 0)))){ setAnim(run3); }; } private function waitFinishAnim(_arg1:Event):void{ if (currentAnim.currentFrame == 11){ currentAnim.gotoAndStop(1); Global.model.finishLevel(); removeEventListener(Event.ENTER_FRAME, waitFinishAnim); }; } private function setAnim(_arg1:MovieClip):void{ if (_arg1 == currentAnim){ return; }; animCounter = 2; currentAnim.stop(); currentAnim.visible = false; currentAnim = _arg1; currentAnim.scaleX = (((keyLeftDown) || (keyRightDown))) ? (Math.abs(currentAnim.scaleX) * animScale) : (Math.abs(currentAnim.scaleX) * ((body.w)>=0) ? 1 : -1); currentAnim.visible = true; currentAnim.play(); } private function createHitpoints():void{ var _local7:Vector2D; var _local1:Number = (Math.atan2(space.masslessForce.x, space.masslessForce.y) * PhysicsElement.radToDeg); var _local2:Number = ((_local1 - 50) * PhysicsElement.degToRad); var _local3:Number = ((_local1 + 50) * PhysicsElement.degToRad); var _local4:Number = ((_local3 - _local2) / pointsCount); _local1 = _local2; var _local5:Number = (r + 2); var _local6:int; while (_local6 <= pointsCount) { _local7 = new Vector2D((_local5 * Math.sin(_local1)), (_local5 * Math.cos(_local1))); hitPoints.push(_local7); _local1 = (_local1 + _local4); _local6++; }; } private function onJump(_arg1:Event):void{ if (currentAnim.currentFrame == 3){ body.v.copy(new Vector2D((body.v.x + (jumpV * Math.cos((gravityAngle + Math.PI)))), (body.v.y + (jumpV * Math.sin(gravityAngle))))); }; if (currentAnim.currentFrame == currentAnim.totalFrames){ currentAnim.stop(); removeEventListener(Event.ENTER_FRAME, onJump); }; } override protected function onEnterFrame(_arg1:Event):void{ endPoint.x = _level.endPoint.point.x; endPoint.y = _level.endPoint.point.y; endPoint = _level.endPoint.point.parent.localToGlobal(endPoint); if (this.hitTestPoint(endPoint.x, endPoint.y, true)){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); setAnim(win1); Snd.play("bubleEnd"); booble.visible = false; addEventListener(Event.ENTER_FRAME, waitFinishAnim); Global.engine.stop(); return; }; jumpCounter--; animCounter--; bodyV = body.v.magnitude(); idleCounter--; if (bodyV > 30){ idleCounter = 1; stopIdle(); }; this.x = body.p.x; this.y = body.p.y; rotationAnim = (body.a * radToDeg); rotationAnim = ((rotationAnim)<0) ? (360 + rotationAnim) : rotationAnim; booble.rotation = rotationAnim; groundHit = hitTestGround(); secondHitShape = hitSecond(); if (!groundHit){ animSprite.rotation = (animSprite.rotation + (body.w + space.dt)); } else { rotateBack(); }; onKey(); checkAnimation(); } private function hitTestGround():Boolean{ for each (v in hitPoints) { hitShape = space.getShapeAtPoint(new Vector2D((x + v.x), (y + v.y))); if (hitShape){ if (hitShape.body != body){ if (!groundHit){ onGroundHit(true); }; return (true); }; }; }; if (hit != groundHit){ onGroundHit(false); }; return (false); } private function createSecondPoints():void{ var _local7:Vector2D; var _local1:Number = (Math.atan2(space.masslessForce.x, space.masslessForce.y) * PhysicsElement.radToDeg); var _local2:Number = ((_local1 - 90) * PhysicsElement.degToRad); var _local3:Number = ((_local1 + 90) * PhysicsElement.degToRad); var _local4:Number = ((_local3 - _local2) / pointsCount); _local1 = _local2; var _local5:Number = (r + 2); var _local6:int; while (_local6 <= pointsCount) { _local7 = new Vector2D((_local5 * Math.sin(_local1)), (_local5 * Math.cos(_local1))); secondPoints.push(_local7); _local1 = (_local1 - _local4); _local6++; }; } private function idleControl(_arg1:Event):void{ if (idleAnim.currentFrame == idleAnim.totalFrames){ stopIdle(); }; } private function rotateBack():void{ if (Math.abs((animSprite.rotation - gravityAngleDeg)) < 10){ animSprite.rotation = gravityAngleDeg; return; }; animSprite.rotation = (animSprite.rotation + ((gravityAngleDeg - animSprite.rotation) * 0.2)); } private function stopIdle():void{ if (idleTimeOut){ clearTimeout(idleTimeOut); idleTimeOut = 0; startIdleAnimTime = 0; }; if (idleAnimFlag){ removeEventListener(Event.ENTER_FRAME, idleControl); idleAnimFlag = false; }; } override public function destroy():void{ stopIdle(); removeEventListener(Event.ENTER_FRAME, onJump); removeEventListener(Event.ENTER_FRAME, waitFinishAnim); Global.engine.changeGravitationEvent.removeListener(onGravitationChange); space.removeRigidBody(body); staticBody = null; staticProf = null; walk = null; run1 = null; run2 = null; run3 = null; jump = null; win1 = null; win2 = null; sleep = null; beginSleep = null; idle1 = null; idle2 = null; idle3 = null; idle4 = null; idle5 = null; perecach = null; super.destroy(); } private function checkIdle():void{ var _local1:MovieClip; if (((((((startIdleAnimTime) || ((idleCounter > 0)))) || (!(groundHit)))) || (idleAnimFlag))){ return; }; if (idleCounter < -500){ setAnim(beginSleep); idleTimeOut = setTimeout(setAnim, 4000, sleep); startIdleAnimTime = 1; idleAnimFlag = true; return; }; _local1 = idleAnimations[Math.floor((Math.random() * 10))]; idleAnim = _local1; startIdleAnimTime = (1000 + Math.floor((Math.random() * 1000))); idleTimeOut = setTimeout(startIdle, startIdleAnimTime); } public function pause():void{ if (paused){ addEventListener(Event.ENTER_FRAME, onEnterFrame); paused = false; } else { removeEventListener(Event.ENTER_FRAME, onEnterFrame); paused = true; }; } } }//package elements
Section 95
//Cooler (elements.Cooler) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; public class Cooler extends PhysicsElement implements ISleepElement { private var targets:Array; private var hit:MovieClip; private var forceVector:Vector2D; private var thisPos:Point; private var isActive:Boolean;// = true private var coolerMovie:MovieClip; private var mc:MovieClip; private var k:Number; private var dist:Number; private var globalPos:Point; private var dfx:Number; private var dfy:Number; private var minForce:Number;// = 40000 private var targetPoint:Point; public function Cooler(_arg1:MovieClip, _arg2:PhysicsData=null){ targets = new Array(); targetPoint = new Point(); super(_arg1); mc = _arg1; hit = _arg1["hit"]; hit.visible = false; var _local3:Point = new Point(_arg1.x, _arg1.y); _local3 = _arg1.parent.localToGlobal(_local3); this.x = _local3.x; this.y = _local3.y; _arg1.x = 0; _arg1.y = 0; addChild(_arg1); pdata = _arg2; if (pdata){ if (pdata.force){ minForce = pdata.force; }; if (pdata.isActive == false){ isActive = false; }; }; var _local4:Number = Math.abs((_arg1.rotation * PhysicsElement.radToDeg)); dfx = ((-(Math.sin(_local4)) * minForce) * hit.height); dfy = ((-(Math.cos(_local4)) * minForce) * hit.height); if (pdata){ _arg1.removeChild(_arg1["pdata"]); }; coolerMovie = mc["coolerMovie"]; if (coolerMovie){ coolerMovie.stop(); coolerMovie["cooler"].stop(); }; } override public function destroy():void{ removeChild(mc); targets = []; removeEventListener(Event.ENTER_FRAME, onEnterFrame); super.destroy(); } override protected function onEnterFrame(_arg1:Event):void{ var _local2:PhysicsElement; for each (_local2 in targets) { targetPoint.x = _local2.x; targetPoint.y = _local2.y; targetPoint = _local2.parent.localToGlobal(targetPoint); globalPos = this.parent.localToGlobal(thisPos); if (hit.hitTestPoint(targetPoint.x, targetPoint.y, true)){ dist = (Utils.distance(globalPos, targetPoint) + 10); k = (Math.abs((dist - hit.height)) / hit.height); _local2.body.f.x = (_local2.body.f.x + (((minForce * (targetPoint.x - globalPos.x)) / dist) * k)); _local2.body.f.y = (_local2.body.f.y + (((minForce * (targetPoint.y - globalPos.y)) / dist) * k)); }; }; } public function addTarget(_arg1:PhysicsElement):void{ targets.push(_arg1); } public function end():void{ isActive = false; Snd.play("ventyljator"); if (coolerMovie){ coolerMovie.stop(); coolerMovie["cooler"].stop(); }; removeEventListener(Event.ENTER_FRAME, onEnterFrame); } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ _level = _arg2; addTarget(_arg2.boobleMan); thisPos = new Point(this.x, this.y); targets = targets.concat(_arg2.freeElements); if (isActive){ if (coolerMovie){ coolerMovie.play(); coolerMovie["cooler"].play(); }; addEventListener(Event.ENTER_FRAME, onEnterFrame); }; return (createdGood); } public function start():void{ if (isActive){ end(); return; }; Snd.play("ventyljator"); if (coolerMovie){ coolerMovie.play(); coolerMovie["cooler"].play(); }; addEventListener(Event.ENTER_FRAME, onEnterFrame); isActive = true; } public function removeTarget(_arg1:PhysicsElement):void{ var _local2:int; while (_local2 < targets.length) { if (targets[_local2] == _arg1){ targets.splice(_local2, 1); }; _local2++; }; } } }//package elements
Section 96
//Door (elements.Door) package elements { import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class Door extends PhysicsElement implements ISleepElement { private var started:Boolean; private var space:Space; private var opened:Boolean;// = false private var mc:MovieClip; public function Door(_arg1:MovieClip, _arg2:PhysicsData){ super(_arg1); mc = _arg1; if (_arg1["g"]){ graph = _arg1["g"]; } else { graph = new MovieClip(); }; body = createBody(_arg1); } public function end():void{ } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ space = _arg1; space.addRigidBody(body); return (createdGood); } public function start():void{ started = true; Snd.play("open_close_door"); if (opened){ close(); } else { open(); }; } private function close():void{ opened = false; body = createBody(mc); space.addRigidBody(body); space.sync(); graph.visible = true; } private function open():void{ opened = true; space.removeRigidBody(body); space.sync(); graph.visible = false; } override public function destroy():void{ mc = null; space = null; super.destroy(); } private function createBody(_arg1:MovieClip):RigidBody{ var _local4:MovieClip; var _local5:String; var _local6:MovieClip; var _local7:GeometricShape; var _local2:RigidBody = new RigidBody(RigidBody.STATIC_BODY); var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = (_arg1.getChildAt(_local3) as MovieClip); if (!_local4){ } else { _local5 = _local4.name.substr(0, 4); _local6 = _local4; if (_local5 == "rect"){ _local7 = new Polygon(getVerts(_local4), Vector2D.zeroVect, material); _local7.fillColour = 10053273; _local2.addShape(_local7); }; }; _local3++; }; _local2.p.setTo(p.x, p.y); _local2.setAngle(a); return (_local2); } } }//package elements
Section 97
//Elevator (elements.Elevator) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.forces.*; public class Elevator extends PhysicsElement implements ISleepElement { private var started:Boolean;// = false private var spring:Spring; private var step:Number; private var dx:Number; private var space:Space; private var point1Mc:MovieClip; private var dy:Number; private var vel:Number;// = 2 private var point2Mc:MovieClip; private var point1:Vector2D; private var point2:Vector2D; private var stBody:RigidBody; private var steps:Number; private var delayTime:Number;// = 60 private var delayCounter:Number; public function Elevator(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local3:RigidBody; var _local9:MovieClip; var _local10:String; var _local11:MovieClip; var _local12:GeometricShape; super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; }; material = LevelManager.getDefaultMaterial(LevelManager.elevator); if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; if (pdata.delayTime){ delayTime = pdata.delayTime; }; }; _local3 = new RigidBody(); stBody = new RigidBody(RigidBody.STATIC_BODY); var _local4:int; while (_local4 < _arg1.numChildren) { _local9 = (_arg1.getChildAt(_local4) as MovieClip); if (!_local9){ } else { _local10 = _local9.name.substr(0, 4); _local11 = _local9; if (_local10 == "rect"){ _local12 = new Polygon(getVerts(_local9), Vector2D.zeroVect, material); _local12.fillColour = 26265; _local3.addShape(_local12); stBody.addShape(new Polygon(getVerts(_local9), Vector2D.zeroVect, material)); }; }; _local4++; }; point1Mc = _arg1["point1"]; var _local5:Point = new Point(point1Mc.x, point1Mc.y); _local5 = _arg1.localToGlobal(_local5); point1 = new Vector2D(_local5.x, _local5.y); point2Mc = _arg1["point2"]; _local5 = new Point(point2Mc.x, point2Mc.y); _local5 = _arg1.localToGlobal(_local5); point2 = new Vector2D(_local5.x, _local5.y); var _local6:Point = new Point(_arg1["rect"].x, _arg1["rect"].y); _local6 = _arg1.localToGlobal(_local6); _local3.p.setTo(p.x, p.y); _local3.setAngle(a); stBody.p.setTo(p.x, p.y); stBody.setAngle(a); point1Mc.x = point1.x; point1Mc.y = point1.y; point2Mc.x = point2.x; point2Mc.y = point2.y; body = _local3; var _local7:Number = ((point1.x - point2.x) / (point1.y - point2.y)); var _local8:Number = Math.atan(_local7); dx = (-(vel) * Math.sin(_local8)); dy = (-(vel) * Math.cos(_local8)); steps = (Utils.distance(point1, point2) / vel); step = (Utils.distance(point1, _local6) / vel); } private function delay():void{ removeEventListener(Event.ENTER_FRAME, moveTo); addEventListener(Event.ENTER_FRAME, onDelay); delayCounter = 0; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ space = _arg1; space.addRigidBody(stBody); super.init(space); if (pdata.isActive){ start(); }; return (createdGood); } override public function destroy():void{ end(); space = null; spring = null; stBody = null; point1Mc = null; point2Mc = null; super.destroy(); } public function end():void{ started = false; removeEventListener(Event.ENTER_FRAME, moveTo); removeEventListener(Event.ENTER_FRAME, onDelay); } private function onDelay(_arg1:Event):void{ delayCounter++; body.v.setTo((body.v.x * 0.2), (body.v.y * 0.2)); if (delayCounter > delayTime){ removeEventListener(Event.ENTER_FRAME, onDelay); addEventListener(Event.ENTER_FRAME, moveTo); }; } public function start():void{ if (started){ end(); return; }; space.removeRigidBody(stBody); space.addRigidBody(body); body.setMoment(Number.POSITIVE_INFINITY); addEventListener(Event.ENTER_FRAME, moveTo); spring = new Spring(body, new Vector2D(body.p.x, body.p.y), 10000); space.addForce(spring); started = true; } private function moveTo(_arg1:Event):void{ spring.anchor.setTo((spring.anchor.x + dx), (spring.anchor.y + dy)); step++; if (step > steps){ step = 0; dy = -(dy); dx = -(dx); delay(); }; } override protected function onEnterFrame(_arg1:Event):void{ body.v.setTo((body.v.x * 0.2), (body.v.y * 0.2)); super.onEnterFrame(_arg1); } } }//package elements
Section 98
//EndPoint (elements.EndPoint) package elements { import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class EndPoint extends PhysicsElement { public var point:Sprite; private var shapes:Array; private var type:String;// = "static" public function EndPoint(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local3:RigidBody; var _local4:GeometricShape; var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:Number; shapes = new Array(); super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; } else { throw (new Error()); }; graph.stop(); material = LevelManager.getDefaultMaterial(LevelManager.staticRect); material.restitution = 0.5; material.friction = 0.4; if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; }; type = LevelManager.getEndPointType(); switch (type){ case "static": _local3 = new RigidBody(RigidBody.STATIC_BODY); point = (this as Sprite); break; case "dynamic": _local3 = new RigidBody(); graph.gotoAndStop(2); point = (_arg1["point"] as Sprite); addChild(point); break; }; var _local5:int; while (_local5 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local5) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local4 = new Polygon(getVerts(_local6), Vector2D.zeroVect, material); _local4.fillColour = 65365; _local3.addShape(_local4); }; if (_local7 == "circ"){ _local9 = (_local6.width / 2); _local3.addShape(new Circle(_local9, new Vector2D(_local6.x, _local6.y), material)); }; }; _local5++; }; _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ super.init(_arg1); _arg1.addRigidBody(body); if (type == "dynamic"){ _arg2.metalElements.push(this); }; graph.play(); return (createdGood); } } }//package elements
Section 99
//FreeElement (elements.FreeElement) package elements { import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class FreeElement extends PhysicsElement { private var shapes:Array; public function FreeElement(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local4:GeometricShape; var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:Number; shapes = new Array(); super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; } else { graph = new MovieClip(); }; material = LevelManager.getDefaultMaterial(LevelManager.freeElement); var _local3:ImpulseControlBody = new ImpulseControlBody(); if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; }; var _local5:int; while (_local5 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local5) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local4 = new Polygon(getVerts(_local6), Vector2D.zeroVect, material); _local4.fillColour = 5635925; _local3.addShape(_local4); }; if (_local7 == "circ"){ _local9 = (_local6.width / 2); _local3.addShape(new Circle(_local9, new Vector2D(_local6.x, _local6.y), material)); }; }; _local5++; }; _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; if (pdata){ if (pdata.moment){ _local3.setMoment(pdata.moment); }; }; _local3.element = this; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ super.init(_arg1); _arg1.addRigidBody(body); return (createdGood); } } }//package elements
Section 100
//GravitationManager (elements.GravitationManager) package elements { import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import gs.*; public class GravitationManager extends PhysicsElement implements ISleepElement { private var forceM:Number;// = 300 private var vector:MovieClip; private var oldForce:Vector2D; private var space:Space; private var force:Vector2D; private var gravityA:Number; public function GravitationManager(_arg1:MovieClip, _arg2:PhysicsData){ force = new Vector2D(0, -300); super(_arg1); pdata = _arg2; if (pdata.gravitation){ forceM = pdata.gravitation; }; graph = _arg1; gravityA = _arg1["vector2"].rotation; _arg1.removeChild(_arg1["pdata"]); _arg1.removeChild(_arg1["vector2"]); vector = _arg1["vector"]; if (pdata.gravitation >= 0){ forceM = pdata.gravitation; }; } override public function destroy():void{ space = null; vector = null; super.destroy(); } public function start():void{ Snd.play("gravitation"); var _local1:Number = (gravityA * PhysicsElement.degToRad); var _local2:Number = (forceM * Math.sin(_local1)); var _local3:Number = (-(forceM) * Math.cos(_local1)); TweenLite.to(vector, 1, {rotation:gravityA}); Global.engine.setGravitation(new Vector2D(_local2, _local3)); } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ visible = false; space = _arg1; var _local3:Number = ((Math.atan2(space.masslessForce.y, space.masslessForce.x) * PhysicsElement.radToDeg) + 90); vector.rotation = _local3; oldForce = space.masslessForce.clone(); if (pdata.isActive){ start(); }; return (createdGood); } public function end():void{ } } }//package elements
Section 101
//ILevelElement (elements.ILevelElement) package elements { import view.*; import org.rje.glaze.engine.space.*; public interface ILevelElement { function init(_arg1:Space=null, _arg2:Level=null):Boolean; function destroy():void; } }//package elements
Section 102
//ImpulseControlBody (elements.ImpulseControlBody) package elements { import org.rje.glaze.engine.dynamics.*; public class ImpulseControlBody extends RigidBody { public var joints:Array; public var element:PhysicsElement; public function ImpulseControlBody(_arg1:int=1, _arg2:Number=-1, _arg3:Number=-1){ joints = new Array(); super(_arg1, _arg2, _arg3); } public function addJoint(_arg1:PinJointFree):void{ joints.push(_arg1); } public function removeJoint(_arg1:PinJointElement):void{ joints.splice(joints.indexOf(_arg1), 1); } } }//package elements
Section 103
//IPhysicsElement (elements.IPhysicsElement) package elements { import flash.display.*; import org.rje.glaze.engine.dynamics.*; public interface IPhysicsElement extends ILevelElement { function get body():RigidBody; function set body(_arg1:RigidBody):void; function set graph(_arg1:MovieClip):void; function get graph():MovieClip; } }//package elements
Section 104
//ISleepElement (elements.ISleepElement) package elements { public interface ISleepElement extends IPhysicsElement { function start():void; function end():void; } }//package elements
Section 105
//Jumper (elements.Jumper) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class Jumper extends PhysicsElement { private var collisionCounter:int;// = -1 private var junpBody:RigidBody; private var shapes:Array; public function Jumper(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local4:GeometricShape; var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:RigidBody; var _local10:Point; var _local11:Vector2D; var _local12:Number; shapes = new Array(); super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; }; material = LevelManager.getDefaultMaterial(LevelManager.staticRect); if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; }; var _local3:RigidBody = new RigidBody(RigidBody.STATIC_BODY); var _local5:int; while (_local5 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local5) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local9 = new RigidBody(RigidBody.STATIC_BODY); _local4 = new Polygon(getVerts(_local6), new Vector2D(-(_local6.x), -(_local6.y)), material); _local4.fillColour = 26265; _local10 = new Point(_local6.x, _local6.y); _local10 = _arg1.localToGlobal(_local10); _local11 = new Vector2D(_local10.x, _local10.y); _local12 = ((360 + _arg1.rotation) * PhysicsElement.degToRad); _local9.p.setTo(_local11.x, _local11.y); _local9.addShape(_local4); _local9.setAngle(a); shapes.push(_local9); }; }; _local5++; }; _local4 = new Polygon(getVerts(_arg1["jump"]), Vector2D.zeroVect, LevelManager.getDefaultMaterial(LevelManager.jumper)); _local4.fillColour = 16737945; _local3.addShape(_local4); _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; body.collisionProcessingMask = 2; body.onColisionFunc = onCollision; } private function onCollision(_arg1:RigidBody):void{ if ((((_arg1 == _level.boobleMan.body)) && ((collisionCounter < 0)))){ collisionCounter = 4; Snd.play(("jump" + (1 + Math.floor((Math.random() * 2))))); }; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ var _local3:RigidBody; super.init(_arg1); _level = _arg2; _arg1.addRigidBody(body); for each (_local3 in shapes) { _arg1.addRigidBody(_local3); }; return (createdGood); } override public function destroy():void{ shapes = null; junpBody = null; super.destroy(); } override protected function onEnterFrame(_arg1:Event):void{ collisionCounter--; super.onEnterFrame(_arg1); } } }//package elements
Section 106
//Magnit (elements.Magnit) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class Magnit extends PhysicsElement implements ISleepElement { private var level:Level; private var space:Space; private var isActive:Boolean;// = false private var magForce:Number;// = 200000 private var dy:Number; private var magMass:Number;// = 0 private var forceAngle:Number; private var force:Number; private var maxForce:Number;// = 60000 private var type:Number;// = 0 public function Magnit(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local3:ImpulseControlBody; var _local4:GeometricShape; var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:Number; super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; } else { graph = new MovieClip(); }; material = LevelManager.getDefaultMaterial(LevelManager.magnit); if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; isActive = pdata.isActive; type = ((pdata.bodyType)=="static") ? 0 : 1; if (pdata.force){ magForce = pdata.force; }; }; if (type == 1){ _local3 = new ImpulseControlBody(); } else { if (type == 0){ _local3 = new ImpulseControlBody(RigidBody.STATIC_BODY); } else { throw (new Error("magnit type error")); }; }; var _local5:int; while (_local5 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local5) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local4 = new Polygon(getVerts(_local6), Vector2D.zeroVect, material); _local4.fillColour = 5635925; _local3.addShape(_local4); }; if (_local7 == "circ"){ _local9 = (_local6.width / 2); _local3.addShape(new Circle(_local9, new Vector2D(_local6.x, _local6.y), material)); }; }; _local5++; }; if (pdata.maxForce){ maxForce = pdata.maxForce; }; _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; } override public function destroy():void{ end(); space = null; level = null; super.destroy(); } private function onCollision(_arg1:RigidBody):void{ _arg1.v.setTo(0, 0); _arg1.w = 0; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ var _local3:GeometricShape; for each (_local3 in body.memberShapes) { magMass = (magMass + _local3.mass); }; super.init(_arg1, _arg2); space = _arg1; level = _arg2; space.addRigidBody(body); if (isActive){ addEventListener(Event.ENTER_FRAME, checkTargets); }; return (createdGood); } private function checkTargets(_arg1:Event):void{ var _local2:PhysicsElement; for each (_local2 in level.metalElements) { force = (((_local2.body.m * magMass) / Utils.distanceQuad(body.p, _local2.body.p)) * magForce); dy = (this.y - _local2.y); if (force > maxForce){ force = maxForce; }; forceAngle = Math.atan(((this.x - _local2.x) / (this.y - _local2.y))); forceAngle = ((dy)<0) ? (forceAngle + Math.PI) : forceAngle; if (_local2.body.isSleeping){ _local2.body.wake(_local2.body.space.stamp); }; _local2.body.f.x = (_local2.body.f.x + (Math.sin(forceAngle) * force)); _local2.body.f.y = (_local2.body.f.y + (Math.cos(forceAngle) * force)); if (type){ trace("type"); forceAngle = (forceAngle + Math.PI); body.ApplyForces(new Vector2D((Math.sin(forceAngle) * force), (Math.cos(forceAngle) * force)), Vector2D.zeroVect); }; }; } public function end():void{ trace("end"); isActive = false; removeEventListener(Event.ENTER_FRAME, checkTargets); } public function start():void{ trace(("startBBBBBBBBBB" + isActive)); if (!isActive){ addEventListener(Event.ENTER_FRAME, checkTargets); isActive = true; } else { end(); }; } override protected function onEnterFrame(_arg1:Event):void{ body.w = (body.w * 0.98); body.v.setTo((body.v.x * 0.98), (body.v.y * 0.98)); super.onEnterFrame(_arg1); } } }//package elements
Section 107
//PhysicsElement (elements.PhysicsElement) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class PhysicsElement extends Sprite implements IPhysicsElement { private var _body:RigidBody; public var _level:Level; public var _height:Number; public var _width:Number; protected var _graph:MovieClip; protected var createdGood:Boolean;// = true public var elementType:String; public var pdata:PhysicsData; public var a:Number; private var _shape:GeometricShape; public var material:Material; public var p:Vector2D; public static var degToRad:Number = 0.0174532925199433; public static var radToDeg:Number = 57.2957795130823; public function PhysicsElement(_arg1:MovieClip){ var _local2:Point = new Point(_arg1.x, _arg1.y); _local2 = _arg1.parent.localToGlobal(_local2); p = new Vector2D(_local2.x, _local2.y); a = ((360 + _arg1.rotation) * PhysicsElement.degToRad); this.mouseEnabled = false; this.mouseChildren = false; } public function set body(_arg1:RigidBody):void{ _body = _arg1; _body.dispObj = this; this.x = _body.p.x; this.y = _body.p.y; this.rotation = (_body.a * radToDeg); } public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ addEventListener(Event.ENTER_FRAME, onEnterFrame); return (createdGood); } protected function getVerts(_arg1:MovieClip):Array{ var _local4:MovieClip; var _local5:String; var _local6:MovieClip; var _local7:Point; var _local2:Array = new Array(); var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = (_arg1.getChildAt(_local3) as MovieClip); if (!_local4){ } else { _local5 = _local4.name.substr(0, 1); _local6 = _local4; if (_local5 == "p"){ _local7 = new Point(_local4.x, _local4.y); _local7 = _arg1.localToGlobal(_local7); _local7 = _arg1.parent.globalToLocal(_local7); _local2.push(new Vector2D(_local7.x, _local7.y)); }; }; _local3++; }; return (_local2); } public function set graph(_arg1:MovieClip):void{ if (_graph){ removeChild(_graph); }; _graph = _arg1; if (_graph){ _graph.mouseEnabled = false; _graph.mouseChildren = false; _graph.cacheAsBitmap = true; addChild(_graph); }; } public function get graph():MovieClip{ return (_graph); } public function set shape(_arg1:GeometricShape):void{ _shape = _arg1; } public function get shape():GeometricShape{ return (_shape); } public function get body():RigidBody{ return (_body); } public function destroy():void{ graph = null; _body = null; _level = null; pdata = null; material = null; removeEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function onEnterFrame(_arg1:Event):void{ this.x = body.p.x; this.y = body.p.y; this.rotation = (body.a * radToDeg); } } }//package elements
Section 108
//PinJointElement (elements.PinJointElement) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.joints.*; public class PinJointElement extends PhysicsElement { private var jointMc:Sprite; private var joints:Array; private var drawPoint:Point; private var jointsData:Array; private var upPoints:Array; public function PinJointElement(_arg1:MovieClip, _arg2:PhysicsData){ var _local5:MovieClip; var _local6:String; var _local7:MovieClip; var _local8:GeometricShape; var _local9:MovieClip; var _local10:Point; var _local11:Vector2D; var _local12:MovieClip; var _local13:Vector2D; jointsData = new Array(); joints = new Array(); jointMc = new Sprite(); upPoints = new Array(); drawPoint = new Point(); super(_arg1); pdata = _arg2; if (_arg1["g"]){ graph = _arg1["g"]; }; addChild(jointMc); material = LevelManager.getDefaultMaterial(LevelManager.pinJoint); if (pdata){ if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; }; var _local3:RigidBody = new RigidBody(); var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); if (!_local5){ } else { _local6 = _local5.name.substr(0, 4); _local7 = _local5; if (_local6 == "rect"){ _local8 = new Polygon(getVerts(_local5), Vector2D.zeroVect, material); _local8.fillColour = 26256; _local3.addShape(_local8); }; _local6 = _local6.substr(0, 1); if (_local6 == "j"){ _local9 = _local5["point1"]; _local10 = new Point(_local9.x, _local9.y); _local10 = _local5.localToGlobal(_local10); upPoints.push(_local9["g"]); jointMc.addChild(_local9["g"]); _local11 = new Vector2D(_local10.x, _local10.y); _local12 = _local5["point2"]; _local10 = new Point(_local12.x, _local12.y); _local10 = _local5.localToGlobal(_local10); _local10 = _arg1.globalToLocal(_local10); _local12 = _local12["g"]; jointMc.addChild(_local12); _local12.x = _local10.x; _local12.y = _local10.y; _local13 = new Vector2D(_local10.x, _local10.y); jointsData.push({arch1:_local11, arch2:_local13}); }; }; _local4++; }; _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; } override public function destroy():void{ joints = null; removeChild(jointMc); jointMc = null; jointsData = null; upPoints = null; super.destroy(); } override protected function onEnterFrame(_arg1:Event):void{ super.onEnterFrame(_arg1); body.v.setTo((body.v.x * 0.99), (body.v.y * 0.99)); jointMc.graphics.clear(); jointMc.graphics.lineStyle(2, 0x333333); var _local2:int; while (_local2 < this.joints.length) { drawPoint.x = (joints[_local2].a.p.x + joints[_local2].r1.x); drawPoint.y = (joints[_local2].a.p.y + joints[_local2].r1.y); drawPoint = parent.localToGlobal(drawPoint); drawPoint = jointMc.globalToLocal(drawPoint); upPoints[_local2].x = drawPoint.x; upPoints[_local2].y = drawPoint.y; jointMc.graphics.moveTo(drawPoint.x, drawPoint.y); drawPoint.x = (joints[_local2].b.p.x + joints[_local2].r2.x); drawPoint.y = (joints[_local2].b.p.y + joints[_local2].r2.y); drawPoint = parent.localToGlobal(drawPoint); drawPoint = jointMc.globalToLocal(drawPoint); jointMc.graphics.lineTo(drawPoint.x, drawPoint.y); _local2++; }; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ var _local3:Object; var _local4:PinJoint; super.init(_arg1); for each (_local3 in jointsData) { _local4 = new PinJoint(_arg1.defaultStaticBody, body, _local3.arch1, _local3.arch2); joints.push(_local4); _arg1.addJoint(_local4); }; _arg1.addRigidBody(body); if (_arg1.defaultStaticBody == null){ createdGood = false; }; return (createdGood); } } }//package elements
Section 109
//PinJointFree (elements.PinJointFree) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.joints.*; public class PinJointFree extends Sprite implements ILevelElement { private var p1:Point; private var level:Level; private var createdGood:Boolean;// = true private var space:Space; private var p2:Point; private var joint:PinJoint; private var body1:RigidBody; private var body2:RigidBody; public var elementType:String; private var destroyed:Boolean;// = false private var pdata:PhysicsData; private var collisionImpulse:Number; private var colisionBody:RigidBody; private var p:Vector2D; private var maxImpulse:Number; private var maxMass:Number; public function PinJointFree(_arg1:MovieClip, _arg2:PhysicsData=null){ elementType = LevelManager.pinJointFree; super(); var _local3:Point = new Point(_arg1.x, _arg1.y); _local3 = _arg1.parent.localToGlobal(_local3); p = new Vector2D(_local3.x, _local3.y); pdata = _arg2; maxMass = pdata.maxMass; maxImpulse = pdata.maxImpulse; var _local4:MovieClip = _arg1["point1"]; p1 = new Point(_local4.x, _local4.y); var _local5:MovieClip = _arg1["point2"]; p2 = new Point(_local5.x, _local5.y); this.x = _local3.x; this.y = _local3.y; this.rotation = _arg1.rotation; this.name = _arg1.name; } private function addJointToBody(_arg1:RigidBody, _arg2:Point):Object{ var _local3:Vector2D = _arg1.p; var _local4:Object = new Object(); _local4["arch"] = new Vector2D((_arg2.x - _local3.x), (_arg2.y - _local3.y)).rotate((-(_arg1.a) * PhysicsElement.radToDeg)); _local4["body"] = _arg1; return (_local4); } public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ space = _arg1; level = _arg2; return (createdGood); } private function onColision(_arg1:RigidBody):void{ if (!_arg1.isStatic){ collisionImpulse = ((colisionBody.v.magnitude() * colisionBody.m) + (_arg1.v.magnitude() * _arg1.m)); if (collisionImpulse > maxImpulse){ Snd.obryv(); trace(("pin rozryv onColision=" + collisionImpulse)); level.removeElement(this); }; }; } public function initJoint():Boolean{ var _local5:Object; var _local6:Object; addEventListener(Event.ENTER_FRAME, onEnterFrame); var _local1:Point = this.localToGlobal(p1); var _local2:GeometricShape = space.getShapeAtPoint(new Vector2D(_local1.x, _local1.y)); var _local3:Point = this.localToGlobal(p2); var _local4:GeometricShape = space.getShapeAtPoint(new Vector2D(_local3.x, _local3.y)); if ((((_local2 == null)) && ((_local4 == null)))){ throw (new Error("no elements found for joint")); }; if (_local2 == null){ _local5 = addJointToSpace(_local1); } else { if (_local2.body.isStatic){ _local5 = addJointToSpace(_local1); } else { _local5 = addJointToBody(_local2.body, _local1); }; }; if (_local4 == null){ _local6 = addJointToSpace(_local3); } else { if (_local4.body.isStatic){ _local6 = addJointToSpace(_local3); } else { _local6 = addJointToBody(_local4.body, _local3); }; }; body1 = _local5.body; body2 = _local6.body; if (((!((body2 == space.defaultStaticBody))) && (!((body2.collisionProcessingMask == 2))))){ colisionBody = body2; colisionBody.onColisionFunc = onColision; colisionBody.collisionProcessingMask = 2; } else { if (((!((body1 == space.defaultStaticBody))) && (!((body1.collisionProcessingMask == 2))))){ colisionBody = body1; colisionBody.onColisionFunc = onColision; colisionBody.collisionProcessingMask = 2; }; }; joint = new PinJoint(_local5.body, _local6.body, _local5.arch, _local6.arch); if ((((_local5.body == null)) || ((_local6.body == null)))){ createdGood = false; }; space.addJoint(joint); this.x = (this.y = 0); this.rotation = 0; return (createdGood); } private function addJointToSpace(_arg1:Point):Object{ var _local2:Object = new Object(); _local2["arch"] = new Vector2D(_arg1.x, _arg1.y); _local2["body"] = space.defaultStaticBody; return (_local2); } private function drawGraphics():void{ graphics.clear(); graphics.lineStyle(2, 0x333333); graphics.moveTo((joint.a.p.x + joint.r1.x), (joint.a.p.y + joint.r1.y)); graphics.lineTo((joint.b.p.x + joint.r2.x), (joint.b.p.y + joint.r2.y)); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, onEnterFrame); if (colisionBody){ colisionBody.collisionProcessingMask = 7; colisionBody.onColisionFunc = null; colisionBody = null; }; space.removeJoint(joint); p = null; pdata = null; p1 = null; p2 = null; space = null; level = null; body1 = null; body2 = null; joint = null; destroyed = true; } protected function onEnterFrame(_arg1:Event):void{ if (destroyed){ return; }; if (((!((body1.collisionProcessingMask == 2))) && ((colisionBody == null)))){ body1.collisionProcessingMask = 2; body1.onColisionFunc = onColision; colisionBody = body1; }; if (((!((body2.collisionProcessingMask == 2))) && ((colisionBody == null)))){ body2.collisionProcessingMask = 2; body2.onColisionFunc = onColision; colisionBody = body2; }; if (((!(isNaN(joint.nMass))) && ((joint.nMass > maxMass)))){ Snd.obryv(); level.removeElement(this); return; }; drawGraphics(); } } }//package elements
Section 110
//RotateDoor (elements.RotateDoor) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.forces.*; public class RotateDoor extends RotateRect implements ISleepElement { private var started:Boolean; private var stBody:RigidBody; private var spring:Spring; public var isActive:Boolean; private var space:Space; public var endPos:Number; public function RotateDoor(_arg1:MovieClip, _arg2:PhysicsData){ var _local4:MovieClip; var _local5:String; var _local6:MovieClip; var _local7:GeometricShape; super(_arg1); isActive = _arg2.isActive; endPos = _arg2.endPos; stBody = new RigidBody(RigidBody.STATIC_BODY); var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = (_arg1.getChildAt(_local3) as MovieClip); if (!_local4){ } else { _local5 = _local4.name.substr(0, 4); _local6 = _local4; if (_local5 == "rect"){ _local7 = new Polygon(getVerts(_local4), Vector2D.zeroVect, material); _local7.fillColour = 10053273; stBody.addShape(_local7); }; }; _local3++; }; stBody.p.setTo(p.x, p.y); stBody.setAngle(a); } private function onMove(_arg1:Event):void{ trace((body.a * PhysicsElement.radToDeg)); } override public function start():void{ if (started){ return; }; started = true; space.removeRigidBody(stBody); } override protected function onEnterFrame(_arg1:Event):void{ super.onEnterFrame(_arg1); } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ space = _arg1; space.addRigidBody(stBody); spring = new Spring(body, new Vector2D(p.x, (p.y + 20)), 1000, 20, 10); return (createdGood); } override public function end():void{ removeEventListener(Event.ENTER_FRAME, onMove); body.isStatic = true; } override public function destroy():void{ space = null; stBody = null; end(); super.destroy(); } } }//package elements
Section 111
//RotateRect (elements.RotateRect) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.joints.*; public class RotateRect extends PhysicsElement implements ISleepElement { public var rotationFlag:Boolean;// = false private var isActive:Boolean;// = false public var joint:Joint; public var arch2:Vector2D; public var arch1:Vector2D; private var soundCounter:int;// = -1 public var rotationSpeed:Number;// = 0 public function RotateRect(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:GeometricShape; var _local10:Number; super(_arg1); pdata = _arg2; var _local3:Point = new Point(_arg1["rotatePoint"].x, _arg1["rotatePoint"].y); _local3 = _arg1.localToGlobal(_local3); arch1 = new Vector2D(_local3.x, _local3.y); arch2 = new Vector2D(_arg1["rotatePoint"].x, _arg1["rotatePoint"].y); if (_arg1["g"]){ graph = _arg1["g"]; _arg1["g"].addChild(_arg1["rotatePoint"]["g"]); }; material = LevelManager.getDefaultMaterial(LevelManager.rotateRect); if (pdata){ if (pdata.rotationSpeed != 0){ rotationFlag = true; rotationSpeed = pdata.rotationSpeed; if (pdata.isActive == undefined){ isActive = true; } else { isActive = pdata.isActive; }; }; if (pdata.friction >= 0){ material.friction = pdata.friction; }; if (pdata.restitution >= 0){ material.restitution = pdata.restitution; }; if (pdata.density >= 0){ material.density = pdata.density; }; }; var _local4:RigidBody = new RigidBody(); var _local5:int; while (_local5 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local5) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local9 = new Polygon(getVerts(_local6), Vector2D.zeroVect, material); _local9.fillColour = 26265; _local4.addShape(_local9); }; if (_local7 == "circ"){ _local10 = (_local6.width / 2); _local4.addShape(new Circle(_local10, new Vector2D(_local6.x, _local6.y), material)); }; }; _local5++; }; _local4.p.setTo(p.x, p.y); _local4.setAngle(a); body = _local4; } private function rotateCW(_arg1:Event):void{ if (body.w < rotationSpeed){ body.f.y = (body.f.y + (-10000 * rotationSpeed)); body.t = (-100 * body.f.y); }; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ body.canSleep = true; _arg1.addRigidBody(body); createJoint(_arg1.defaultStaticBody); _arg1.addJoint(joint); super.init(_arg1); initRotation(); return (createdGood); } public function start():void{ if (isActive){ isActive = false; end(); } else { isActive = true; initRotation(); }; } public function end():void{ removeEventListener(Event.ENTER_FRAME, rotateCW); removeEventListener(Event.ENTER_FRAME, rotateCCW); } public function createJoint(_arg1:RigidBody):void{ joint = new PinJoint(_arg1, body, arch1, arch2); } override protected function onEnterFrame(_arg1:Event):void{ soundCounter--; if ((((((Math.abs(body.w) > 1.5)) && ((soundCounter < 0)))) && (!(rotationFlag)))){ Snd.rotateRect(); soundCounter = 90; }; super.onEnterFrame(_arg1); } private function initRotation():void{ if (((rotationFlag) && (isActive))){ if (rotationSpeed > 0){ addEventListener(Event.ENTER_FRAME, rotateCW); }; if (rotationSpeed < 0){ addEventListener(Event.ENTER_FRAME, rotateCCW); }; }; } override public function destroy():void{ end(); joint = null; trace("rect destroy"); super.destroy(); } private function rotateCCW(_arg1:Event):void{ if (body.w > rotationSpeed){ body.f.y = (body.f.y + (-10000 * rotationSpeed)); body.t = (-100 * body.f.y); }; } } }//package elements
Section 112
//SpringFree (elements.SpringFree) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.forces.*; public class SpringFree extends Sprite implements ILevelElement { private var p1:Point; private var level:Level; protected var createdGood:Boolean;// = true private var space:Space; private var p2:Point; private var spring:Spring2; private var body1:RigidBody; private var body2:RigidBody; public var elementType:String; private var destroyed:Boolean;// = false private var pdata:PhysicsData; private var collisionImpulse:Number; private var colisionBody:RigidBody; private var p:Vector2D; private var maxMass:Number;// = 12.2 private var drawPoint:Point; public function SpringFree(_arg1:MovieClip, _arg2:PhysicsData=null){ elementType = LevelManager.pinJointFree; drawPoint = new Point(); super(); var _local3:Point = new Point(_arg1.x, _arg1.y); _local3 = _arg1.parent.localToGlobal(_local3); p = new Vector2D(_local3.x, _local3.y); pdata = _arg2; maxMass = pdata.maxMass; var _local4:MovieClip = _arg1["point1"]; p1 = new Point(_local4.x, _local4.y); var _local5:MovieClip = _arg1["point2"]; p2 = new Point(_local5.x, _local5.y); this.x = _local3.x; this.y = _local3.y; this.rotation = _arg1.rotation; this.name = _arg1.name; } protected function onEnterFrame(_arg1:Event):void{ if (destroyed){ return; }; if ((spring.f.x + spring.f.y) > maxMass){ Snd.obryv(); level.removeElement(this); return; }; drawGraph(); } private function addJointToBody(_arg1:RigidBody, _arg2:Point):Object{ var _local3:Vector2D = _arg1.p; var _local4:Object = new Object(); _local4["arch"] = new Vector2D((_arg2.x - _local3.x), (_arg2.y - _local3.y)).rotate((-(_arg1.a) * PhysicsElement.radToDeg)); _local4["body"] = _arg1; return (_local4); } public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ space = _arg1; level = _arg2; return (createdGood); } private function onColision(_arg1:RigidBody):void{ if (!_arg1.isStatic){ collisionImpulse = ((colisionBody.v.magnitude() * colisionBody.m) + (_arg1.v.magnitude() * _arg1.m)); if (collisionImpulse > 6000){ level.removeElement(this); }; }; } private function addJointToSpace(_arg1:Point):Object{ var _local2:Object = new Object(); _local2["arch"] = new Vector2D(_arg1.x, _arg1.y); _local2["body"] = space.defaultStaticBody; return (_local2); } private function drawGraph():void{ graphics.clear(); graphics.lineStyle(2, 12083065); graphics.moveTo(spring.ax0, spring.ay0); graphics.lineTo(spring.ax1, spring.ay1); } public function destroy():void{ removeEventListener(Event.ENTER_FRAME, onEnterFrame); if (colisionBody){ colisionBody.collisionProcessingMask = 7; colisionBody.onColisionFunc = null; colisionBody = null; }; space.removeForce(spring); p = null; pdata = null; p1 = null; p2 = null; space = null; level = null; body1 = null; body2 = null; spring = null; destroyed = true; } public function initSpring():Boolean{ var _local5:Object; var _local6:Object; var _local7:Number; addEventListener(Event.ENTER_FRAME, onEnterFrame); var _local1:Point = this.localToGlobal(p1); var _local2:GeometricShape = space.getShapeAtPoint(new Vector2D(_local1.x, _local1.y)); var _local3:Point = this.localToGlobal(p2); var _local4:GeometricShape = space.getShapeAtPoint(new Vector2D(_local3.x, _local3.y)); if ((((_local2 == null)) && ((_local4 == null)))){ throw (new Error("no elements found for joint")); }; if (_local2 == null){ _local5 = addJointToSpace(_local1); } else { if (_local2.body.isStatic){ _local5 = addJointToSpace(_local1); } else { _local5 = addJointToBody(_local2.body, _local1); }; }; if (_local4 == null){ _local6 = addJointToSpace(_local3); } else { if (_local4.body.isStatic){ _local6 = addJointToSpace(_local3); } else { _local6 = addJointToBody(_local4.body, _local3); }; }; body1 = _local5.body; body2 = _local6.body; if ((((_local5.body == null)) || ((_local6.body == null)))){ createdGood = false; }; if (isNaN(pdata.restLength)){ _local7 = Utils.distance(p1, p2); } else { _local7 = pdata.restLength; }; spring = new Spring2(_local5.body, _local6.body, pdata.stiffness, _local7, pdata.damping, _local5.arch, _local6.arch); space.addForce(spring); this.x = 0; this.y = 0; this.rotation = 0; return (createdGood); } } }//package elements
Section 113
//StaticCircle (elements.StaticCircle) package elements { import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class StaticCircle extends PhysicsElement { public var r:Number; public function StaticCircle(_arg1:MovieClip, _arg2:PhysicsData=null){ super(_arg1); r = (_arg1["circle"].width / 2); if (_arg1["g"]){ graph = _arg1["g"]; graph.cacheAsBitmap = true; }; material = LevelManager.getDefaultMaterial(LevelManager.staticCircle); if (pdata){ if (pdata.friction >= 0){ material.friction = pdata.friction; }; if (pdata.restitution >= 0){ material.restitution = pdata.restitution; }; if (pdata.density >= 0){ material.density = pdata.density; }; }; var _local3:RigidBody = new RigidBody(RigidBody.STATIC_BODY); _local3.p.setTo(p.x, p.y); _local3.addShape(new Circle(r, Vector2D.zeroVect, material)); body = _local3; this.shape = new Circle(r, new Vector2D(p.x, p.y), material); } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ return (createdGood); } } }//package elements
Section 114
//StaticRect (elements.StaticRect) package elements { import view.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class StaticRect extends PhysicsElement { public function StaticRect(_arg1:MovieClip, _arg2:PhysicsData=null){ var _local5:MovieClip; var _local6:String; var _local7:MovieClip; var _local8:GeometricShape; super(_arg1); pdata = _arg2; if (_arg1["rect"]){ _width = _arg1["rect"].width; _height = _arg1["rect"].height; }; if (_arg1["g"]){ graph = _arg1["g"]; graph.cacheAsBitmap = true; }; if (_arg1.rotation == 90){ material = LevelManager.getDefaultMaterial(LevelManager.staticRectV); } else { material = LevelManager.getDefaultMaterial(LevelManager.staticRectH); }; if (pdata){ if (pdata.friction >= 0){ material.friction = pdata.friction; }; if (pdata.restitution >= 0){ material.restitution = pdata.restitution; }; if (pdata.density >= 0){ material.density = pdata.density; }; }; var _local3:RigidBody = new RigidBody(RigidBody.STATIC_BODY); var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); if (!_local5){ } else { _local6 = _local5.name.substr(0, 4); _local7 = _local5; if (_local6 == "rect"){ _local8 = new Polygon(getVerts(_local5), Vector2D.zeroVect, material); _local3.addShape(_local8); }; }; _local4++; }; _local3.p.setTo(p.x, p.y); _local3.setAngle(a); body = _local3; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ return (createdGood); } override protected function getVerts(_arg1:MovieClip):Array{ var _local4:MovieClip; var _local5:String; var _local6:MovieClip; var _local7:Point; var _local2:Array = new Array(); var _local3:int; while (_local3 < _arg1.numChildren) { _local4 = (_arg1.getChildAt(_local3) as MovieClip); if (!_local4){ } else { _local5 = _local4.name.substr(0, 1); _local6 = _local4; if (_local5 == "p"){ _local7 = new Point(_local4.x, _local4.y); _local7 = _arg1.localToGlobal(_local7); _local7 = _arg1.parent.globalToLocal(_local7); _local2.push(new Vector2D(_local7.x, _local7.y)); }; }; _local3++; }; return (_local2); } } }//package elements
Section 115
//TargetButton (elements.TargetButton) package elements { import flash.events.*; import view.*; import model.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class TargetButton extends PhysicsElement { private var started:Boolean;// = false private var targets:Array; private var time:int;// = 0 private var target:ISleepElement; private var bx:Number; private var by:Number; private var waitTime:int;// = 20 private var maxImpulse:Number;// = 1000 private var type:String;// = "multi" private var tCount:int; public function TargetButton(_arg1:MovieClip, _arg2:PhysicsData){ var _local5:MovieClip; var _local6:MovieClip; var _local7:String; var _local8:MovieClip; var _local9:GeometricShape; super(_arg1); if (_arg1["g"]){ graph = _arg1["g"]; graph.stop(); _local5 = _arg1["scrollRectangle"]; if (_local5){ }; }; pdata = _arg2; material = LevelManager.getDefaultMaterial(LevelManager.targetButton); if (pdata.friction > 0){ material.friction = pdata.friction; }; if (pdata.restitution > 0){ material.restitution = pdata.restitution; }; if (pdata.density > 0){ material.density = pdata.density; }; if (pdata.buttonType){ type = pdata.buttonType; }; if (pdata.force){ maxImpulse = pdata.force; }; var _local3:RigidBody = new RigidBody(RigidBody.STATIC_BODY); var _local4:int; while (_local4 < _arg1.numChildren) { _local6 = (_arg1.getChildAt(_local4) as MovieClip); if (!_local6){ } else { _local7 = _local6.name.substr(0, 4); _local8 = _local6; if (_local7 == "rect"){ _local9 = new Polygon(getVerts(_local6), Vector2D.zeroVect, material); _local9.fillColour = 65297; _local3.addShape(_local9); }; }; _local4++; }; _local3.p.setTo(p.x, p.y); bx = p.x; by = p.y; _local3.setAngle(a); body = _local3; } private function startTargets(_arg1:Event):void{ targets[tCount].start(); tCount++; if (tCount >= targets.length){ removeEventListener(Event.ENTER_FRAME, startTargets); }; } override public function init(_arg1:Space=null, _arg2:Level=null):Boolean{ var _local4:String; _arg1.addRigidBody(body); body.onColisionFunc = onColision; body.collisionProcessingMask = 2; super.init(_arg1); var _local3:Array = pdata.target.split("."); targets = new Array(); for each (_local4 in _local3) { targets.push((_arg2.getTargetElement(_local4) as ISleepElement)); }; return (createdGood); } override public function destroy():void{ targets = null; removeEventListener(Event.ENTER_FRAME, startTargets); removeEventListener(Event.ENTER_FRAME, wait); super.destroy(); } private function onColision(_arg1:RigidBody):void{ if ((_arg1.v.magnitude() * _arg1.m) > maxImpulse){ start(); }; } private function start():void{ if (started){ return; }; Snd.play("button"); started = true; graph.gotoAndStop(2); tCount = 0; if (tCount < targets.length){ addEventListener(Event.ENTER_FRAME, startTargets); }; if (type == "multi"){ time = 0; addEventListener(Event.ENTER_FRAME, wait); } else { body.collisionProcessingMask = 0; }; } private function wait(_arg1:Event):void{ time++; if (time > waitTime){ removeEventListener(Event.ENTER_FRAME, wait); started = false; graph.gotoAndStop(1); }; } } }//package elements
Section 116
//Back (gs.easing.Back) package gs.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package gs.easing
Section 117
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _subTweens:Array; public var initted:Boolean; public var active:Boolean; public var startTime:Number; public var target:Object; public var duration:Number; protected var _hst:Boolean; public var gc:Boolean; protected var _isDisplayObject:Boolean; public var tweens:Array; public var vars:Object; public var ease:Function; protected var _specialVars:Object; public var initTime:Number; public var combinedTimeScale:Number; private static var _timer:Timer = new Timer(2000); private static var _classInitted:Boolean; public static var defaultEase:Function = TweenLite.easeOut; public static var version:Number = 9.3; public static var masterList:Dictionary = new Dictionary(false); public static var currentTime:uint; public static var overwriteManager:Object; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; public static var timingSprite:Sprite = new Sprite(); public function TweenLite(_arg1:Object, _arg2:Number, _arg3:Object){ if (_arg1 == null){ return; }; if (!_classInitted){ currentTime = getTimer(); timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true); if (overwriteManager == null){ overwriteManager = {mode:1, enabled:false}; }; _timer.addEventListener("timer", killGarbage, false, 0, true); _timer.start(); _classInitted = true; }; this.vars = _arg3; this.duration = ((_arg2) || (0.001)); this.delay = ((_arg3.delay) || (0)); this.combinedTimeScale = ((_arg3.timeScale) || (1)); this.active = Boolean((((_arg2 == 0)) && ((this.delay == 0)))); this.target = _arg1; _isDisplayObject = Boolean((((_arg1 is DisplayObject)) || (_arg1.hasOwnProperty("isTweenProxy")))); if (!(this.vars.ease is Function)){ this.vars.ease = defaultEase; }; if (this.vars.easeParams != null){ this.vars.proxiedEase = this.vars.ease; this.vars.ease = easeProxy; }; this.ease = this.vars.ease; if (!isNaN(Number(this.vars.autoAlpha))){ this.vars.alpha = Number(this.vars.autoAlpha); this.vars.visible = Boolean((this.vars.alpha > 0)); }; _specialVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; this.tweens = []; _subTweens = []; _hst = (this.initted = false); this.initTime = currentTime; this.startTime = (this.initTime + (this.delay * 1000)); var _local4:int = ((((_arg3.overwrite == undefined)) || (((!(overwriteManager.enabled)) && ((_arg3.overwrite > 1)))))) ? overwriteManager.mode : int(_arg3.overwrite); if ((((masterList[_arg1] == undefined)) || (((!((_arg1 == null))) && ((_local4 == 1)))))){ masterList[_arg1] = []; }; masterList[_arg1].push(this); if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){ initTweenVals(); if (this.active){ render((this.startTime + 1)); } else { render(this.startTime); }; if (((((!((_specialVars.visible == null))) && ((this.vars.runBackwards == true)))) && (_isDisplayObject))){ this.target.visible = _specialVars.visible; }; }; } public function get enabled():Boolean{ return ((this.gc) ? false : true); } public function render(_arg1:uint):void{ var _local3:Number; var _local4:Object; var _local5:int; var _local2:Number = ((_arg1 - this.startTime) * 0.001); if (_local2 >= this.duration){ _local2 = this.duration; _local3 = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0; } else { _local3 = this.ease(_local2, 0, 1, this.duration); }; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local4 = this.tweens[_local5]; _local4[0][_local4[1]] = (_local4[2] + (_local3 * _local4[3])); _local5--; }; if (_hst){ _local5 = (_subTweens.length - 1); while (_local5 > -1) { _subTweens[_local5].proxy(_subTweens[_local5], _local2); _local5--; }; }; if (_hasUpdate){ this.vars.onUpdate.apply(null, this.vars.onUpdateParams); }; if (_local2 == this.duration){ complete(true); }; } public function set enabled(_arg1:Boolean):void{ var _local2:Array; var _local3:Boolean; var _local4:int; if (_arg1){ if (masterList[this.target] == undefined){ masterList[this.target] = [this]; } else { _local2 = masterList[this.target]; _local4 = (_local2.length - 1); while (_local4 > -1) { if (_local2[_local4] == this){ _local3 = true; break; }; _local4--; }; if (!_local3){ masterList[this.target].push(this); }; }; }; this.gc = (_arg1) ? false : true; if (this.gc){ this.active = false; } else { this.active = this.started; }; } public function activate():void{ this.started = (this.active = true); if (!this.initted){ initTweenVals(); }; if (this.vars.onStart != null){ this.vars.onStart.apply(null, this.vars.onStartParams); }; if (this.duration == 0.001){ this.startTime = (this.startTime - 1); }; } public function clear():void{ this.tweens = []; _subTweens = []; this.vars = {}; _hst = (_hasUpdate = false); } protected function addSubTween(_arg1:String, _arg2:Function, _arg3:Object, _arg4:Object, _arg5:Object=null):void{ var _local6:String; _subTweens[_subTweens.length] = {name:_arg1, proxy:_arg2, target:_arg3, info:_arg5}; for (_local6 in _arg4) { if (typeof(_arg4[_local6]) == "number"){ this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], (_arg4[_local6] - _arg3[_local6]), _arg1]; } else { this.tweens[this.tweens.length] = [_arg3, _local6, _arg3[_local6], Number(_arg4[_local6]), _arg1]; }; }; _hst = true; } public function initTweenVals(_arg1:Boolean=false, _arg2:String=""):void{ var _local3:String; var _local4:int; var _local5:Array; var _local6:ColorTransform; var _local7:ColorTransform; var _local8:Object; if (((!(_arg1)) && (overwriteManager.enabled))){ overwriteManager.manageOverwrites(this, masterList[this.target]); }; if ((this.target is Array)){ _local5 = ((this.vars.endArray) || ([])); _local4 = 0; while (_local4 < _local5.length) { if (((!((this.target[_local4] == _local5[_local4]))) && (!((this.target[_local4] == undefined))))){ this.tweens[this.tweens.length] = [this.target, _local4.toString(), this.target[_local4], (_local5[_local4] - this.target[_local4]), _local4.toString()]; }; _local4++; }; } else { if (((((!((typeof(_specialVars.tint) == "undefined"))) || ((this.vars.removeTint == true)))) && (this.target.hasOwnProperty("transform")))){ _local6 = this.target.transform.colorTransform; _local7 = new ColorTransform(); if (_specialVars.alpha != undefined){ _local7.alphaMultiplier = _specialVars.alpha; delete _specialVars.alpha; } else { _local7.alphaMultiplier = this.target.alpha; }; if (((!((this.vars.removeTint == true))) && (((((!((_specialVars.tint == null))) && (!((_specialVars.tint == ""))))) || ((_specialVars.tint == 0)))))){ _local7.color = _specialVars.tint; }; addSubTween("tint", tintProxy, {progress:0}, {progress:1}, {target:this.target, color:_local6, endColor:_local7}); }; if (((!((_specialVars.frame == null))) && (_isDisplayObject))){ addSubTween("frame", frameProxy, {frame:this.target.currentFrame}, {frame:_specialVars.frame}, {target:this.target}); }; if (((!(isNaN(this.vars.volume))) && (this.target.hasOwnProperty("soundTransform")))){ addSubTween("volume", volumeProxy, this.target.soundTransform, {volume:this.vars.volume}, {target:this.target}); }; if (((!((_specialVars.visible == null))) && (_isDisplayObject))){ addSubTween("visible", visibleProxy, {}, {}, {tween:this}); }; for (_local3 in _specialVars) { if ((((((((((((((((((((((((((((((((((((_local3 == "ease")) || ((_local3 == "delay")))) || ((_local3 == "overwrite")))) || ((_local3 == "onComplete")))) || ((_local3 == "onCompleteParams")))) || ((_local3 == "runBackwards")))) || ((_local3 == "visible")))) || ((_local3 == "autoOverwrite")))) || ((_local3 == "persist")))) || ((_local3 == "onUpdate")))) || ((_local3 == "onUpdateParams")))) || ((_local3 == "autoAlpha")))) || ((_local3 == "onStart")))) || ((_local3 == "onStartParams")))) || ((_local3 == "renderOnStart")))) || ((_local3 == "proxiedEase")))) || ((_local3 == "easeParams")))) || (((_arg1) && (!((_arg2.indexOf(((" " + _local3) + " ")) == -1))))))){ } else { if (((!(((_isDisplayObject) && ((((((_local3 == "tint")) || ((_local3 == "removeTint")))) || ((_local3 == "frame"))))))) && (!((((_local3 == "volume")) && (this.target.hasOwnProperty("soundTransform"))))))){ if (typeof(_specialVars[_local3]) == "number"){ this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], (_specialVars[_local3] - this.target[_local3]), _local3]; } else { this.tweens[this.tweens.length] = [this.target, _local3, this.target[_local3], Number(_specialVars[_local3]), _local3]; }; }; }; }; }; if (this.vars.runBackwards == true){ _local4 = (this.tweens.length - 1); while (_local4 > -1) { _local8 = this.tweens[_local4]; _local8[2] = (_local8[2] + _local8[3]); _local8[3] = (_local8[3] * -1); _local4--; }; }; if (this.vars.onUpdate != null){ _hasUpdate = true; }; this.initted = true; } protected function easeProxy(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams))); } public function killVars(_arg1:Object):void{ if (overwriteManager.enabled){ overwriteManager.killVars(_arg1, this.vars, this.tweens, _subTweens, []); }; } public function complete(_arg1:Boolean=false):void{ if (!_arg1){ if (!this.initted){ initTweenVals(); }; this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale)); render(currentTime); return; }; if (this.vars.persist != true){ this.enabled = false; }; if (this.vars.onComplete != null){ this.vars.onComplete.apply(null, this.vars.onCompleteParams); }; } public static function frameProxy(_arg1:Object, _arg2:Number=0):void{ _arg1.info.target.gotoAndStop(Math.round(_arg1.target.frame)); } public static function removeTween(_arg1:TweenLite, _arg2:Boolean=true):void{ if (_arg1 != null){ if (_arg2){ _arg1.clear(); }; _arg1.enabled = false; }; } public static function visibleProxy(_arg1:Object, _arg2:Number):void{ var _local3:TweenLite = _arg1.info.tween; if (_local3.duration == _arg2){ if (((!((_local3.vars.runBackwards == true))) && ((_local3.ease == _local3.vars.ease)))){ _local3.target.visible = _local3.vars.visible; }; } else { if (_local3.target.visible != true){ _local3.target.visible = true; }; }; } public static function killTweensOf(_arg1:Object=null, _arg2:Boolean=false):void{ var _local3:Array; var _local4:int; var _local5:TweenLite; if (((!((_arg1 == null))) && (!((masterList[_arg1] == undefined))))){ _local3 = masterList[_arg1]; _local4 = (_local3.length - 1); while (_local4 > -1) { _local5 = _local3[_local4]; if (((_arg2) && (!(_local5.gc)))){ _local5.complete(false); }; _local5.clear(); _local4--; }; delete masterList[_arg1]; }; } public static function updateAll(_arg1:Event=null):void{ var _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = masterList; for each (_local4 in _local3) { _local5 = (_local4.length - 1); while (_local5 > -1) { _local6 = _local4[_local5]; if (_local6 == null){ } else { if (_local6.active){ _local6.render(_local2); } else { if (_local6.gc){ _local4.splice(_local5, 1); } else { if (_local2 >= _local6.startTime){ _local6.activate(); _local6.render(_local2); }; }; }; }; _local5--; }; }; } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null):TweenLite{ return (new TweenLite(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, overwrite:0})); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ _arg3.runBackwards = true; return (new TweenLite(_arg1, _arg2, _arg3)); } public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function tintProxy(_arg1:Object, _arg2:Number=0):void{ var _local3:Number = _arg1.target.progress; var _local4:Number = (1 - _local3); var _local5:Object = _arg1.info.color; var _local6:Object = _arg1.info.endColor; _arg1.info.target.transform.colorTransform = new ColorTransform(((_local5.redMultiplier * _local4) + (_local6.redMultiplier * _local3)), ((_local5.greenMultiplier * _local4) + (_local6.greenMultiplier * _local3)), ((_local5.blueMultiplier * _local4) + (_local6.blueMultiplier * _local3)), ((_local5.alphaMultiplier * _local4) + (_local6.alphaMultiplier * _local3)), ((_local5.redOffset * _local4) + (_local6.redOffset * _local3)), ((_local5.greenOffset * _local4) + (_local6.greenOffset * _local3)), ((_local5.blueOffset * _local4) + (_local6.blueOffset * _local3)), ((_local5.alphaOffset * _local4) + (_local6.alphaOffset * _local3))); } public static function volumeProxy(_arg1:Object, _arg2:Number=0):void{ _arg1.info.target.soundTransform = _arg1.target; } protected static function killGarbage(_arg1:TimerEvent):void{ var _local3:Object; var _local4:Array; var _local2:Dictionary = masterList; for (_local3 in _local2) { if (_local2[_local3].length == 0){ delete _local2[_local3]; }; }; } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenLite{ return (new TweenLite(_arg1, _arg2, _arg3)); } } }//package gs
Section 118
//EventSender (lib.events.EventSender) package lib.events { public class EventSender { private var _listeners:Array; private var _type:Class; public function EventSender(_arg1:Class=null){ _listeners = []; super(); _type = _arg1; } public function sendEvent(_arg1:Object=null):void{ var _local3:Function; if ((((_type == null)) || ((_arg1 is _type)))){ if (arguments.length == 0){ for each (_local3 in _listeners) { _local3(); }; } else { for each (_local3 in _listeners) { _local3(_arg1); }; }; } else { throw (new TypeError("The eventObject has incorrect event type!")); }; } public function addListener(_arg1:Function):void{ if (!hasListener(_arg1)){ _listeners.push(_arg1); } else { throw (new Error("List already contain such listener")); }; } public function setListener(_arg1:Function):void{ _listeners = [_arg1]; } public function removeListener(_arg1:Function):void{ if (hasListener(_arg1)){ _listeners.splice(_listeners.indexOf(_arg1), 1); } else { throw (new Error("List doesn't contain such listener")); }; } public function removeListeners():void{ _listeners = []; } public function hasListeners():Boolean{ return ((_listeners.length > 0)); } public function hasListener(_arg1:Function):Boolean{ return ((_listeners.indexOf(_arg1) >= 0)); } } }//package lib.events
Section 119
//StringUtil (lib.utils.StringUtil) package lib.utils { public class StringUtil { public static const EMPTY_CHARS:String = (" \t\r\n\f" + String.fromCharCode(160)); public static function trim(_arg1:String):String{ if (_arg1 == null){ return (""); }; var _local2:int; var _local3:int = (_arg1.length - 1); var _local4:int = _arg1.length; while ((((_local2 < _local4)) && ((EMPTY_CHARS.indexOf(_arg1.charAt(_local2)) >= 0)))) { _local2++; }; while ((((_local3 > 0)) && ((EMPTY_CHARS.indexOf(_arg1.charAt(_local3)) >= 0)))) { _local3--; }; return (((_local3)>=_local2) ? _arg1.slice(_local2, (_local3 + 1)) : ""); } public static function format(_arg1:String, ... _args):String{ var _local3:int = _args.length; var _local4:int; while (_local4 < _args.length) { _arg1 = _arg1.replace(new RegExp((("\\{" + _local4) + "\\}"), "g"), _args[_local4]); _local4++; }; return (_arg1); } public static function replaceChars(_arg1:String, _arg2:Array, _arg3:Array):String{ var _local6:int; var _local4 = ""; var _local5:int; while (_local5 < _arg1.length) { _local6 = _arg2.indexOf(_arg1.charAt(_local5)); if (_local6 != -1){ _local4 = (_local4 + _arg3[_local6]); } else { _local4 = (_local4 + _arg1.charAt(_local5)); }; _local5++; }; return (_local4); } public static function isBlankString(_arg1:String):Boolean{ var _local2:int; while (_local2 <= _arg1.length) { if (EMPTY_CHARS.indexOf(_arg1.charAt(_local2)) < 0){ return (false); }; _local2++; }; return (true); } } }//package lib.utils
Section 120
//GlobalEvent (lt.uza.events.GlobalEvent) package lt.uza.events { import flash.events.*; public class GlobalEvent extends Event { public var property; public static const PROPERTY_CHANGED:String = "globalPropertyChanged"; public function GlobalEvent(_arg1:String, _arg2, _arg3:Boolean=false, _arg4:Boolean=false){ this.property = _arg2; super(_arg1, _arg3, _arg4); } override public function clone():Event{ return (new GlobalEvent(type, property, bubbles, cancelable)); } } }//package lt.uza.events
Section 121
//ToolBar (lt.uza.utils.console.ToolBar) package lt.uza.utils.console { import flash.events.*; import flash.display.*; import lt.uza.utils.*; import flash.geom.*; public class ToolBar extends Sprite { private var drag:Boolean;// = false private var bg:Sprite; private var console:Console; private var marker:Sprite; public function ToolBar(_arg1:Console){ bg = new Sprite(); marker = new Sprite(); super(); console = _arg1; addChild(bg); bg.graphics.beginFill(0, 0.9); bg.graphics.drawRect(0, 0, _arg1.stage.stageWidth, 10); bg.graphics.endFill(); marker.graphics.beginFill(0, 0.9); marker.graphics.drawRect(0, 0, _arg1.stage.stageWidth, 10); marker.graphics.endFill(); bg.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); _arg1.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); } private function onMouseUp(_arg1:MouseEvent):void{ if (drag){ marker.stopDrag(); console.setHeight(marker.y); console.stage.removeChild(marker); }; drag = false; } private function onMouseDown(_arg1:MouseEvent):void{ marker.startDrag(false, new Rectangle(0, 0, 0, (console.stage.stageHeight - this.height))); console.stage.addChild(marker); marker.y = (console.stage.mouseY - this.mouseY); drag = true; } } }//package lt.uza.utils.console
Section 122
//Console (lt.uza.utils.Console) package lt.uza.utils { import flash.events.*; import flash.display.*; import flash.text.*; import flash.system.*; import lt.uza.utils.console.*; import flash.utils.*; import flash.geom.*; import flash.ui.*; import flash.profiler.*; public class Console extends Sprite { private var msk:Sprite; private var masked:Sprite; private var f2:TextFormat; private var f3:TextFormat; private var f1:TextFormat; private var bar:ToolBar; private var history:ArrayedQueue; private var functions:HashMap; private var $:GlobalC; private var linecount:int;// = 0 private var f_trace:TextFormat; private var historyID:int;// = 0 private var background:Sprite; private var fpsWin:FpsWin; private var enabled:Boolean; private var input:TextField; private var console:TextField; private var shoeRedrawRegions:Boolean;// = false private var fps:Boolean;// = false private var cHeight:Number;// = 120 private var numbering:TextField; public function Console(){ $ = GlobalC.init(); background = new Sprite(); msk = new Sprite(); masked = new Sprite(); console = new TextField(); input = new TextField(); numbering = new TextField(); f1 = new TextFormat(); f2 = new TextFormat(); f3 = new TextFormat(); f_trace = new TextFormat(); functions = new HashMap(); history = new ArrayedQueue(2); super(); var _local1:Stage = ($.stage as Stage); _local1.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); _local1.addEventListener(Event.RESIZE, onResize); _local1.addChild(this); $.trace = trace; disable(); this.addChild(background); this.addChild(input); this.addChild(masked); masked.addChild(console); masked.addChild(numbering); bar = new ToolBar(this); this.addChild(bar); setHeight(120); setUpTextfields(); redraw(); this.trace("Type \"-help\" for a list of available commands"); } public function enable():void{ this.visible = true; enabled = true; } private function scrollDown():void{ if ((console.y + console.height) > background.height){ console.y = (console.y - 56); numbering.y = (numbering.y - 56); }; } private function exec():void{ var _local1:Array = input.text.substr(2, input.text.length).split(" "); var _local2:String = _local1[0]; var _local3:String = _local1[1]; var _local4:String = _local1[2]; var _local5:String = _local1[3]; switch (_local2){ case "-c": case "-clear": console.text = ""; numbering.text = ""; linecount = 0; this.trace("Type \"-help\" for a list of available commands"); break; case "-h": case "-help": write(); this.trace(""); this.trace(" Available Commands "); this.trace("------------------------------------------------------------------------------------------------------------------------"); this.trace(" -fps show fps and used memory"); this.trace(" -srr show redraw regions"); this.trace(" -framerate [value] set frame rate"); this.trace(" -help (or -h) displays this information"); this.trace(" -clear (or -c) clears the list"); this.trace(" -global returns a list of items in global storage"); this.trace(" -get [key] returns a value of a global key"); this.trace(" -set [key] [value] [type] sets a value for a global key"); this.trace(" -delete [key] deletes a key"); this.trace(" -hello copyright notice"); this.trace(" -sys gets system information"); this.trace(""); this.trace(" You can also access *registered* functions by typing in the associated command (without \"-\" sign)"); this.trace(""); this.trace(" Types: Number, int, uint, Object, Array, Boolean, XML"); this.trace(" Use \"PageUp\" & \"PageDown\" on the keyboard to scroll the list"); this.trace(""); break; case "-global": write(); this.trace($); break; case "-s": setParam(_local3); break; case "-get": if (_local3){ if ($.containsKey(_local3)){ this.trace(typeof($[_local3])); this.trace(((_local3 + " : ") + $[_local3])); } else { this.trace("please enter key name"); }; }; break; case "-srr": shoeRedrawRegions = !(shoeRedrawRegions); showRedrawRegions(shoeRedrawRegions); break; case "-set": if (((((_local3) && (_local4))) && (_local5))){ switch (_local5){ case "Number": $[_local3] = Number(_local4); break; case "int": $[_local3] = int(_local4); break; case "uint": $[_local3] = uint(_local4); break; case "Object": $[_local3] = Object(_local4); break; case "Array": $[_local3] = _local4.split(","); break; case "Boolean": $[_local3] = Boolean(_local4); break; case "XML": $[_local3] = XML(_local4); break; default: $[_local3] = _local4; break; }; this.trace(((_local3 + " has been set to ") + _local4)); } else { this.trace("please enter key / value / type"); }; break; case "-delete": if (_local3){ $.remove(_local3); this.trace((_local3 + " has been deleted")); }; break; case "-hello": write(); this.trace("Hello from AS3Console (1.1), Copyright Paulius Uza 2007 - http://www.uza.lt"); break; case "-sys": write(); this.trace(""); this.trace(" System Information "); this.trace("------------------------------------------------------------------------------------------------------------------------"); this.trace((" Language: " + Capabilities.language)); this.trace((" OS: " + Capabilities.os)); this.trace((" Pixel aspect ratio: " + Capabilities.pixelAspectRatio)); this.trace((" Player type: " + Capabilities.playerType)); this.trace((" Screen DPI: " + Capabilities.screenDPI)); this.trace((((" Screen resolution: " + Capabilities.screenResolutionX) + " x ") + Capabilities.screenResolutionY)); this.trace((" Version: " + Capabilities.version)); this.trace((" Debugger: " + Capabilities.isDebugger)); this.trace(""); this.trace(((" Memory usage: " + (System.totalMemory / 0x0400)) + " Kb")); this.trace(""); break; case "-fps": showFps(); break; case "-framerate": if (_local3){ this.stage.frameRate = parseFloat(_local3); }; break; default: write(); if (_local2 != ""){ if (functions.containsKey(_local2)){ if (!_local3){ var _local6 = functions; _local6[_local2](); } else { _local6 = functions; _local6[_local2](_local3.split(",")); }; } else { this.trace((_local2 + ": command not recognized")); }; }; break; }; historyAdd(input.text); historyID = -1; input.text = "] "; update(); } private function setUpTextfields():void{ f1.font = "_sans"; f1.color = 0xFCC000; f1.bold = true; f1.size = 11; input.type = "dynamic"; input.multiline = false; input.defaultTextFormat = f1; input.text = "] "; f2.font = "_sans"; f2.color = 8439036; f2.bold = false; f2.size = 11; console.type = "dynamic"; console.multiline = true; console.autoSize = TextFieldAutoSize.LEFT; console.defaultTextFormat = f2; console.setTextFormat(f2); f3.font = "_sans"; f3.color = 0x555555; f3.size = 11; f3.bold = false; f3.align = "right"; numbering.type = "dynamic"; numbering.selectable = false; numbering.multiline = true; numbering.autoSize = TextFieldAutoSize.RIGHT; numbering.defaultTextFormat = f3; numbering.x = 36; f_trace.font = "_sans"; f_trace.color = 0xCCCCCC; f_trace.size = 11; f_trace.bold = false; } public function setHeight(_arg1:Number):void{ cHeight = _arg1; bar.y = _arg1; this.scrollRect = new Rectangle(0, 0, stage.stageWidth, (_arg1 + bar.height)); redraw(); } public function register(_arg1:Function, _arg2:String):void{ functions.put(_arg2, _arg1); } private function showFps():void{ if (!fps){ fpsWin = new FpsWin(); stage.addChild(fpsWin); } else { fpsWin.destroy(); }; fps = !(fps); } public function unregister(_arg1):void{ if (getQualifiedSuperclassName(_arg1) == "Function"){ functions.remove(functions.getKey(_arg1)); } else { functions.remove(_arg1); }; } private function onKeyDown(_arg1:KeyboardEvent):void{ var _local2 = ""; if (_arg1.charCode != 0){ if (_arg1.ctrlKey){ _local2 = (_local2 + "CTRL + "); }; if (_arg1.altKey){ _local2 = (_local2 + "ALT + "); }; if (_arg1.shiftKey){ _local2 = (_local2 + "SHIFT + "); }; _local2 = (_local2 + _arg1.charCode.toString()); }; if ((((((_arg1.keyCode == Keyboard.F2)) && (_arg1.ctrlKey))) && (_arg1.shiftKey))){ if (enabled){ disable(); } else { enable(); }; return; }; switch (_local2){ case "CTRL + SHIFT + 126": if (enabled){ disable(); } else { enable(); }; break; case "13": if (enabled){ exec(); }; break; case "8": if (((enabled) && ((input.text.length > 2)))){ input.text = input.text.substr(0, (input.text.length - 1)); }; break; case "27": if (enabled){ disable(); }; break; default: if (enabled){ if (_arg1.keyCode == 33){ scrollUp(); } else { if (_arg1.keyCode == 34){ scrollDown(); }; }; if (_arg1.keyCode == 38){ historyUp(); } else { if (_arg1.keyCode == 40){ historyDown(); }; }; input.appendText(String.fromCharCode(_arg1.charCode)); }; break; }; } public function trace(_arg1):void{ var _local2:String; linecount++; numbering.appendText((linecount + "\n")); if (_arg1 == null){ _local2 = "null"; } else { if (_arg1 == undefined){ _local2 = "undefined"; } else { _local2 = _arg1.toString(); }; }; var _local3 = (("] " + _local2) + "\n"); var _local4:int = console.length; var _local5:int = (_local4 + _local3.length); console.appendText(_local3); console.setTextFormat(f_trace, _local4, _local5); update(); } private function setParam(_arg1:String):void{ var s = _arg1; var ts:String = s.substring(0, s.indexOf("=")); var val:String = s.substring((s.indexOf("=") + 1)); var arr:Array = ts.split("."); var mainO:Object = getDefinitionByName(arr[0]); var i = 1; while (i < arr.length) { mainO = mainO[arr[i]]; i = (i + 1); }; try { this.trace(mainO); mainO = parseFloat(val); this.trace(mainO); } catch(e:Error) { this.trace(e.message); }; } private function historyUp():void{ if (historyID < (history.size - 1)){ historyID++; input.text = history.getAt(((history.size - 1) - historyID)); }; } private function update():void{ var _local1:RegExp; var _local2:RegExp; if (console.numLines >= 1000){ _local1 = /(^]\s.*\s*)/g; console.text = console.text.replace(_local1, ""); _local2 = /(^.*\s*)/g; numbering.text = numbering.text.replace(_local2, ""); }; console.y = ((background.height - console.textHeight) - 22); numbering.y = ((background.height - numbering.textHeight) - 22); } private function historyDown():void{ if (historyID > 0){ historyID--; input.text = history.getAt(((history.size - 1) - historyID)); }; } private function write():void{ linecount++; numbering.appendText((linecount + "\n")); var _local1 = (input.text + "\n"); var _local2:int = console.length; var _local3:int = (_local2 + _local1.length); console.appendText(_local1); console.setTextFormat(f2, _local2, _local3); } private function scrollUp():void{ if ((console.y + 56) <= background.height){ console.y = (console.y + 56); numbering.y = (numbering.y + 56); }; } public function disable():void{ this.visible = false; enabled = false; } private function historyAdd(_arg1:String):void{ if (history.size == (history.maxSize - 1)){ history.dequeue(); history.dispose(); history.enqueue(_arg1); } else { history.enqueue(_arg1); }; } private function onResize(_arg1:Event):void{ redraw(); } private function redraw():void{ var s:Stage = ($.stage as Stage); var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; var _local2 = background.graphics; with (_local2) { clear(); beginFill(0, 0.8); drawRect(0, 0, w, cHeight); endFill(); beginFill(0, 1); drawRect(0, 0, 40, cHeight); endFill(); }; _local2 = msk.graphics; with (_local2) { clear(); beginFill(0, 0.9); drawRect(0, 4, w, cHeight); endFill(); }; input.width = (w - 52); input.height = 18; input.x = 46; input.y = (background.height - 20); console.width = (w - 52); console.x = 46; console.y = 0; console.cacheAsBitmap = false; numbering.y = 0; numbering.cacheAsBitmap = false; msk.cacheAsBitmap = false; masked.mask = msk; update(); } } }//package lt.uza.utils class ArrayedQueue { private var _size:int; private var _que:Array; private var _front:int; private var _count:int; private var _divisor:int; private function ArrayedQueue(_arg1:int){ if (_arg1 < 3){ _arg1 = 3; }; _size = (1 << _arg1); _divisor = (_size - 1); clear(); } public function get size():int{ return (_count); } public function isEmpty():Boolean{ return ((_count == 0)); } public function get maxSize():int{ return (_size); } public function dispose():void{ if (!_front){ _que[int((_size - 1))] = null; } else { _que[int((_front - 1))] = null; }; } public function enqueue(_arg1):Boolean{ if (_size != _count){ _que[int(((_count++ + _front) & _divisor))] = _arg1; return (true); }; return (false); } public function getAt(_arg1:int){ if (_arg1 >= _count){ return (null); }; return (_que[int(((_arg1 + _front) & _divisor))]); } public function toString():String{ return ((("[ArrayedQueue, size=" + size) + "]")); } public function clear():void{ _que = new Array(_size); _front = (_count = 0); } public function contains(_arg1):Boolean{ var _local2:int; while (_local2 < _count) { if (_que[int(((_local2 + _front) & _divisor))] === _arg1){ return (true); }; _local2++; }; return (false); } public function setAt(_arg1:int, _arg2):void{ if (_arg1 >= _count){ return; }; _que[int(((_arg1 + _front) & _divisor))] = _arg2; } public function dequeue(){ var _local1:*; if (_count > 0){ _local1 = _que[_front++]; if (_front == _size){ _front = 0; }; _count--; return (_local1); }; return (null); } public function peek(){ return (_que[_front]); } }
Section 123
//FpsWin (lt.uza.utils.FpsWin) package lt.uza.utils { import flash.events.*; import flash.display.*; import flash.text.*; import flash.system.*; import flash.utils.*; public dynamic class FpsWin extends Sprite { private var s:int; private var timer:Timer; private var f1:TextFormat; private var f2:TextFormat; private var startTime:Number; private var fpsField:TextField; private var numFrames:Number;// = 0 private var memField:TextField; private var cnt:int;// = 0 private var t:int; public function FpsWin(){ f1 = new TextFormat(); f2 = new TextFormat(); timer = new Timer(500); startTime = getTimer(); super(); var _local2 = this.graphics; with (_local2) { beginFill(0, 0.7); drawRect(0, 0, 60, 40); endFill(); }; fpsField = new TextField(); memField = new TextField(); f1.font = "_sans"; f1.color = 0xCC00; f1.bold = true; f1.size = 11; f2.font = "_sans"; f2.color = 1035264; f2.bold = true; f2.size = 11; fpsField.type = "dynamic"; fpsField.multiline = false; fpsField.defaultTextFormat = f1; fpsField.text = ""; fpsField.selectable = false; memField.type = "dynamic"; memField.multiline = false; memField.defaultTextFormat = f2; memField.text = ""; memField.selectable = false; memField.y = 20; memField.x = 5; fpsField.x = 5; fpsField.y = 2; this.addChild(memField); this.addChild(fpsField); timer.addEventListener(TimerEvent.TIMER, onTick); this.addEventListener(Event.ENTER_FRAME, onEnterFrame); timer.start(); this.addEventListener(MouseEvent.MOUSE_DOWN, onDown); this.addEventListener(MouseEvent.MOUSE_UP, onUp); t = getTimer(); } private function onUp(_arg1:Event):void{ this.stopDrag(); } private function onTick(_arg1:Event):void{ memField.text = ((System.totalMemory / 0x0400) + " Kb"); } private function onDown(_arg1:Event):void{ this.startDrag(); } private function onEnterFrame(_arg1:Event):void{ s++; if (!(s = (s % stage.frameRate))){ fpsField.text = ((("fps: " + stage.frameRate) + "/") + Math.round(((stage.frameRate * 1000) / (getTimer() - t)))); t = getTimer(); }; } public function destroy():void{ timer.stop(); timer.removeEventListener(TimerEvent.TIMER, onTick); this.removeEventListener(Event.ENTER_FRAME, onEnterFrame); this.removeEventListener(MouseEvent.MOUSE_DOWN, onDown); this.removeEventListener(MouseEvent.MOUSE_UP, onUp); this.parent.removeChild(this); } } }//package lt.uza.utils
Section 124
//GlobalC (lt.uza.utils.GlobalC) package lt.uza.utils { import flash.events.*; import flash.display.*; import flash.utils.*; import lt.uza.events.*; public dynamic class GlobalC extends Proxy implements IEventDispatcher { private var globalRepository:HashMap; private var dispatcher:EventDispatcher; public var stage:Stage; private static var allowInstantiation:Boolean = false; public static var instance:GlobalC = null; public function GlobalC(){ if (getQualifiedClassName(this) == "lt.uza.utils::GlobalC"){ if (!allowInstantiation){ throw (new Error("Error: Instantiation failed: Use GlobalC.init() instead of new GlobalC().")); }; globalRepository = new HashMap(); dispatcher = new EventDispatcher(this); }; } public function containsKey(_arg1:String):Boolean{ var _local2:Boolean = globalRepository.containsKey(_arg1); return (_local2); } public function remove(_arg1:String):void{ globalRepository.remove(_arg1); } public function willTrigger(_arg1:String):Boolean{ return (dispatcher.willTrigger(_arg1)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ dispatcher.removeEventListener(_arg1, _arg2, _arg3); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function getProperty(_arg1){ return (globalRepository.getValue(_arg1)); } public function put(_arg1:String, _arg2):void{ globalRepository.put(_arg1, _arg2); } public function containsValue(_arg1):Boolean{ var _local2:Boolean = globalRepository.containsValue(_arg1); return (_local2); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function callProperty(_arg1, ... _args){ var _local3:*; switch (_arg1.toString()){ default: _local3 = globalRepository.getValue(_arg1).apply(globalRepository, _args); break; }; return (_local3); } public function take(_arg1){ return (globalRepository.getValue(_arg1)); } override "http://www.adobe.com/2006/actionscript/flash/proxy"?? function setProperty(_arg1, _arg2):void{ var _local3:* = globalRepository.getValue(_arg1); globalRepository.put(_arg1, _arg2); if (_local3 !== _arg2){ dispatchEvent(new GlobalEvent(GlobalEvent.PROPERTY_CHANGED, _arg1)); }; } public function dispatchEvent(_arg1:Event):Boolean{ return (dispatcher.dispatchEvent(_arg1)); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4); } public function get length():int{ var _local1:int = globalRepository.size(); return (_local1); } public function toString():String{ var _local2:*; var _local1:Array = new Array(); for (_local2 in globalRepository) { _local1.push((((("{" + _local2) + ":") + globalRepository[_local2]) + "}")); }; return (_local1.join(",")); } public function hasEventListener(_arg1:String):Boolean{ return (dispatcher.hasEventListener(_arg1)); } public static function init():GlobalC{ if (GlobalC.instance == null){ GlobalC.allowInstantiation = true; GlobalC.instance = new (GlobalC); GlobalC.allowInstantiation = false; }; return (GlobalC.instance); } } }//package lt.uza.utils
Section 125
//HashMap (lt.uza.utils.HashMap) package lt.uza.utils { import flash.utils.*; public dynamic class HashMap extends Dictionary implements IMap { public function HashMap(_arg1:Boolean=true){ super(_arg1); } public function containsKey(_arg1:String):Boolean{ return (!((this[_arg1] == null))); } public function size():int{ var _local2:String; var _local1:int; for (_local2 in this) { if (this[_local2] != null){ _local1++; }; }; return (_local1); } public function isEmpty():Boolean{ var _local2:String; var _local1:int; for (_local2 in this) { if (this[_local2] != null){ _local1++; }; }; return ((_local1 <= 0)); } public function remove(_arg1:String):void{ this[_arg1] = null; } public function clear():void{ var _local1:String; for (_local1 in this) { this[_local1] = null; }; } public function put(_arg1:String, _arg2):void{ this[_arg1] = _arg2; } public function getKey(_arg1):String{ var _local2:String; for (_local2 in this) { if (this[_local2] == _arg1){ return (_local2); }; }; return (null); } public function containsValue(_arg1):Boolean{ var _local2:String; for (_local2 in this) { if (this[_local2] == _arg1){ return (true); }; }; return (false); } public function getValue(_arg1:String){ if (this[_arg1] != null){ return (this[_arg1]); }; } } }//package lt.uza.utils
Section 126
//IMap (lt.uza.utils.IMap) package lt.uza.utils { public interface IMap { function containsKey(_arg1:String):Boolean; function size():int; function containsValue(_arg1):Boolean; function isEmpty():Boolean; function remove(_arg1:String):void; function getKey(_arg1):String; function getValue(_arg1:String); function clear():void; function put(_arg1:String, _arg2):void; } }//package lt.uza.utils
Section 127
//LevelTimer (model.LevelTimer) package model { import flash.utils.*; public class LevelTimer { private var beginTime:int;// = 0 public function start():void{ beginTime = getTimer(); } public function get currentTime():int{ return ((getTimer() - beginTime)); } } }//package model
Section 128
//Messages (model.Messages) package model { import flash.events.*; import flash.display.*; public class Messages { private var _pointsSt:Array; private var stage:Stage; private var _continueSt:Array; private var _modeSt:Array; private var lan:int; private var _enterSt:Array; private var _creditsSt:Array; private var _easySt:Array; private var _timeSt:Array; private var _moreGamesSt:Array; private var _newGameSt:Array; private var _menuSt:Array; private var _levelSt:Array; private var _backSt:Array; private var _hardSt:Array; private var _nextLevelSt:Array; private var _passwordFor45levelSt:Array; private var _playAgainSt:Array; private var _skipSt:Array; private var _enterLevelPasswordSt:Array; private var _playWithBonusLevelsSt:Array; private var _pressSpaceButtonSt:Array; public static const LANGUAGE_CHANGE:String = "gamelanguage_change"; public function Messages(){ _continueSt = ["continue", "continueCn", "continueJap", "continuar o jogo", "continuar el juego", "poursuivre", "kontynuacja gry", "продолжить игру", "Weiterspielen", "продовжити гру"]; _newGameSt = ["new game", "newGameCn", "newGameJap", "jogo novo", "juego nuevo", "nouveau jeu", "nowa gra", "новая игра", "Neues Spiel", "нова гра"]; _creditsSt = ["credits", "creditsCn", "creditsJap", "elaboradores", "elaboradores", "réalisateurs", "opracowanie", "разработчики", "Entwickelt von", "розробники"]; _moreGamesSt = ["more games", "moreGamesCn", "moreGamesJap", "mais jogos", "más juegos", "plus de jeux", "więcej gier", "больше игр", "Weitere Spiele", "більше ігор"]; _backSt = ["back", "backCn", "backJap", "voltar", "volver", "revenir", "powrót", "вернуться", "Zurück", "повернутися"]; _enterSt = ["enter", "enter", "enter", "enter", "enter", "enter", "enter", "enter", "enter", "enter"]; _enterLevelPasswordSt = ["enter level password", "enterLevelPasswordCn", "enterLevelPasswordJap", "digitar a sua senha", "introducir su contraseña", "entrer votre mot de passe", "wprowadź hasło", "введи пароль", "Geben Sie Ihr Passwort", "введіть пароль"]; _passwordFor45levelSt = ["password for 45 level", "passwordFor45levelCn", "passwordFor45levelJap", "senha para 45 níveis", "contraseña para 45 niveles", "mot de passe pour 45 niveaux", "hasło do 45 poziomu", "пароль для 45 уровня", "Passwort zu 45 Ebenen", "пароль дла 45 рівня"]; _skipSt = ["skip", "skipCn", "skipJap", "omitir", "omitir", "omettre", "opuścić", "пропустить", "auslassen", "пропуcтити"]; _levelSt = ["level:", "levelCn:", "levelJap:", "nível:", "nivel:", "niveau:", "poziom:", "уровень:", "ebene:", "рівень:"]; _pointsSt = ["points:", "pointsCn", "pointsJap", "pontos:", "puntos:", "points:", "punkty:", "балы:", "Punkte:", "бали:"]; _timeSt = ["time:", "timeCn:", "timeJap:", "hora:", "hora:", "temps:", "czas:", "время:", "Zeit:", "час:"]; _menuSt = ["menu", "menuCn", "menuJap", "menú", "menú", "menu", "menu", "меню", "Menü", "меню"]; _pressSpaceButtonSt = ["press Enter or SpaceBar ", "pressSpaceButtonfor next levelCn", "pressSpaceButtonfor next levelJap", "apreta Enter ou Spacebar", "aprieta Enter o Spacebar", "appuie Entrer ou Espace", "naciśnij Enter lub spację", "жми Enter или пробел", "Enter oder Spacebar drücken", "натисніть Enter або Spacebar"]; _nextLevelSt = ["next level", "nextLevelCn", "nextLevelJap", "o nível seguinte", "el nivel siguiente", "niveau suivant", "kolejny poziom", "следующий уровень", "Nächste Ebene", "наступний рівень"]; _playAgainSt = ["play again", "playAgainCn", "playAgainJap", "jogar de novo", "jugar de nuevo", "jouer de nouveau", "kolejna gra", "начать игру", "Noch mal Spielen", "грати спочатку"]; _playWithBonusLevelsSt = ["bonus levels", "playWithBonusLevelsCn", "playWithBonusLevelsJap", "gratificação nível", "bonificación nivel", "niveau bonus", "poziom premii", "бонусные уровни", "Bonus-Niveau", "бонусні рівні"]; _modeSt = ["mode", "modeCn", "modeJap", "nível de complexidade", "nivel de complejidad", "niveau de complexité", "poziom trudności", "уровень сложности", "Schwierigkeitsgrad", "рівень складності"]; _easySt = ["normal", "easyCn", "easyJap", "normal", "normal", "normal", "normalny", "нормальный", "normal", "нормальний"]; _hardSt = ["hard", "hardCn", "hardJap", "duras", "duro", "difficile", "trudne", "трудный", "hart", "важкий"]; super(); } public function get enterLevelPasswordSt():String{ return (_enterLevelPasswordSt[lan]); } public function get playAgainSt():String{ return (_playAgainSt[lan]); } public function init(_arg1:Stage):void{ stage = _arg1; } public function get nextLevelSt():String{ return (_nextLevelSt[lan]); } public function get levelSt():String{ return (_levelSt[lan]); } public function get creditsSt():String{ return (_creditsSt[lan]); } public function get menuSt():String{ return (_menuSt[lan]); } public function get pointsSt():String{ return (_pointsSt[lan]); } public function get easySt():String{ return (_easySt[lan]); } public function get backSt():String{ return (_backSt[lan]); } public function get hardSt():String{ return (_hardSt[lan]); } public function get timeSt():String{ return (_timeSt[lan]); } public function get newGameSt():String{ return (_newGameSt[lan]); } public function get skipSt():String{ return (_skipSt[lan]); } public function get pressSpaceButtonSt():String{ return (_pressSpaceButtonSt[lan]); } public function get enterSt():String{ return (_enterSt[lan]); } public function setLanguage(_arg1:int):void{ lan = _arg1; stage.dispatchEvent(new Event(_slot1.LANGUAGE_CHANGE)); } public function get modeSt():String{ return (_modeSt[lan]); } public function get moreGamesSt():String{ return (_moreGamesSt[lan]); } public function get continueSt():String{ return (_continueSt[lan]); } public function get playWithBonusLevelsSt():String{ return (_playWithBonusLevelsSt[lan]); } public function get passwordFor45levelSt():String{ return (_passwordFor45levelSt[lan]); } } }//package model
Section 129
//PhysicsData (model.PhysicsData) package model { public dynamic class PhysicsData { public var moment:Number; public var friction:Number;// = -1 public var damping:Number;// = 10 public var width:Number;// = 640 public var maxForce:Number; public var gravitation:Number; public var buttonType:String; public var target:String; public var isActive; public var restLength:Number; public var windSpeed:Number;// = 0 public var density:Number;// = -1 public var rotationSpeed:Number;// = 0 public var restitution:Number;// = -1 public var force:Number; public var height:Number;// = 420 public var delayTime:Number; public var maxImpulse:Number;// = INF public var material:String; public var maxMass:Number;// = INF public var endPos:Number; public var type:String;// = "static" public var bodyType:String; public var stiffness:Number;// = 200 } }//package model
Section 130
//UserData (model.UserData) package model { public class UserData { public var levelsPass:Array; public var levelTimes:Array; public var points:Number;// = 0 public var levelPoints:Array; public var soundMute:Boolean;// = false public var lastLevel:int;// = 1 public var userName:String;// = "user" public function UserData(_arg1:Object=null){ var _local2:int; levelTimes = new Array(); levelPoints = new Array(); levelsPass = [true]; super(); if (_arg1){ if (_arg1.levelTimes){ levelTimes = _arg1.levelTimes; }; if (_arg1.lastLevel){ lastLevel = _arg1.lastLevel; }; if (_arg1.points){ points = _arg1.points; }; if (_arg1.soundMute){ soundMute = _arg1.soundMute; }; if (_arg1.userName){ userName = _arg1.userName; }; if (_arg1.levelPoints){ levelPoints = _arg1.levelPoints; }; if (_arg1.levelsPass){ levelsPass = _arg1.levelsPass; } else { _local2 = 0; while (_local2 < 50) { levelsPass[_local2] = false; _local2++; }; levelsPass[0] = true; }; }; } } }//package model
Section 131
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.2.0.3958"; } }//package mx.core
Section 132
//EdgeMetrics (mx.core.EdgeMetrics) package mx.core { public class EdgeMetrics { public var top:Number; public var left:Number; public var bottom:Number; public var right:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public static const EMPTY:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); ; public function EdgeMetrics(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.left = _arg1; this.top = _arg2; this.right = _arg3; this.bottom = _arg4; } public function clone():EdgeMetrics{ return (new EdgeMetrics(left, top, right, bottom)); } } }//package mx.core
Section 133
//FlexLoader (mx.core.FlexLoader) package mx.core { import flash.display.*; import mx.utils.*; public class FlexLoader extends Loader { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexLoader(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 134
//FlexShape (mx.core.FlexShape) package mx.core { import flash.display.*; import mx.utils.*; public class FlexShape extends Shape { mx_internal static const VERSION:String = "3.2.0.3958"; public function FlexShape(){ super(); try { name = NameUtil.createUniqueName(this); } catch(e:Error) { }; } override public function toString():String{ return (NameUtil.displayObjectToString(this)); } } }//package mx.core
Section 135
//FlexVersion (mx.core.FlexVersion) package mx.core { import mx.resources.*; public class FlexVersion { public static const VERSION_2_0_1:uint = 33554433; public static const CURRENT_VERSION:uint = 50331648; public static const VERSION_3_0:uint = 50331648; public static const VERSION_2_0:uint = 33554432; public static const VERSION_ALREADY_READ:String = "versionAlreadyRead"; public static const VERSION_ALREADY_SET:String = "versionAlreadySet"; mx_internal static const VERSION:String = "3.2.0.3958"; private static var compatibilityVersionChanged:Boolean = false; private static var _compatibilityErrorFunction:Function; private static var _compatibilityVersion:uint = 50331648; private static var compatibilityVersionRead:Boolean = false; mx_internal static function changeCompatibilityVersionString(_arg1:String):void{ var _local2:Array = _arg1.split("."); var _local3:uint = parseInt(_local2[0]); var _local4:uint = parseInt(_local2[1]); var _local5:uint = parseInt(_local2[2]); _compatibilityVersion = (((_local3 << 24) + (_local4 << 16)) + _local5); } public static function set compatibilityVersion(_arg1:uint):void{ var _local2:String; if (_arg1 == _compatibilityVersion){ return; }; if (compatibilityVersionChanged){ if (compatibilityErrorFunction == null){ _local2 = ResourceManager.getInstance().getString("core", VERSION_ALREADY_SET); throw (new Error(_local2)); }; compatibilityErrorFunction(_arg1, VERSION_ALREADY_SET); }; if (compatibilityVersionRead){ if (compatibilityErrorFunction == null){ _local2 = ResourceManager.getInstance().getString("core", VERSION_ALREADY_READ); throw (new Error(_local2)); }; compatibilityErrorFunction(_arg1, VERSION_ALREADY_READ); }; _compatibilityVersion = _arg1; compatibilityVersionChanged = true; } public static function get compatibilityVersion():uint{ compatibilityVersionRead = true; return (_compatibilityVersion); } public static function set compatibilityErrorFunction(_arg1:Function):void{ _compatibilityErrorFunction = _arg1; } public static function set compatibilityVersionString(_arg1:String):void{ var _local2:Array = _arg1.split("."); var _local3:uint = parseInt(_local2[0]); var _local4:uint = parseInt(_local2[1]); var _local5:uint = parseInt(_local2[2]); compatibilityVersion = (((_local3 << 24) + (_local4 << 16)) + _local5); } public static function get compatibilityErrorFunction():Function{ return (_compatibilityErrorFunction); } public static function get compatibilityVersionString():String{ var _local1:uint = ((compatibilityVersion >> 24) & 0xFF); var _local2:uint = ((compatibilityVersion >> 16) & 0xFF); var _local3:uint = (compatibilityVersion & 0xFFFF); return (((((_local1.toString() + ".") + _local2.toString()) + ".") + _local3.toString())); } } }//package mx.core
Section 136
//IBorder (mx.core.IBorder) package mx.core { public interface IBorder { function get borderMetrics():EdgeMetrics; } }//package mx.core
Section 137
//IButton (mx.core.IButton) package mx.core { public interface IButton extends IUIComponent { function get emphasized():Boolean; function set emphasized(_arg1:Boolean):void; function callLater(_arg1:Function, _arg2:Array=null):void; } }//package mx.core
Section 138
//IChildList (mx.core.IChildList) package mx.core { import flash.display.*; import flash.geom.*; public interface IChildList { function get numChildren():int; function removeChild(_arg1:DisplayObject):DisplayObject; function getChildByName(_arg1:String):DisplayObject; function removeChildAt(_arg1:int):DisplayObject; function getChildIndex(_arg1:DisplayObject):int; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function getObjectsUnderPoint(_arg1:Point):Array; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function getChildAt(_arg1:int):DisplayObject; function addChild(_arg1:DisplayObject):DisplayObject; function contains(_arg1:DisplayObject):Boolean; } }//package mx.core
Section 139
//IContainer (mx.core.IContainer) package mx.core { import flash.display.*; import flash.geom.*; import flash.media.*; import mx.managers.*; import flash.text.*; public interface IContainer extends IUIComponent { function set hitArea(_arg1:Sprite):void; function swapChildrenAt(_arg1:int, _arg2:int):void; function getChildByName(_arg1:String):DisplayObject; function get doubleClickEnabled():Boolean; function get graphics():Graphics; function get useHandCursor():Boolean; function addChildAt(_arg1:DisplayObject, _arg2:int):DisplayObject; function set mouseChildren(_arg1:Boolean):void; function set creatingContentPane(_arg1:Boolean):void; function get textSnapshot():TextSnapshot; function getChildIndex(_arg1:DisplayObject):int; function set doubleClickEnabled(_arg1:Boolean):void; function getObjectsUnderPoint(_arg1:Point):Array; function get creatingContentPane():Boolean; function setChildIndex(_arg1:DisplayObject, _arg2:int):void; function get soundTransform():SoundTransform; function set useHandCursor(_arg1:Boolean):void; function get numChildren():int; function contains(_arg1:DisplayObject):Boolean; function get verticalScrollPosition():Number; function set defaultButton(_arg1:IFlexDisplayObject):void; function swapChildren(_arg1:DisplayObject, _arg2:DisplayObject):void; function set horizontalScrollPosition(_arg1:Number):void; function get focusManager():IFocusManager; function startDrag(_arg1:Boolean=false, _arg2:Rectangle=null):void; function set mouseEnabled(_arg1:Boolean):void; function getChildAt(_arg1:int):DisplayObject; function set soundTransform(_arg1:SoundTransform):void; function get tabChildren():Boolean; function get tabIndex():int; function set focusRect(_arg1:Object):void; function get hitArea():Sprite; function get mouseChildren():Boolean; function removeChildAt(_arg1:int):DisplayObject; function get defaultButton():IFlexDisplayObject; function stopDrag():void; function set tabEnabled(_arg1:Boolean):void; function get horizontalScrollPosition():Number; function get focusRect():Object; function get viewMetrics():EdgeMetrics; function set verticalScrollPosition(_arg1:Number):void; function get dropTarget():DisplayObject; function get mouseEnabled():Boolean; function set tabChildren(_arg1:Boolean):void; function set buttonMode(_arg1:Boolean):void; function get tabEnabled():Boolean; function get buttonMode():Boolean; function removeChild(_arg1:DisplayObject):DisplayObject; function set tabIndex(_arg1:int):void; function addChild(_arg1:DisplayObject):DisplayObject; function areInaccessibleObjectsUnderPoint(_arg1:Point):Boolean; } }//package mx.core
Section 140
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 141
//IFlexDisplayObject (mx.core.IFlexDisplayObject) package mx.core { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.accessibility.*; public interface IFlexDisplayObject extends IBitmapDrawable, IEventDispatcher { function get visible():Boolean; function get rotation():Number; function localToGlobal(_arg1:Point):Point; function get name():String; function set width(_arg1:Number):void; function get measuredHeight():Number; function get blendMode():String; function get scale9Grid():Rectangle; function set name(_arg1:String):void; function set scaleX(_arg1:Number):void; function set scaleY(_arg1:Number):void; function get measuredWidth():Number; function get accessibilityProperties():AccessibilityProperties; function set scrollRect(_arg1:Rectangle):void; function get cacheAsBitmap():Boolean; function globalToLocal(_arg1:Point):Point; function get height():Number; function set blendMode(_arg1:String):void; function get parent():DisplayObjectContainer; function getBounds(_arg1:DisplayObject):Rectangle; function get opaqueBackground():Object; function set scale9Grid(_arg1:Rectangle):void; function setActualSize(_arg1:Number, _arg2:Number):void; function set alpha(_arg1:Number):void; function set accessibilityProperties(_arg1:AccessibilityProperties):void; function get width():Number; function hitTestPoint(_arg1:Number, _arg2:Number, _arg3:Boolean=false):Boolean; function set cacheAsBitmap(_arg1:Boolean):void; function get scaleX():Number; function get scaleY():Number; function get scrollRect():Rectangle; function get mouseX():Number; function get mouseY():Number; function set height(_arg1:Number):void; function set mask(_arg1:DisplayObject):void; function getRect(_arg1:DisplayObject):Rectangle; function get alpha():Number; function set transform(_arg1:Transform):void; function move(_arg1:Number, _arg2:Number):void; function get loaderInfo():LoaderInfo; function get root():DisplayObject; function hitTestObject(_arg1:DisplayObject):Boolean; function set opaqueBackground(_arg1:Object):void; function set visible(_arg1:Boolean):void; function get mask():DisplayObject; function set x(_arg1:Number):void; function set y(_arg1:Number):void; function get transform():Transform; function set filters(_arg1:Array):void; function get x():Number; function get y():Number; function get filters():Array; function set rotation(_arg1:Number):void; function get stage():Stage; } }//package mx.core
Section 142
//IFlexModuleFactory (mx.core.IFlexModuleFactory) package mx.core { public interface IFlexModuleFactory { function create(... _args):Object; function info():Object; } }//package mx.core
Section 143
//IInvalidating (mx.core.IInvalidating) package mx.core { public interface IInvalidating { function validateNow():void; function invalidateSize():void; function invalidateDisplayList():void; function invalidateProperties():void; } }//package mx.core
Section 144
//IProgrammaticSkin (mx.core.IProgrammaticSkin) package mx.core { public interface IProgrammaticSkin { function validateNow():void; function validateDisplayList():void; } }//package mx.core
Section 145
//IRawChildrenContainer (mx.core.IRawChildrenContainer) package mx.core { public interface IRawChildrenContainer { function get rawChildren():IChildList; } }//package mx.core
Section 146
//IRectangularBorder (mx.core.IRectangularBorder) package mx.core { import flash.geom.*; public interface IRectangularBorder extends IBorder { function get backgroundImageBounds():Rectangle; function get hasBackgroundImage():Boolean; function set backgroundImageBounds(_arg1:Rectangle):void; function layoutBackgroundImage():void; } }//package mx.core
Section 147
//IRepeaterClient (mx.core.IRepeaterClient) package mx.core { public interface IRepeaterClient { function get instanceIndices():Array; function set instanceIndices(_arg1:Array):void; function get isDocument():Boolean; function set repeaters(_arg1:Array):void; function initializeRepeaterArrays(_arg1:IRepeaterClient):void; function get repeaters():Array; function set repeaterIndices(_arg1:Array):void; function get repeaterIndices():Array; } }//package mx.core
Section 148
//ISWFBridgeGroup (mx.core.ISWFBridgeGroup) package mx.core { import flash.events.*; public interface ISWFBridgeGroup { function getChildBridgeProvider(_arg1:IEventDispatcher):ISWFBridgeProvider; function removeChildBridge(_arg1:IEventDispatcher):void; function get parentBridge():IEventDispatcher; function addChildBridge(_arg1:IEventDispatcher, _arg2:ISWFBridgeProvider):void; function set parentBridge(_arg1:IEventDispatcher):void; function containsBridge(_arg1:IEventDispatcher):Boolean; function getChildBridges():Array; } }//package mx.core
Section 149
//ISWFBridgeProvider (mx.core.ISWFBridgeProvider) package mx.core { import flash.events.*; public interface ISWFBridgeProvider { function get childAllowsParent():Boolean; function get swfBridge():IEventDispatcher; function get parentAllowsChild():Boolean; } }//package mx.core
Section 150
//IUIComponent (mx.core.IUIComponent) package mx.core { import flash.display.*; import mx.managers.*; public interface IUIComponent extends IFlexDisplayObject { function set focusPane(_arg1:Sprite):void; function get enabled():Boolean; function set enabled(_arg1:Boolean):void; function set isPopUp(_arg1:Boolean):void; function get explicitMinHeight():Number; function get percentWidth():Number; function get isPopUp():Boolean; function get owner():DisplayObjectContainer; function get percentHeight():Number; function get baselinePosition():Number; function owns(_arg1:DisplayObject):Boolean; function initialize():void; function get maxWidth():Number; function get minWidth():Number; function getExplicitOrMeasuredWidth():Number; function get explicitMaxWidth():Number; function get explicitMaxHeight():Number; function set percentHeight(_arg1:Number):void; function get minHeight():Number; function set percentWidth(_arg1:Number):void; function get document():Object; function get focusPane():Sprite; function getExplicitOrMeasuredHeight():Number; function set tweeningProperties(_arg1:Array):void; function set explicitWidth(_arg1:Number):void; function set measuredMinHeight(_arg1:Number):void; function get explicitMinWidth():Number; function get tweeningProperties():Array; function get maxHeight():Number; function set owner(_arg1:DisplayObjectContainer):void; function set includeInLayout(_arg1:Boolean):void; function setVisible(_arg1:Boolean, _arg2:Boolean=false):void; function parentChanged(_arg1:DisplayObjectContainer):void; function get explicitWidth():Number; function get measuredMinHeight():Number; function set measuredMinWidth(_arg1:Number):void; function set explicitHeight(_arg1:Number):void; function get includeInLayout():Boolean; function get measuredMinWidth():Number; function get explicitHeight():Number; function set systemManager(_arg1:ISystemManager):void; function set document(_arg1:Object):void; function get systemManager():ISystemManager; } }//package mx.core
Section 151
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 152
//Singleton (mx.core.Singleton) package mx.core { public class Singleton { mx_internal static const VERSION:String = "3.2.0.3958"; private static var classMap:Object = {}; public static function registerClass(_arg1:String, _arg2:Class):void{ var _local3:Class = classMap[_arg1]; if (!_local3){ classMap[_arg1] = _arg2; }; } public static function getClass(_arg1:String):Class{ return (classMap[_arg1]); } public static function getInstance(_arg1:String):Object{ var _local2:Class = classMap[_arg1]; if (!_local2){ throw (new Error((("No class registered for interface '" + _arg1) + "'."))); }; return (_local2["getInstance"]()); } } }//package mx.core
Section 153
//UIComponentGlobals (mx.core.UIComponentGlobals) package mx.core { import flash.display.*; import flash.geom.*; import mx.managers.*; public class UIComponentGlobals { mx_internal static var callLaterSuspendCount:int = 0; mx_internal static var layoutManager:ILayoutManager; mx_internal static var nextFocusObject:InteractiveObject; mx_internal static var designTime:Boolean = false; mx_internal static var tempMatrix:Matrix = new Matrix(); mx_internal static var callLaterDispatcherCount:int = 0; private static var _catchCallLaterExceptions:Boolean = false; public static function set catchCallLaterExceptions(_arg1:Boolean):void{ _catchCallLaterExceptions = _arg1; } public static function get designMode():Boolean{ return (designTime); } public static function set designMode(_arg1:Boolean):void{ designTime = _arg1; } public static function get catchCallLaterExceptions():Boolean{ return (_catchCallLaterExceptions); } } }//package mx.core
Section 154
//ModuleEvent (mx.events.ModuleEvent) package mx.events { import flash.events.*; import mx.core.*; import mx.modules.*; public class ModuleEvent extends ProgressEvent { public var errorText:String; private var _module:IModuleInfo; public static const READY:String = "ready"; public static const ERROR:String = "error"; public static const PROGRESS:String = "progress"; mx_internal static const VERSION:String = "3.2.0.3958"; public static const SETUP:String = "setup"; public static const UNLOAD:String = "unload"; public function ModuleEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null, _arg7:IModuleInfo=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; this._module = _arg7; } public function get module():IModuleInfo{ if (_module){ return (_module); }; return ((target as IModuleInfo)); } override public function clone():Event{ return (new ModuleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText, module)); } } }//package mx.events
Section 155
//ResourceEvent (mx.events.ResourceEvent) package mx.events { import flash.events.*; import mx.core.*; public class ResourceEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.2.0.3958"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function ResourceEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; } override public function clone():Event{ return (new ResourceEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 156
//StyleEvent (mx.events.StyleEvent) package mx.events { import flash.events.*; import mx.core.*; public class StyleEvent extends ProgressEvent { public var errorText:String; mx_internal static const VERSION:String = "3.2.0.3958"; public static const COMPLETE:String = "complete"; public static const PROGRESS:String = "progress"; public static const ERROR:String = "error"; public function StyleEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:uint=0, _arg5:uint=0, _arg6:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5); this.errorText = _arg6; } override public function clone():Event{ return (new StyleEvent(type, bubbles, cancelable, bytesLoaded, bytesTotal, errorText)); } } }//package mx.events
Section 157
//RectangularDropShadow (mx.graphics.RectangularDropShadow) package mx.graphics { import mx.core.*; import flash.display.*; import flash.geom.*; import mx.utils.*; import flash.filters.*; public class RectangularDropShadow { private var leftShadow:BitmapData; private var _tlRadius:Number;// = 0 private var _trRadius:Number;// = 0 private var _angle:Number;// = 45 private var topShadow:BitmapData; private var _distance:Number;// = 4 private var rightShadow:BitmapData; private var _alpha:Number;// = 0.4 private var shadow:BitmapData; private var _brRadius:Number;// = 0 private var _blRadius:Number;// = 0 private var _color:int;// = 0 private var bottomShadow:BitmapData; private var changed:Boolean;// = true mx_internal static const VERSION:String = "3.2.0.3958"; public function get blRadius():Number{ return (_blRadius); } public function set brRadius(_arg1:Number):void{ if (_brRadius != _arg1){ _brRadius = _arg1; changed = true; }; } public function set color(_arg1:int):void{ if (_color != _arg1){ _color = _arg1; changed = true; }; } public function drawShadow(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; if (changed){ createShadowBitmaps(); changed = false; }; _arg4 = Math.ceil(_arg4); _arg5 = Math.ceil(_arg5); var _local6:int = (leftShadow) ? leftShadow.width : 0; var _local7:int = (rightShadow) ? rightShadow.width : 0; var _local8:int = (topShadow) ? topShadow.height : 0; var _local9:int = (bottomShadow) ? bottomShadow.height : 0; var _local10:int = (_local6 + _local7); var _local11:int = (_local8 + _local9); var _local12:Number = ((_arg5 + _local11) / 2); var _local13:Number = ((_arg4 + _local10) / 2); var _local14:Matrix = new Matrix(); if (((leftShadow) || (topShadow))){ _local15 = Math.min((tlRadius + _local10), _local13); _local16 = Math.min((tlRadius + _local11), _local12); _local14.tx = (_arg2 - _local6); _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((_arg2 - _local6), (_arg3 - _local8), _local15, _local16); _arg1.endFill(); }; if (((rightShadow) || (topShadow))){ _local17 = Math.min((trRadius + _local10), _local13); _local18 = Math.min((trRadius + _local11), _local12); _local14.tx = (((_arg2 + _arg4) + _local7) - shadow.width); _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((((_arg2 + _arg4) + _local7) - _local17), (_arg3 - _local8), _local17, _local18); _arg1.endFill(); }; if (((leftShadow) || (bottomShadow))){ _local19 = Math.min((blRadius + _local10), _local13); _local20 = Math.min((blRadius + _local11), _local12); _local14.tx = (_arg2 - _local6); _local14.ty = (((_arg3 + _arg5) + _local9) - shadow.height); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((_arg2 - _local6), (((_arg3 + _arg5) + _local9) - _local20), _local19, _local20); _arg1.endFill(); }; if (((rightShadow) || (bottomShadow))){ _local21 = Math.min((brRadius + _local10), _local13); _local22 = Math.min((brRadius + _local11), _local12); _local14.tx = (((_arg2 + _arg4) + _local7) - shadow.width); _local14.ty = (((_arg3 + _arg5) + _local9) - shadow.height); _arg1.beginBitmapFill(shadow, _local14); _arg1.drawRect((((_arg2 + _arg4) + _local7) - _local21), (((_arg3 + _arg5) + _local9) - _local22), _local21, _local22); _arg1.endFill(); }; if (leftShadow){ _local14.tx = (_arg2 - _local6); _local14.ty = 0; _arg1.beginBitmapFill(leftShadow, _local14); _arg1.drawRect((_arg2 - _local6), ((_arg3 - _local8) + _local16), _local6, ((((_arg5 + _local8) + _local9) - _local16) - _local20)); _arg1.endFill(); }; if (rightShadow){ _local14.tx = (_arg2 + _arg4); _local14.ty = 0; _arg1.beginBitmapFill(rightShadow, _local14); _arg1.drawRect((_arg2 + _arg4), ((_arg3 - _local8) + _local18), _local7, ((((_arg5 + _local8) + _local9) - _local18) - _local22)); _arg1.endFill(); }; if (topShadow){ _local14.tx = 0; _local14.ty = (_arg3 - _local8); _arg1.beginBitmapFill(topShadow, _local14); _arg1.drawRect(((_arg2 - _local6) + _local15), (_arg3 - _local8), ((((_arg4 + _local6) + _local7) - _local15) - _local17), _local8); _arg1.endFill(); }; if (bottomShadow){ _local14.tx = 0; _local14.ty = (_arg3 + _arg5); _arg1.beginBitmapFill(bottomShadow, _local14); _arg1.drawRect(((_arg2 - _local6) + _local19), (_arg3 + _arg5), ((((_arg4 + _local6) + _local7) - _local19) - _local21), _local9); _arg1.endFill(); }; } public function get brRadius():Number{ return (_brRadius); } public function get angle():Number{ return (_angle); } private function createShadowBitmaps():void{ var _local1:Number = ((Math.max(tlRadius, blRadius) + (2 * distance)) + Math.max(trRadius, brRadius)); var _local2:Number = ((Math.max(tlRadius, trRadius) + (2 * distance)) + Math.max(blRadius, brRadius)); if ((((_local1 < 0)) || ((_local2 < 0)))){ return; }; var _local3:Shape = new FlexShape(); var _local4:Graphics = _local3.graphics; _local4.beginFill(0xFFFFFF); GraphicsUtil.drawRoundRectComplex(_local4, 0, 0, _local1, _local2, tlRadius, trRadius, blRadius, brRadius); _local4.endFill(); var _local5:BitmapData = new BitmapData(_local1, _local2, true, 0); _local5.draw(_local3, new Matrix()); var _local6:DropShadowFilter = new DropShadowFilter(distance, angle, color, alpha); _local6.knockout = true; var _local7:Rectangle = new Rectangle(0, 0, _local1, _local2); var _local8:Rectangle = _local5.generateFilterRect(_local7, _local6); var _local9:Number = (_local7.left - _local8.left); var _local10:Number = (_local8.right - _local7.right); var _local11:Number = (_local7.top - _local8.top); var _local12:Number = (_local8.bottom - _local7.bottom); shadow = new BitmapData(_local8.width, _local8.height); shadow.applyFilter(_local5, _local7, new Point(_local9, _local11), _local6); var _local13:Point = new Point(0, 0); var _local14:Rectangle = new Rectangle(); if (_local9 > 0){ _local14.x = 0; _local14.y = ((tlRadius + _local11) + _local12); _local14.width = _local9; _local14.height = 1; leftShadow = new BitmapData(_local9, 1); leftShadow.copyPixels(shadow, _local14, _local13); } else { leftShadow = null; }; if (_local10 > 0){ _local14.x = (shadow.width - _local10); _local14.y = ((trRadius + _local11) + _local12); _local14.width = _local10; _local14.height = 1; rightShadow = new BitmapData(_local10, 1); rightShadow.copyPixels(shadow, _local14, _local13); } else { rightShadow = null; }; if (_local11 > 0){ _local14.x = ((tlRadius + _local9) + _local10); _local14.y = 0; _local14.width = 1; _local14.height = _local11; topShadow = new BitmapData(1, _local11); topShadow.copyPixels(shadow, _local14, _local13); } else { topShadow = null; }; if (_local12 > 0){ _local14.x = ((blRadius + _local9) + _local10); _local14.y = (shadow.height - _local12); _local14.width = 1; _local14.height = _local12; bottomShadow = new BitmapData(1, _local12); bottomShadow.copyPixels(shadow, _local14, _local13); } else { bottomShadow = null; }; } public function get alpha():Number{ return (_alpha); } public function get color():int{ return (_color); } public function set angle(_arg1:Number):void{ if (_angle != _arg1){ _angle = _arg1; changed = true; }; } public function set trRadius(_arg1:Number):void{ if (_trRadius != _arg1){ _trRadius = _arg1; changed = true; }; } public function set tlRadius(_arg1:Number):void{ if (_tlRadius != _arg1){ _tlRadius = _arg1; changed = true; }; } public function get trRadius():Number{ return (_trRadius); } public function set distance(_arg1:Number):void{ if (_distance != _arg1){ _distance = _arg1; changed = true; }; } public function get distance():Number{ return (_distance); } public function get tlRadius():Number{ return (_tlRadius); } public function set alpha(_arg1:Number):void{ if (_alpha != _arg1){ _alpha = _arg1; changed = true; }; } public function set blRadius(_arg1:Number):void{ if (_blRadius != _arg1){ _blRadius = _arg1; changed = true; }; } } }//package mx.graphics
Section 158
//IFocusManager (mx.managers.IFocusManager) package mx.managers { import flash.events.*; import mx.core.*; import flash.display.*; public interface IFocusManager { function get focusPane():Sprite; function getFocus():IFocusManagerComponent; function deactivate():void; function set defaultButton(_arg1:IButton):void; function set focusPane(_arg1:Sprite):void; function set showFocusIndicator(_arg1:Boolean):void; function moveFocus(_arg1:String, _arg2:DisplayObject=null):void; function addSWFBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function removeSWFBridge(_arg1:IEventDispatcher):void; function get defaultButtonEnabled():Boolean; function findFocusManagerComponent(_arg1:InteractiveObject):IFocusManagerComponent; function get nextTabIndex():int; function get defaultButton():IButton; function get showFocusIndicator():Boolean; function setFocus(_arg1:IFocusManagerComponent):void; function activate():void; function showFocus():void; function set defaultButtonEnabled(_arg1:Boolean):void; function hideFocus():void; function getNextFocusManagerComponent(_arg1:Boolean=false):IFocusManagerComponent; } }//package mx.managers
Section 159
//IFocusManagerComponent (mx.managers.IFocusManagerComponent) package mx.managers { public interface IFocusManagerComponent { function set focusEnabled(_arg1:Boolean):void; function drawFocus(_arg1:Boolean):void; function setFocus():void; function get focusEnabled():Boolean; function get tabEnabled():Boolean; function get tabIndex():int; function get mouseFocusEnabled():Boolean; } }//package mx.managers
Section 160
//IFocusManagerContainer (mx.managers.IFocusManagerContainer) package mx.managers { import flash.events.*; import flash.display.*; public interface IFocusManagerContainer extends IEventDispatcher { function set focusManager(_arg1:IFocusManager):void; function get focusManager():IFocusManager; function get systemManager():ISystemManager; function contains(_arg1:DisplayObject):Boolean; } }//package mx.managers
Section 161
//ILayoutManager (mx.managers.ILayoutManager) package mx.managers { import flash.events.*; public interface ILayoutManager extends IEventDispatcher { function validateNow():void; function validateClient(_arg1:ILayoutManagerClient, _arg2:Boolean=false):void; function isInvalid():Boolean; function invalidateDisplayList(_arg1:ILayoutManagerClient):void; function set usePhasedInstantiation(_arg1:Boolean):void; function invalidateSize(_arg1:ILayoutManagerClient):void; function get usePhasedInstantiation():Boolean; function invalidateProperties(_arg1:ILayoutManagerClient):void; } }//package mx.managers
Section 162
//ILayoutManagerClient (mx.managers.ILayoutManagerClient) package mx.managers { import flash.events.*; public interface ILayoutManagerClient extends IEventDispatcher { function get updateCompletePendingFlag():Boolean; function set updateCompletePendingFlag(_arg1:Boolean):void; function set initialized(_arg1:Boolean):void; function validateProperties():void; function validateDisplayList():void; function get nestLevel():int; function get initialized():Boolean; function get processedDescriptors():Boolean; function validateSize(_arg1:Boolean=false):void; function set nestLevel(_arg1:int):void; function set processedDescriptors(_arg1:Boolean):void; } }//package mx.managers
Section 163
//ISystemManager (mx.managers.ISystemManager) package mx.managers { import flash.events.*; import mx.core.*; import flash.display.*; import flash.geom.*; import flash.text.*; public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModuleFactory { function set focusPane(_arg1:Sprite):void; function get toolTipChildren():IChildList; function useSWFBridge():Boolean; function isFontFaceEmbedded(_arg1:TextFormat):Boolean; function deployMouseShields(_arg1:Boolean):void; function get rawChildren():IChildList; function get topLevelSystemManager():ISystemManager; function dispatchEventFromSWFBridges(_arg1:Event, _arg2:IEventDispatcher=null, _arg3:Boolean=false, _arg4:Boolean=false):void; function getSandboxRoot():DisplayObject; function get swfBridgeGroup():ISWFBridgeGroup; function removeFocusManager(_arg1:IFocusManagerContainer):void; function addChildToSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function get document():Object; function get focusPane():Sprite; function get loaderInfo():LoaderInfo; function addChildBridge(_arg1:IEventDispatcher, _arg2:DisplayObject):void; function getTopLevelRoot():DisplayObject; function removeChildBridge(_arg1:IEventDispatcher):void; function isDisplayObjectInABridgedApplication(_arg1:DisplayObject):Boolean; function get popUpChildren():IChildList; function get screen():Rectangle; function removeChildFromSandboxRoot(_arg1:String, _arg2:DisplayObject):void; function getDefinitionByName(_arg1:String):Object; function activate(_arg1:IFocusManagerContainer):void; function deactivate(_arg1:IFocusManagerContainer):void; function get cursorChildren():IChildList; function set document(_arg1:Object):void; function get embeddedFontList():Object; function set numModalWindows(_arg1:int):void; function isTopLevel():Boolean; function isTopLevelRoot():Boolean; function get numModalWindows():int; function addFocusManager(_arg1:IFocusManagerContainer):void; function get stage():Stage; function getVisibleApplicationRect(_arg1:Rectangle=null):Rectangle; } }//package mx.managers
Section 164
//SystemManagerGlobals (mx.managers.SystemManagerGlobals) package mx.managers { public class SystemManagerGlobals { public static var topLevelSystemManagers:Array = []; public static var changingListenersInOtherSystemManagers:Boolean; public static var bootstrapLoaderInfoURL:String; public static var showMouseCursor:Boolean; } }//package mx.managers
Section 165
//IModuleInfo (mx.modules.IModuleInfo) package mx.modules { import flash.events.*; import mx.core.*; import flash.system.*; import flash.utils.*; public interface IModuleInfo extends IEventDispatcher { function get ready():Boolean; function get loaded():Boolean; function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void; function release():void; function get error():Boolean; function get data():Object; function publish(_arg1:IFlexModuleFactory):void; function get factory():IFlexModuleFactory; function set data(_arg1:Object):void; function get url():String; function get setup():Boolean; function unload():void; } }//package mx.modules
Section 166
//ModuleManager (mx.modules.ModuleManager) package mx.modules { import mx.core.*; public class ModuleManager { mx_internal static const VERSION:String = "3.2.0.3958"; public static function getModule(_arg1:String):IModuleInfo{ return (getSingleton().getModule(_arg1)); } private static function getSingleton():Object{ if (!ModuleManagerGlobals.managerSingleton){ ModuleManagerGlobals.managerSingleton = new ModuleManagerImpl(); }; return (ModuleManagerGlobals.managerSingleton); } public static function getAssociatedFactory(_arg1:Object):IFlexModuleFactory{ return (getSingleton().getAssociatedFactory(_arg1)); } } }//package mx.modules import flash.events.*; import mx.core.*; import flash.system.*; import flash.display.*; import mx.events.*; import flash.utils.*; import flash.net.*; class ModuleInfoProxy extends EventDispatcher implements IModuleInfo { private var _data:Object; private var info:ModuleInfo; private var referenced:Boolean;// = false private function ModuleInfoProxy(_arg1:ModuleInfo){ this.info = _arg1; _arg1.addEventListener(ModuleEvent.SETUP, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.ERROR, moduleEventHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.UNLOAD, moduleEventHandler, false, 0, true); } public function get loaded():Boolean{ return (info.loaded); } public function release():void{ if (referenced){ info.removeReference(); referenced = false; }; } public function get error():Boolean{ return (info.error); } public function get factory():IFlexModuleFactory{ return (info.factory); } public function publish(_arg1:IFlexModuleFactory):void{ info.publish(_arg1); } public function set data(_arg1:Object):void{ _data = _arg1; } public function get ready():Boolean{ return (info.ready); } public function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void{ var _local4:ModuleEvent; info.resurrect(); if (!referenced){ info.addReference(); referenced = true; }; if (info.error){ dispatchEvent(new ModuleEvent(ModuleEvent.ERROR)); } else { if (info.loaded){ if (info.setup){ dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); if (info.ready){ _local4 = new ModuleEvent(ModuleEvent.PROGRESS); _local4.bytesLoaded = info.size; _local4.bytesTotal = info.size; dispatchEvent(_local4); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); }; }; } else { info.load(_arg1, _arg2, _arg3); }; }; } private function moduleEventHandler(_arg1:ModuleEvent):void{ dispatchEvent(_arg1); } public function get url():String{ return (info.url); } public function get data():Object{ return (_data); } public function get setup():Boolean{ return (info.setup); } public function unload():void{ info.unload(); info.removeEventListener(ModuleEvent.SETUP, moduleEventHandler); info.removeEventListener(ModuleEvent.PROGRESS, moduleEventHandler); info.removeEventListener(ModuleEvent.READY, moduleEventHandler); info.removeEventListener(ModuleEvent.ERROR, moduleEventHandler); info.removeEventListener(ModuleEvent.UNLOAD, moduleEventHandler); } } class ModuleManagerImpl extends EventDispatcher { private var moduleList:Object; private function ModuleManagerImpl(){ moduleList = {}; super(); } public function getModule(_arg1:String):IModuleInfo{ var _local2:ModuleInfo = (moduleList[_arg1] as ModuleInfo); if (!_local2){ _local2 = new ModuleInfo(_arg1); moduleList[_arg1] = _local2; }; return (new ModuleInfoProxy(_local2)); } public function getAssociatedFactory(_arg1:Object):IFlexModuleFactory{ var m:Object; var info:ModuleInfo; var domain:ApplicationDomain; var cls:Class; var object = _arg1; var className:String = getQualifiedClassName(object); for each (m in moduleList) { info = (m as ModuleInfo); if (!info.ready){ } else { domain = info.applicationDomain; try { cls = Class(domain.getDefinition(className)); if ((object is cls)){ return (info.factory); }; } catch(error:Error) { }; }; }; return (null); } } class ModuleInfo extends EventDispatcher { private var _error:Boolean;// = false private var loader:Loader; private var factoryInfo:FactoryInfo; private var limbo:Dictionary; private var _loaded:Boolean;// = false private var _ready:Boolean;// = false private var numReferences:int;// = 0 private var _url:String; private var _setup:Boolean;// = false private function ModuleInfo(_arg1:String){ _url = _arg1; } private function clearLoader():void{ if (loader){ if (loader.contentLoaderInfo){ loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); }; try { if (loader.content){ loader.content.removeEventListener("ready", readyHandler); loader.content.removeEventListener("error", moduleErrorHandler); }; } catch(error:Error) { }; if (_loaded){ try { loader.close(); } catch(error:Error) { }; }; try { loader.unload(); } catch(error:Error) { }; loader = null; }; } public function get size():int{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.bytesTotal : 0); } public function get loaded():Boolean{ return ((limbo) ? false : _loaded); } public function release():void{ if (((_ready) && (!(limbo)))){ limbo = new Dictionary(true); limbo[factoryInfo] = 1; factoryInfo = null; } else { unload(); }; } public function get error():Boolean{ return ((limbo) ? false : _error); } public function get factory():IFlexModuleFactory{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.factory : null); } public function completeHandler(_arg1:Event):void{ var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = loader.contentLoaderInfo.bytesLoaded; _local2.bytesTotal = loader.contentLoaderInfo.bytesTotal; dispatchEvent(_local2); } public function publish(_arg1:IFlexModuleFactory):void{ if (factoryInfo){ return; }; if (_url.indexOf("published://") != 0){ return; }; factoryInfo = new FactoryInfo(); factoryInfo.factory = _arg1; _loaded = true; _setup = true; _ready = true; _error = false; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); dispatchEvent(new ModuleEvent(ModuleEvent.PROGRESS)); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function initHandler(_arg1:Event):void{ var moduleEvent:ModuleEvent; var event = _arg1; factoryInfo = new FactoryInfo(); try { factoryInfo.factory = (loader.content as IFlexModuleFactory); } catch(error:Error) { }; if (!factoryInfo.factory){ moduleEvent = new ModuleEvent(ModuleEvent.ERROR, event.bubbles, event.cancelable); moduleEvent.bytesLoaded = 0; moduleEvent.bytesTotal = 0; moduleEvent.errorText = "SWF is not a loadable module"; dispatchEvent(moduleEvent); return; }; loader.content.addEventListener("ready", readyHandler); loader.content.addEventListener("error", moduleErrorHandler); try { factoryInfo.applicationDomain = loader.contentLoaderInfo.applicationDomain; } catch(error:Error) { }; _setup = true; dispatchEvent(new ModuleEvent(ModuleEvent.SETUP)); } public function resurrect():void{ var _local1:Object; if (((!(factoryInfo)) && (limbo))){ for (_local1 in limbo) { factoryInfo = (_local1 as FactoryInfo); break; }; limbo = null; }; if (!factoryInfo){ if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; loader = null; _loaded = false; _setup = false; _ready = false; _error = false; }; } public function errorHandler(_arg1:ErrorEvent):void{ _error = true; var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = 0; _local2.bytesTotal = 0; _local2.errorText = _arg1.text; dispatchEvent(_local2); } public function get ready():Boolean{ return ((limbo) ? false : _ready); } private function loadBytes(_arg1:ApplicationDomain, _arg2:ByteArray):void{ var _local3:LoaderContext = new LoaderContext(); _local3.applicationDomain = (_arg1) ? _arg1 : new ApplicationDomain(ApplicationDomain.currentDomain); if (("allowLoadBytesCodeExecution" in _local3)){ _local3["allowLoadBytesCodeExecution"] = true; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.loadBytes(_arg2, _local3); } public function removeReference():void{ numReferences--; if (numReferences == 0){ release(); }; } public function addReference():void{ numReferences++; } public function progressHandler(_arg1:ProgressEvent):void{ var _local2:ModuleEvent = new ModuleEvent(ModuleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } public function load(_arg1:ApplicationDomain=null, _arg2:SecurityDomain=null, _arg3:ByteArray=null):void{ if (_loaded){ return; }; _loaded = true; limbo = null; if (_arg3){ loadBytes(_arg1, _arg3); return; }; if (_url.indexOf("published://") == 0){ return; }; var _local4:URLRequest = new URLRequest(_url); var _local5:LoaderContext = new LoaderContext(); _local5.applicationDomain = (_arg1) ? _arg1 : new ApplicationDomain(ApplicationDomain.currentDomain); _local5.securityDomain = _arg2; if ((((_arg2 == null)) && ((Security.sandboxType == Security.REMOTE)))){ _local5.securityDomain = SecurityDomain.currentDomain; }; loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); loader.load(_local4, _local5); } public function get url():String{ return (_url); } public function get applicationDomain():ApplicationDomain{ return ((((!(limbo)) && (factoryInfo))) ? factoryInfo.applicationDomain : null); } public function moduleErrorHandler(_arg1:Event):void{ var _local2:ModuleEvent; _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); if ((_arg1 is ModuleEvent)){ _local2 = ModuleEvent(_arg1); } else { _local2 = new ModuleEvent(ModuleEvent.ERROR); }; dispatchEvent(_local2); } public function readyHandler(_arg1:Event):void{ _ready = true; factoryInfo.bytesTotal = loader.contentLoaderInfo.bytesTotal; clearLoader(); dispatchEvent(new ModuleEvent(ModuleEvent.READY)); } public function get setup():Boolean{ return ((limbo) ? false : _setup); } public function unload():void{ clearLoader(); if (_loaded){ dispatchEvent(new ModuleEvent(ModuleEvent.UNLOAD)); }; limbo = null; factoryInfo = null; _loaded = false; _setup = false; _ready = false; _error = false; } } class FactoryInfo { public var bytesTotal:int;// = 0 public var factory:IFlexModuleFactory; public var applicationDomain:ApplicationDomain; private function FactoryInfo(){ } }
Section 167
//ModuleManagerGlobals (mx.modules.ModuleManagerGlobals) package mx.modules { public class ModuleManagerGlobals { public static var managerSingleton:Object = null; } }//package mx.modules
Section 168
//IResourceBundle (mx.resources.IResourceBundle) package mx.resources { public interface IResourceBundle { function get content():Object; function get locale():String; function get bundleName():String; } }//package mx.resources
Section 169
//IResourceManager (mx.resources.IResourceManager) package mx.resources { import flash.events.*; import flash.system.*; public interface IResourceManager extends IEventDispatcher { function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean; function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class; function getLocales():Array; function removeResourceBundlesForLocale(_arg1:String):void; function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle; function get localeChain():Array; function getInt(_arg1:String, _arg2:String, _arg3:String=null):int; function update():void; function set localeChain(_arg1:Array):void; function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint; function addResourceBundle(_arg1:IResourceBundle):void; function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array; function getBundleNamesForLocale(_arg1:String):Array; function removeResourceBundle(_arg1:String, _arg2:String):void; function getObject(_arg1:String, _arg2:String, _arg3:String=null); function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String; function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void; function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void; function getPreferredLocaleChain():Array; function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle; function initializeLocaleChain(_arg1:Array):void; function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number; } }//package mx.resources
Section 170
//IResourceModule (mx.resources.IResourceModule) package mx.resources { public interface IResourceModule { function get resourceBundles():Array; } }//package mx.resources
Section 171
//LocaleSorter (mx.resources.LocaleSorter) package mx.resources { import mx.core.*; public class LocaleSorter { mx_internal static const VERSION:String = "3.2.0.3958"; private static function normalizeLocale(_arg1:String):String{ return (_arg1.toLowerCase().replace(/-/g, "_")); } public static function sortLocalesByPreference(_arg1:Array, _arg2:Array, _arg3:String=null, _arg4:Boolean=false):Array{ var result:Array; var hasLocale:Object; var i:int; var j:int; var k:int; var l:int; var locale:String; var plocale:LocaleID; var appLocales = _arg1; var systemPreferences = _arg2; var ultimateFallbackLocale = _arg3; var addAll = _arg4; var promote:Function = function (_arg1:String):void{ if (typeof(hasLocale[_arg1]) != "undefined"){ result.push(appLocales[hasLocale[_arg1]]); delete hasLocale[_arg1]; }; }; result = []; hasLocale = {}; var locales:Array = trimAndNormalize(appLocales); var preferenceLocales:Array = trimAndNormalize(systemPreferences); addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale); j = 0; while (j < locales.length) { hasLocale[locales[j]] = j; j = (j + 1); }; i = 0; l = preferenceLocales.length; while (i < l) { plocale = LocaleID.fromString(preferenceLocales[i]); promote(preferenceLocales[i]); promote(plocale.toString()); while (plocale.transformToParent()) { promote(plocale.toString()); }; plocale = LocaleID.fromString(preferenceLocales[i]); j = 0; while (j < l) { locale = preferenceLocales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; j = 0; k = locales.length; while (j < k) { locale = locales[j]; if (plocale.isSiblingOf(LocaleID.fromString(locale))){ promote(locale); }; j = (j + 1); }; i = (i + 1); }; if (addAll){ j = 0; k = locales.length; while (j < k) { promote(locales[j]); j = (j + 1); }; }; return (result); } private static function addUltimateFallbackLocale(_arg1:Array, _arg2:String):void{ var _local3:String; if (((!((_arg2 == null))) && (!((_arg2 == ""))))){ _local3 = normalizeLocale(_arg2); if (_arg1.indexOf(_local3) == -1){ _arg1.push(_local3); }; }; } private static function trimAndNormalize(_arg1:Array):Array{ var _local2:Array = []; var _local3:int; while (_local3 < _arg1.length) { _local2.push(normalizeLocale(_arg1[_local3])); _local3++; }; return (_local2); } } }//package mx.resources class LocaleID { private var privateLangs:Boolean;// = false private var script:String;// = "" private var variants:Array; private var privates:Array; private var extensions:Object; private var lang:String;// = "" private var region:String;// = "" private var extended_langs:Array; public static const STATE_PRIMARY_LANGUAGE:int = 0; public static const STATE_REGION:int = 3; public static const STATE_EXTENDED_LANGUAGES:int = 1; public static const STATE_EXTENSIONS:int = 5; public static const STATE_SCRIPT:int = 2; public static const STATE_VARIANTS:int = 4; public static const STATE_PRIVATES:int = 6; private function LocaleID(){ extended_langs = []; variants = []; extensions = {}; privates = []; super(); } public function equals(_arg1:LocaleID):Boolean{ return ((toString() == _arg1.toString())); } public function canonicalize():void{ var _local1:String; for (_local1 in extensions) { if (extensions.hasOwnProperty(_local1)){ if (extensions[_local1].length == 0){ delete extensions[_local1]; } else { extensions[_local1] = extensions[_local1].sort(); }; }; }; extended_langs = extended_langs.sort(); variants = variants.sort(); privates = privates.sort(); if (script == ""){ script = LocaleRegistry.getScriptByLang(lang); }; if ((((script == "")) && (!((region == ""))))){ script = LocaleRegistry.getScriptByLangAndRegion(lang, region); }; if ((((region == "")) && (!((script == ""))))){ region = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); }; } public function toString():String{ var _local2:String; var _local1:Array = [lang]; Array.prototype.push.apply(_local1, extended_langs); if (script != ""){ _local1.push(script); }; if (region != ""){ _local1.push(region); }; Array.prototype.push.apply(_local1, variants); for (_local2 in extensions) { if (extensions.hasOwnProperty(_local2)){ _local1.push(_local2); Array.prototype.push.apply(_local1, extensions[_local2]); }; }; if (privates.length > 0){ _local1.push("x"); Array.prototype.push.apply(_local1, privates); }; return (_local1.join("_")); } public function isSiblingOf(_arg1:LocaleID):Boolean{ return ((((lang == _arg1.lang)) && ((script == _arg1.script)))); } public function transformToParent():Boolean{ var _local2:String; var _local3:Array; var _local4:String; if (privates.length > 0){ privates.splice((privates.length - 1), 1); return (true); }; var _local1:String; for (_local2 in extensions) { if (extensions.hasOwnProperty(_local2)){ _local1 = _local2; }; }; if (_local1){ _local3 = extensions[_local1]; if (_local3.length == 1){ delete extensions[_local1]; return (true); }; _local3.splice((_local3.length - 1), 1); return (true); }; if (variants.length > 0){ variants.splice((variants.length - 1), 1); return (true); }; if (script != ""){ if (LocaleRegistry.getScriptByLang(lang) != ""){ script = ""; return (true); }; if (region == ""){ _local4 = LocaleRegistry.getDefaultRegionForLangAndScript(lang, script); if (_local4 != ""){ region = _local4; script = ""; return (true); }; }; }; if (region != ""){ if (!(((script == "")) && ((LocaleRegistry.getScriptByLang(lang) == "")))){ region = ""; return (true); }; }; if (extended_langs.length > 0){ extended_langs.splice((extended_langs.length - 1), 1); return (true); }; return (false); } public static function fromString(_arg1:String):LocaleID{ var _local5:Array; var _local8:String; var _local9:int; var _local10:String; var _local2:LocaleID = new (LocaleID); var _local3:int = STATE_PRIMARY_LANGUAGE; var _local4:Array = _arg1.replace(/-/g, "_").split("_"); var _local6:int; var _local7:int = _local4.length; while (_local6 < _local7) { _local8 = _local4[_local6].toLowerCase(); if (_local3 == STATE_PRIMARY_LANGUAGE){ if (_local8 == "x"){ _local2.privateLangs = true; } else { if (_local8 == "i"){ _local2.lang = (_local2.lang + "i-"); } else { _local2.lang = (_local2.lang + _local8); _local3 = STATE_EXTENDED_LANGUAGES; }; }; } else { _local9 = _local8.length; if (_local9 == 0){ } else { _local10 = _local8.charAt(0).toLowerCase(); if ((((_local3 <= STATE_EXTENDED_LANGUAGES)) && ((_local9 == 3)))){ _local2.extended_langs.push(_local8); if (_local2.extended_langs.length == 3){ _local3 = STATE_SCRIPT; }; } else { if ((((_local3 <= STATE_SCRIPT)) && ((_local9 == 4)))){ _local2.script = _local8; _local3 = STATE_REGION; } else { if ((((_local3 <= STATE_REGION)) && ((((_local9 == 2)) || ((_local9 == 3)))))){ _local2.region = _local8; _local3 = STATE_VARIANTS; } else { if ((((_local3 <= STATE_VARIANTS)) && ((((((((_local10 >= "a")) && ((_local10 <= "z")))) && ((_local9 >= 5)))) || ((((((_local10 >= "0")) && ((_local10 <= "9")))) && ((_local9 >= 4)))))))){ _local2.variants.push(_local8); _local3 = STATE_VARIANTS; } else { if ((((_local3 < STATE_PRIVATES)) && ((_local9 == 1)))){ if (_local8 == "x"){ _local3 = STATE_PRIVATES; _local5 = _local2.privates; } else { _local3 = STATE_EXTENSIONS; _local5 = ((_local2.extensions[_local8]) || ([])); _local2.extensions[_local8] = _local5; }; } else { if (_local3 >= STATE_EXTENSIONS){ _local5.push(_local8); }; }; }; }; }; }; }; }; _local6++; }; _local2.canonicalize(); return (_local2); } } class LocaleRegistry { private static const SCRIPT_ID_BY_LANG:Object = {ab:5, af:1, am:2, ar:3, as:4, ay:1, be:5, bg:5, bn:4, bs:1, ca:1, ch:1, cs:1, cy:1, da:1, de:1, dv:6, dz:7, el:8, en:1, eo:1, es:1, et:1, eu:1, fa:3, fi:1, fj:1, fo:1, fr:1, frr:1, fy:1, ga:1, gl:1, gn:1, gu:9, gv:1, he:10, hi:11, hr:1, ht:1, hu:1, hy:12, id:1, in:1, is:1, it:1, iw:10, ja:13, ka:14, kk:5, kl:1, km:15, kn:16, ko:17, la:1, lb:1, ln:1, lo:18, lt:1, lv:1, mg:1, mh:1, mk:5, ml:19, mo:1, mr:11, ms:1, mt:1, my:20, na:1, nb:1, nd:1, ne:11, nl:1, nn:1, no:1, nr:1, ny:1, om:1, or:21, pa:22, pl:1, ps:3, pt:1, qu:1, rn:1, ro:1, ru:5, rw:1, sg:1, si:23, sk:1, sl:1, sm:1, so:1, sq:1, ss:1, st:1, sv:1, sw:1, ta:24, te:25, th:26, ti:2, tl:1, tn:1, to:1, tr:1, ts:1, uk:5, ur:3, ve:1, vi:1, wo:1, xh:1, yi:10, zu:1, cpe:1, dsb:1, frs:1, gsw:1, hsb:1, kok:11, mai:11, men:1, nds:1, niu:1, nqo:27, nso:1, son:1, tem:1, tkl:1, tmh:1, tpi:1, tvl:1, zbl:28}; private static const SCRIPTS:Array = ["", "latn", "ethi", "arab", "beng", "cyrl", "thaa", "tibt", "grek", "gujr", "hebr", "deva", "armn", "jpan", "geor", "khmr", "knda", "kore", "laoo", "mlym", "mymr", "orya", "guru", "sinh", "taml", "telu", "thai", "nkoo", "blis", "hans", "hant", "mong", "syrc"]; private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object = {bg:{5:"bg"}, ca:{1:"es"}, zh:{30:"tw", 29:"cn"}, cs:{1:"cz"}, da:{1:"dk"}, de:{1:"de"}, el:{8:"gr"}, en:{1:"us"}, es:{1:"es"}, fi:{1:"fi"}, fr:{1:"fr"}, he:{10:"il"}, hu:{1:"hu"}, is:{1:"is"}, it:{1:"it"}, ja:{13:"jp"}, ko:{17:"kr"}, nl:{1:"nl"}, nb:{1:"no"}, pl:{1:"pl"}, pt:{1:"br"}, ro:{1:"ro"}, ru:{5:"ru"}, hr:{1:"hr"}, sk:{1:"sk"}, sq:{1:"al"}, sv:{1:"se"}, th:{26:"th"}, tr:{1:"tr"}, ur:{3:"pk"}, id:{1:"id"}, uk:{5:"ua"}, be:{5:"by"}, sl:{1:"si"}, et:{1:"ee"}, lv:{1:"lv"}, lt:{1:"lt"}, fa:{3:"ir"}, vi:{1:"vn"}, hy:{12:"am"}, az:{1:"az", 5:"az"}, eu:{1:"es"}, mk:{5:"mk"}, af:{1:"za"}, ka:{14:"ge"}, fo:{1:"fo"}, hi:{11:"in"}, ms:{1:"my"}, kk:{5:"kz"}, ky:{5:"kg"}, sw:{1:"ke"}, uz:{1:"uz", 5:"uz"}, tt:{5:"ru"}, pa:{22:"in"}, gu:{9:"in"}, ta:{24:"in"}, te:{25:"in"}, kn:{16:"in"}, mr:{11:"in"}, sa:{11:"in"}, mn:{5:"mn"}, gl:{1:"es"}, kok:{11:"in"}, syr:{32:"sy"}, dv:{6:"mv"}, nn:{1:"no"}, sr:{1:"cs", 5:"cs"}, cy:{1:"gb"}, mi:{1:"nz"}, mt:{1:"mt"}, quz:{1:"bo"}, tn:{1:"za"}, xh:{1:"za"}, zu:{1:"za"}, nso:{1:"za"}, se:{1:"no"}, smj:{1:"no"}, sma:{1:"no"}, sms:{1:"fi"}, smn:{1:"fi"}, bs:{1:"ba"}}; private static const SCRIPT_BY_ID:Object = {latn:1, ethi:2, arab:3, beng:4, cyrl:5, thaa:6, tibt:7, grek:8, gujr:9, hebr:10, deva:11, armn:12, jpan:13, geor:14, khmr:15, knda:16, kore:17, laoo:18, mlym:19, mymr:20, orya:21, guru:22, sinh:23, taml:24, telu:25, thai:26, nkoo:27, blis:28, hans:29, hant:30, mong:31, syrc:32}; private static const SCRIPT_ID_BY_LANG_AND_REGION:Object = {zh:{cn:29, sg:29, tw:30, hk:30, mo:30}, mn:{cn:31, sg:5}, pa:{pk:3, in:22}, ha:{gh:1, ne:1}}; private function LocaleRegistry(){ } public static function getScriptByLangAndRegion(_arg1:String, _arg2:String):String{ var _local3:Object = SCRIPT_ID_BY_LANG_AND_REGION[_arg1]; if (_local3 == null){ return (""); }; var _local4:Object = _local3[_arg2]; if (_local4 == null){ return (""); }; return (SCRIPTS[int(_local4)].toLowerCase()); } public static function getScriptByLang(_arg1:String):String{ var _local2:Object = SCRIPT_ID_BY_LANG[_arg1]; if (_local2 == null){ return (""); }; return (SCRIPTS[int(_local2)].toLowerCase()); } public static function getDefaultRegionForLangAndScript(_arg1:String, _arg2:String):String{ var _local3:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[_arg1]; var _local4:Object = SCRIPT_BY_ID[_arg2]; if ((((_local3 == null)) || ((_local4 == null)))){ return (""); }; return (((_local3[int(_local4)]) || (""))); } }
Section 172
//ResourceBundle (mx.resources.ResourceBundle) package mx.resources { import mx.core.*; import flash.system.*; import mx.utils.*; public class ResourceBundle implements IResourceBundle { mx_internal var _locale:String; private var _content:Object; mx_internal var _bundleName:String; mx_internal static const VERSION:String = "3.2.0.3958"; mx_internal static var backupApplicationDomain:ApplicationDomain; mx_internal static var locale:String; public function ResourceBundle(_arg1:String=null, _arg2:String=null){ _content = {}; super(); mx_internal::_locale = _arg1; mx_internal::_bundleName = _arg2; _content = getContent(); } protected function getContent():Object{ return ({}); } public function getString(_arg1:String):String{ return (String(_getObject(_arg1))); } public function get content():Object{ return (_content); } public function getBoolean(_arg1:String, _arg2:Boolean=true):Boolean{ var _local3:String = _getObject(_arg1).toLowerCase(); if (_local3 == "false"){ return (false); }; if (_local3 == "true"){ return (true); }; return (_arg2); } public function getStringArray(_arg1:String):Array{ var _local2:Array = _getObject(_arg1).split(","); var _local3:int = _local2.length; var _local4:int; while (_local4 < _local3) { _local2[_local4] = StringUtil.trim(_local2[_local4]); _local4++; }; return (_local2); } public function getObject(_arg1:String):Object{ return (_getObject(_arg1)); } private function _getObject(_arg1:String):Object{ var _local2:Object = content[_arg1]; if (!_local2){ throw (new Error(((("Key " + _arg1) + " was not found in resource bundle ") + bundleName))); }; return (_local2); } public function get locale():String{ return (mx_internal::_locale); } public function get bundleName():String{ return (mx_internal::_bundleName); } public function getNumber(_arg1:String):Number{ return (Number(_getObject(_arg1))); } private static function getClassByName(_arg1:String, _arg2:ApplicationDomain):Class{ var _local3:Class; if (_arg2.hasDefinition(_arg1)){ _local3 = (_arg2.getDefinition(_arg1) as Class); }; return (_local3); } public static function getResourceBundle(_arg1:String, _arg2:ApplicationDomain=null):ResourceBundle{ var _local3:String; var _local4:Class; var _local5:Object; var _local6:ResourceBundle; if (!_arg2){ _arg2 = ApplicationDomain.currentDomain; }; _local3 = (((mx_internal::locale + "$") + _arg1) + "_properties"); _local4 = getClassByName(_local3, _arg2); if (!_local4){ _local3 = (_arg1 + "_properties"); _local4 = getClassByName(_local3, _arg2); }; if (!_local4){ _local3 = _arg1; _local4 = getClassByName(_local3, _arg2); }; if (((!(_local4)) && (mx_internal::backupApplicationDomain))){ _local3 = (_arg1 + "_properties"); _local4 = getClassByName(_local3, mx_internal::backupApplicationDomain); if (!_local4){ _local3 = _arg1; _local4 = getClassByName(_local3, mx_internal::backupApplicationDomain); }; }; if (_local4){ _local5 = new (_local4); if ((_local5 is ResourceBundle)){ _local6 = ResourceBundle(_local5); return (_local6); }; }; throw (new Error(("Could not find resource bundle " + _arg1))); } } }//package mx.resources
Section 173
//ResourceManager (mx.resources.ResourceManager) package mx.resources { import mx.core.*; public class ResourceManager { mx_internal static const VERSION:String = "3.2.0.3958"; private static var implClassDependency:ResourceManagerImpl; private static var instance:IResourceManager; public static function getInstance():IResourceManager{ if (!instance){ try { instance = IResourceManager(Singleton.getInstance("mx.resources::IResourceManager")); } catch(e:Error) { instance = new ResourceManagerImpl(); }; }; return (instance); } } }//package mx.resources
Section 174
//ResourceManagerImpl (mx.resources.ResourceManagerImpl) package mx.resources { import flash.events.*; import mx.core.*; import flash.system.*; import mx.modules.*; import mx.events.*; import flash.utils.*; import mx.utils.*; public class ResourceManagerImpl extends EventDispatcher implements IResourceManager { private var resourceModules:Object; private var initializedForNonFrameworkApp:Boolean;// = false private var localeMap:Object; private var _localeChain:Array; mx_internal static const VERSION:String = "3.2.0.3958"; private static var instance:IResourceManager; public function ResourceManagerImpl(){ localeMap = {}; resourceModules = {}; super(); } public function get localeChain():Array{ return (_localeChain); } public function set localeChain(_arg1:Array):void{ _localeChain = _arg1; update(); } public function getStringArray(_arg1:String, _arg2:String, _arg3:String=null):Array{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (null); }; var _local5:* = _local4.content[_arg2]; var _local6:Array = String(_local5).split(","); var _local7:int = _local6.length; var _local8:int; while (_local8 < _local7) { _local6[_local8] = StringUtil.trim(_local6[_local8]); _local8++; }; return (_local6); } mx_internal function installCompiledResourceBundle(_arg1:ApplicationDomain, _arg2:String, _arg3:String):void{ var _local4:String; var _local5:String = _arg3; var _local6:int = _arg3.indexOf(":"); if (_local6 != -1){ _local4 = _arg3.substring(0, _local6); _local5 = _arg3.substring((_local6 + 1)); }; if (getResourceBundle(_arg2, _arg3)){ return; }; var _local7 = (((_arg2 + "$") + _local5) + "_properties"); if (_local4 != null){ _local7 = ((_local4 + ".") + _local7); }; var _local8:Class; if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; if (!_local8){ _local7 = _arg3; if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; }; if (!_local8){ _local7 = (_arg3 + "_properties"); if (_arg1.hasDefinition(_local7)){ _local8 = Class(_arg1.getDefinition(_local7)); }; }; if (!_local8){ throw (new Error((((("Could not find compiled resource bundle '" + _arg3) + "' for locale '") + _arg2) + "'."))); }; var _local9:ResourceBundle = ResourceBundle(new (_local8)); _local9.mx_internal::_locale = _arg2; _local9.mx_internal::_bundleName = _arg3; addResourceBundle(_local9); } public function getString(_arg1:String, _arg2:String, _arg3:Array=null, _arg4:String=null):String{ var _local5:IResourceBundle = findBundle(_arg1, _arg2, _arg4); if (!_local5){ return (null); }; var _local6:String = String(_local5.content[_arg2]); if (_arg3){ _local6 = StringUtil.substitute(_local6, _arg3); }; return (_local6); } public function loadResourceModule(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher{ var moduleInfo:IModuleInfo; var resourceEventDispatcher:ResourceEventDispatcher; var timer:Timer; var timerHandler:Function; var url = _arg1; var updateFlag = _arg2; var applicationDomain = _arg3; var securityDomain = _arg4; moduleInfo = ModuleManager.getModule(url); resourceEventDispatcher = new ResourceEventDispatcher(moduleInfo); var readyHandler:Function = function (_arg1:ModuleEvent):void{ var _local2:* = _arg1.module.factory.create(); resourceModules[_arg1.module.url].resourceModule = _local2; if (updateFlag){ update(); }; }; moduleInfo.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); var errorHandler:Function = function (_arg1:ModuleEvent):void{ var _local3:ResourceEvent; var _local2:String = ("Unable to load resource module from " + url); if (resourceEventDispatcher.willTrigger(ResourceEvent.ERROR)){ _local3 = new ResourceEvent(ResourceEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local3.bytesLoaded = 0; _local3.bytesTotal = 0; _local3.errorText = _local2; resourceEventDispatcher.dispatchEvent(_local3); } else { throw (new Error(_local2)); }; }; moduleInfo.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); resourceModules[url] = new ResourceModuleInfo(moduleInfo, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); moduleInfo.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (resourceEventDispatcher); } public function getLocales():Array{ var _local2:String; var _local1:Array = []; for (_local2 in localeMap) { _local1.push(_local2); }; return (_local1); } public function removeResourceBundlesForLocale(_arg1:String):void{ delete localeMap[_arg1]; } public function getResourceBundle(_arg1:String, _arg2:String):IResourceBundle{ var _local3:Object = localeMap[_arg1]; if (!_local3){ return (null); }; return (_local3[_arg2]); } private function dumpResourceModule(_arg1):void{ var _local2:ResourceBundle; var _local3:String; for each (_local2 in _arg1.resourceBundles) { trace(_local2.locale, _local2.bundleName); for (_local3 in _local2.content) { }; }; } public function addResourceBundle(_arg1:IResourceBundle):void{ var _local2:String = _arg1.locale; var _local3:String = _arg1.bundleName; if (!localeMap[_local2]){ localeMap[_local2] = {}; }; localeMap[_local2][_local3] = _arg1; } public function getObject(_arg1:String, _arg2:String, _arg3:String=null){ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (undefined); }; return (_local4.content[_arg2]); } public function getInt(_arg1:String, _arg2:String, _arg3:String=null):int{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (0); }; var _local5:* = _local4.content[_arg2]; return (int(_local5)); } private function findBundle(_arg1:String, _arg2:String, _arg3:String):IResourceBundle{ supportNonFrameworkApps(); return (((_arg3)!=null) ? getResourceBundle(_arg3, _arg1) : findResourceBundleWithResource(_arg1, _arg2)); } private function supportNonFrameworkApps():void{ if (initializedForNonFrameworkApp){ return; }; initializedForNonFrameworkApp = true; if (getLocales().length > 0){ return; }; var _local1:ApplicationDomain = ApplicationDomain.currentDomain; if (!_local1.hasDefinition("_CompiledResourceBundleInfo")){ return; }; var _local2:Class = Class(_local1.getDefinition("_CompiledResourceBundleInfo")); var _local3:Array = _local2.compiledLocales; var _local4:Array = _local2.compiledResourceBundleNames; installCompiledResourceBundles(_local1, _local3, _local4); localeChain = _local3; } public function getBundleNamesForLocale(_arg1:String):Array{ var _local3:String; var _local2:Array = []; for (_local3 in localeMap[_arg1]) { _local2.push(_local3); }; return (_local2); } public function getPreferredLocaleChain():Array{ return (LocaleSorter.sortLocalesByPreference(getLocales(), getSystemPreferredLocales(), null, true)); } public function getNumber(_arg1:String, _arg2:String, _arg3:String=null):Number{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (NaN); }; var _local5:* = _local4.content[_arg2]; return (Number(_local5)); } public function update():void{ dispatchEvent(new Event(Event.CHANGE)); } public function getClass(_arg1:String, _arg2:String, _arg3:String=null):Class{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (null); }; var _local5:* = _local4.content[_arg2]; return ((_local5 as Class)); } public function removeResourceBundle(_arg1:String, _arg2:String):void{ delete localeMap[_arg1][_arg2]; if (getBundleNamesForLocale(_arg1).length == 0){ delete localeMap[_arg1]; }; } public function initializeLocaleChain(_arg1:Array):void{ localeChain = LocaleSorter.sortLocalesByPreference(_arg1, getSystemPreferredLocales(), null, true); } public function findResourceBundleWithResource(_arg1:String, _arg2:String):IResourceBundle{ var _local5:String; var _local6:Object; var _local7:ResourceBundle; if (!_localeChain){ return (null); }; var _local3:int = _localeChain.length; var _local4:int; while (_local4 < _local3) { _local5 = localeChain[_local4]; _local6 = localeMap[_local5]; if (!_local6){ } else { _local7 = _local6[_arg1]; if (!_local7){ } else { if ((_arg2 in _local7.content)){ return (_local7); }; }; }; _local4++; }; return (null); } public function getUint(_arg1:String, _arg2:String, _arg3:String=null):uint{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (0); }; var _local5:* = _local4.content[_arg2]; return (uint(_local5)); } private function getSystemPreferredLocales():Array{ var _local1:Array; if (Capabilities["languages"]){ _local1 = Capabilities["languages"]; } else { _local1 = [Capabilities.language]; }; return (_local1); } public function installCompiledResourceBundles(_arg1:ApplicationDomain, _arg2:Array, _arg3:Array):void{ var _local7:String; var _local8:int; var _local9:String; var _local4:int = (_arg2) ? _arg2.length : 0; var _local5:int = (_arg3) ? _arg3.length : 0; var _local6:int; while (_local6 < _local4) { _local7 = _arg2[_local6]; _local8 = 0; while (_local8 < _local5) { _local9 = _arg3[_local8]; mx_internal::installCompiledResourceBundle(_arg1, _local7, _local9); _local8++; }; _local6++; }; } public function getBoolean(_arg1:String, _arg2:String, _arg3:String=null):Boolean{ var _local4:IResourceBundle = findBundle(_arg1, _arg2, _arg3); if (!_local4){ return (false); }; var _local5:* = _local4.content[_arg2]; return ((String(_local5).toLowerCase() == "true")); } public function unloadResourceModule(_arg1:String, _arg2:Boolean=true):void{ throw (new Error("unloadResourceModule() is not yet implemented.")); } public static function getInstance():IResourceManager{ if (!instance){ instance = new (ResourceManagerImpl); }; return (instance); } } }//package mx.resources import flash.events.*; import mx.modules.*; import mx.events.*; class ResourceModuleInfo { public var resourceModule:IResourceModule; public var errorHandler:Function; public var readyHandler:Function; public var moduleInfo:IModuleInfo; private function ResourceModuleInfo(_arg1:IModuleInfo, _arg2:Function, _arg3:Function){ this.moduleInfo = _arg1; this.readyHandler = _arg2; this.errorHandler = _arg3; } } class ResourceEventDispatcher extends EventDispatcher { private function ResourceEventDispatcher(_arg1:IModuleInfo){ _arg1.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } private function moduleInfo_readyHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.COMPLETE); dispatchEvent(_local2); } private function moduleInfo_errorHandler(_arg1:ModuleEvent):void{ var _local2:ResourceEvent = new ResourceEvent(ResourceEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; _local2.errorText = _arg1.errorText; dispatchEvent(_local2); } }
Section 175
//HaloBorder (mx.skins.halo.HaloBorder) package mx.skins.halo { import mx.core.*; import mx.styles.*; import flash.display.*; import mx.skins.*; import mx.graphics.*; import mx.utils.*; public class HaloBorder extends RectangularBorder { mx_internal var radiusObj:Object; mx_internal var backgroundHole:Object; mx_internal var radius:Number; mx_internal var bRoundedCorners:Boolean; mx_internal var backgroundColor:Object; private var dropShadow:RectangularDropShadow; protected var _borderMetrics:EdgeMetrics; mx_internal var backgroundAlphaName:String; mx_internal static const VERSION:String = "3.2.0.3958"; private static var BORDER_WIDTHS:Object = {none:0, solid:1, inset:2, outset:2, alert:3, dropdown:2, menuBorder:1, comboNonEdit:2}; public function HaloBorder(){ BORDER_WIDTHS["default"] = 3; } override public function styleChanged(_arg1:String):void{ if ((((((((((_arg1 == null)) || ((_arg1 == "styleName")))) || ((_arg1 == "borderStyle")))) || ((_arg1 == "borderThickness")))) || ((_arg1 == "borderSides")))){ _borderMetrics = null; }; invalidateDisplayList(); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ if (((isNaN(_arg1)) || (isNaN(_arg2)))){ return; }; super.updateDisplayList(_arg1, _arg2); backgroundColor = getBackgroundColor(); bRoundedCorners = false; backgroundAlphaName = "backgroundAlpha"; backgroundHole = null; radius = 0; radiusObj = null; drawBorder(_arg1, _arg2); drawBackground(_arg1, _arg2); } mx_internal function drawBorder(_arg1:Number, _arg2:Number):void{ var _local5:Number; var _local6:uint; var _local7:uint; var _local8:String; var _local9:Number; var _local10:uint; var _local11:Boolean; var _local12:uint; var _local13:Array; var _local14:Array; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:Boolean; var _local20:Object; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Object; var _local27:Number; var _local28:Number; var _local29:IContainer; var _local30:EdgeMetrics; var _local31:Boolean; var _local32:Number; var _local33:Array; var _local34:uint; var _local35:Boolean; var _local36:Number; var _local3:String = getStyle("borderStyle"); var _local4:Array = getStyle("highlightAlphas"); var _local21:Boolean; var _local26:Graphics = graphics; _local26.clear(); if (_local3){ switch (_local3){ case "none": break; case "inset": _local7 = getStyle("borderColor"); _local22 = ColorUtil.adjustBrightness2(_local7, -40); _local23 = ColorUtil.adjustBrightness2(_local7, 25); _local24 = ColorUtil.adjustBrightness2(_local7, 40); _local25 = backgroundColor; if ((((_local25 === null)) || ((_local25 === "")))){ _local25 = _local7; }; draw3dBorder(_local23, _local22, _local24, Number(_local25), Number(_local25), Number(_local25)); break; case "outset": _local7 = getStyle("borderColor"); _local22 = ColorUtil.adjustBrightness2(_local7, -40); _local23 = ColorUtil.adjustBrightness2(_local7, -25); _local24 = ColorUtil.adjustBrightness2(_local7, 40); _local25 = backgroundColor; if ((((_local25 === null)) || ((_local25 === "")))){ _local25 = _local7; }; draw3dBorder(_local23, _local24, _local22, Number(_local25), Number(_local25), Number(_local25)); break; case "alert": case "default": if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _local27 = getStyle("backgroundAlpha"); _local5 = getStyle("borderAlpha"); backgroundAlphaName = "borderAlpha"; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); _local28 = (bRoundedCorners) ? radius : 0; drawDropShadow(0, 0, _arg1, _arg2, radius, radius, _local28, _local28); if (!bRoundedCorners){ radiusObj = {}; }; _local29 = (parent as IContainer); if (_local29){ _local30 = _local29.viewMetrics; backgroundHole = {x:_local30.left, y:_local30.top, w:Math.max(0, ((_arg1 - _local30.left) - _local30.right)), h:Math.max(0, ((_arg2 - _local30.top) - _local30.bottom)), r:0}; if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){ if (_local27 != _local5){ drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0); }; _local26.beginFill(Number(backgroundColor), _local27); _local26.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h); _local26.endFill(); }; }; backgroundColor = getStyle("borderColor"); }; break; case "dropdown": _local12 = getStyle("dropdownBorderColor"); drawDropShadow(0, 0, _arg1, _arg2, 4, 0, 0, 4); drawRoundRect(0, 0, _arg1, _arg2, {tl:4, tr:0, br:0, bl:4}, 5068126, 1); drawRoundRect(0, 0, _arg1, _arg2, {tl:4, tr:0, br:0, bl:4}, [0xFFFFFF, 0xFFFFFF], [0.7, 0], verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(1, 1, (_arg1 - 1), (_arg2 - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (_arg1 - 1), (_arg2 - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (_arg1 - 1), (_arg2 - 3))); if (!isNaN(_local12)){ drawRoundRect(0, 0, (_arg1 + 1), _arg2, {tl:4, tr:0, br:0, bl:4}, _local12, 0.5); drawRoundRect(1, 1, (_arg1 - 1), (_arg2 - 2), {tl:3, tr:0, br:0, bl:3}, 0xFFFFFF, 1); drawRoundRect(1, 2, (_arg1 - 1), (_arg2 - 3), {tl:3, tr:0, br:0, bl:3}, [0xEEEEEE, 0xFFFFFF], 1, verticalGradientMatrix(0, 0, (_arg1 - 1), (_arg2 - 3))); }; backgroundColor = null; break; case "menuBorder": _local7 = getStyle("borderColor"); drawRoundRect(0, 0, _arg1, _arg2, 0, _local7, 1); drawDropShadow(1, 1, (_arg1 - 2), (_arg2 - 2), 0, 0, 0, 0); break; case "comboNonEdit": break; case "controlBar": if ((((_arg1 == 0)) || ((_arg2 == 0)))){ backgroundColor = null; break; }; _local14 = getStyle("footerColors"); _local31 = !((_local14 == null)); _local32 = getStyle("borderAlpha"); if (_local31){ _local26.lineStyle(0, ((_local14.length > 0)) ? _local14[1] : _local14[0], _local32); _local26.moveTo(0, 0); _local26.lineTo(_arg1, 0); _local26.lineStyle(0, 0, 0); if (((((parent) && (parent.parent))) && ((parent.parent is IStyleClient)))){ radius = IStyleClient(parent.parent).getStyle("cornerRadius"); _local32 = IStyleClient(parent.parent).getStyle("borderAlpha"); }; if (isNaN(radius)){ radius = 0; }; if (IStyleClient(parent.parent).getStyle("roundedBottomCorners").toString().toLowerCase() != "true"){ radius = 0; }; drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:0, tr:0, bl:radius, br:radius}, _local14, _local32, verticalGradientMatrix(0, 0, _arg1, _arg2)); if ((((_local14.length > 1)) && (!((_local14[0] == _local14[1]))))){ drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:0, tr:0, bl:radius, br:radius}, [0xFFFFFF, 0xFFFFFF], _local4, verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(1, 2, (_arg1 - 2), (_arg2 - 3), {tl:0, tr:0, bl:(radius - 1), br:(radius - 1)}, _local14, _local32, verticalGradientMatrix(0, 0, _arg1, _arg2)); }; }; backgroundColor = null; break; case "applicationControlBar": _local13 = getStyle("fillColors"); _local5 = getStyle("backgroundAlpha"); _local4 = getStyle("highlightAlphas"); _local33 = getStyle("fillAlphas"); _local11 = getStyle("docked"); _local34 = uint(backgroundColor); radius = getStyle("cornerRadius"); if (!radius){ radius = 0; }; drawDropShadow(0, 1, _arg1, (_arg2 - 1), radius, radius, radius, radius); if (((!((backgroundColor === null))) && (StyleManager.isValidStyleValue(backgroundColor)))){ drawRoundRect(0, 1, _arg1, (_arg2 - 1), radius, _local34, _local5, verticalGradientMatrix(0, 0, _arg1, _arg2)); }; drawRoundRect(0, 1, _arg1, (_arg2 - 1), radius, _local13, _local33, verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(0, 1, _arg1, ((_arg2 / 2) - 1), {tl:radius, tr:radius, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], _local4, verticalGradientMatrix(0, 0, _arg1, ((_arg2 / 2) - 1))); drawRoundRect(0, 1, _arg1, (_arg2 - 1), {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, 0.3, null, GradientType.LINEAR, null, {x:0, y:2, w:_arg1, h:(_arg2 - 2), r:{tl:radius, tr:radius, bl:0, br:0}}); backgroundColor = null; break; default: _local7 = getStyle("borderColor"); _local9 = getStyle("borderThickness"); _local8 = getStyle("borderSides"); _local35 = true; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); _local36 = Math.max((radius - _local9), 0); _local20 = {x:_local9, y:_local9, w:(_arg1 - (_local9 * 2)), h:(_arg2 - (_local9 * 2)), r:_local36}; if (!bRoundedCorners){ radiusObj = {tl:radius, tr:radius, bl:0, br:0}; _local20.r = {tl:_local36, tr:_local36, bl:0, br:0}; }; if (_local8 != "left top right bottom"){ _local20.r = {tl:_local36, tr:_local36, bl:(bRoundedCorners) ? _local36 : 0, br:(bRoundedCorners) ? _local36 : 0}; radiusObj = {tl:radius, tr:radius, bl:(bRoundedCorners) ? radius : 0, br:(bRoundedCorners) ? radius : 0}; _local8 = _local8.toLowerCase(); if (_local8.indexOf("left") == -1){ _local20.x = 0; _local20.w = (_local20.w + _local9); _local20.r.tl = 0; _local20.r.bl = 0; radiusObj.tl = 0; radiusObj.bl = 0; _local35 = false; }; if (_local8.indexOf("top") == -1){ _local20.y = 0; _local20.h = (_local20.h + _local9); _local20.r.tl = 0; _local20.r.tr = 0; radiusObj.tl = 0; radiusObj.tr = 0; _local35 = false; }; if (_local8.indexOf("right") == -1){ _local20.w = (_local20.w + _local9); _local20.r.tr = 0; _local20.r.br = 0; radiusObj.tr = 0; radiusObj.br = 0; _local35 = false; }; if (_local8.indexOf("bottom") == -1){ _local20.h = (_local20.h + _local9); _local20.r.bl = 0; _local20.r.br = 0; radiusObj.bl = 0; radiusObj.br = 0; _local35 = false; }; }; if ((((radius == 0)) && (_local35))){ drawDropShadow(0, 0, _arg1, _arg2, 0, 0, 0, 0); _local26.beginFill(_local7); _local26.drawRect(0, 0, _arg1, _arg2); _local26.drawRect(_local9, _local9, (_arg1 - (2 * _local9)), (_arg2 - (2 * _local9))); _local26.endFill(); } else { if (radiusObj){ drawDropShadow(0, 0, _arg1, _arg2, radiusObj.tl, radiusObj.tr, radiusObj.br, radiusObj.bl); drawRoundRect(0, 0, _arg1, _arg2, radiusObj, _local7, 1, null, null, null, _local20); radiusObj.tl = Math.max((radius - _local9), 0); radiusObj.tr = Math.max((radius - _local9), 0); radiusObj.bl = (bRoundedCorners) ? Math.max((radius - _local9), 0) : 0; radiusObj.br = (bRoundedCorners) ? Math.max((radius - _local9), 0) : 0; } else { drawDropShadow(0, 0, _arg1, _arg2, radius, radius, radius, radius); drawRoundRect(0, 0, _arg1, _arg2, radius, _local7, 1, null, null, null, _local20); radius = Math.max((getStyle("cornerRadius") - _local9), 0); }; }; }; }; } mx_internal function drawBackground(_arg1:Number, _arg2:Number):void{ var _local4:Number; var _local5:Number; var _local6:EdgeMetrics; var _local7:Graphics; var _local8:Number; var _local9:Number; var _local10:Array; var _local11:Number; if (((((((!((backgroundColor === null))) && (!((backgroundColor === ""))))) || (getStyle("mouseShield")))) || (getStyle("mouseShieldChildren")))){ _local4 = Number(backgroundColor); _local5 = 1; _local6 = getBackgroundColorMetrics(); _local7 = graphics; if (((((isNaN(_local4)) || ((backgroundColor === "")))) || ((backgroundColor === null)))){ _local5 = 0; _local4 = 0xFFFFFF; } else { _local5 = getStyle(backgroundAlphaName); }; if (((!((radius == 0))) || (backgroundHole))){ _local8 = _local6.bottom; if (radiusObj){ _local9 = (bRoundedCorners) ? radius : 0; radiusObj = {tl:radius, tr:radius, bl:_local9, br:_local9}; drawRoundRect(_local6.left, _local6.top, (width - (_local6.left + _local6.right)), (height - (_local6.top + _local8)), radiusObj, _local4, _local5, null, GradientType.LINEAR, null, backgroundHole); } else { drawRoundRect(_local6.left, _local6.top, (width - (_local6.left + _local6.right)), (height - (_local6.top + _local8)), radius, _local4, _local5, null, GradientType.LINEAR, null, backgroundHole); }; } else { _local7.beginFill(_local4, _local5); _local7.drawRect(_local6.left, _local6.top, ((_arg1 - _local6.right) - _local6.left), ((_arg2 - _local6.bottom) - _local6.top)); _local7.endFill(); }; }; var _local3:String = getStyle("borderStyle"); if ((((((FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)) && ((((_local3 == "alert")) || ((_local3 == "default")))))) && ((getStyle("headerColors") == null)))){ _local10 = getStyle("highlightAlphas"); _local11 = (_local10) ? _local10[0] : 0.3; drawRoundRect(0, 0, _arg1, _arg2, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, _local11, null, GradientType.LINEAR, null, {x:0, y:1, w:_arg1, h:(_arg2 - 1), r:{tl:radius, tr:radius, bl:0, br:0}}); }; } mx_internal function drawDropShadow(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number):void{ var _local11:Number; var _local12:Boolean; if ((((((((getStyle("dropShadowEnabled") == false)) || ((getStyle("dropShadowEnabled") == "false")))) || ((_arg3 == 0)))) || ((_arg4 == 0)))){ return; }; var _local9:Number = getStyle("shadowDistance"); var _local10:String = getStyle("shadowDirection"); if (getStyle("borderStyle") == "applicationControlBar"){ _local12 = getStyle("docked"); _local11 = (_local12) ? 90 : getDropShadowAngle(_local9, _local10); _local9 = Math.abs(_local9); } else { _local11 = getDropShadowAngle(_local9, _local10); _local9 = (Math.abs(_local9) + 2); }; if (!dropShadow){ dropShadow = new RectangularDropShadow(); }; dropShadow.distance = _local9; dropShadow.angle = _local11; dropShadow.color = getStyle("dropShadowColor"); dropShadow.alpha = 0.4; dropShadow.tlRadius = _arg5; dropShadow.trRadius = _arg6; dropShadow.blRadius = _arg8; dropShadow.brRadius = _arg7; dropShadow.drawShadow(graphics, _arg1, _arg2, _arg3, _arg4); } mx_internal function getBackgroundColor():Object{ var _local2:Object; var _local1:IUIComponent = (parent as IUIComponent); if (((_local1) && (!(_local1.enabled)))){ _local2 = getStyle("backgroundDisabledColor"); if (((!((_local2 === null))) && (StyleManager.isValidStyleValue(_local2)))){ return (_local2); }; }; return (getStyle("backgroundColor")); } mx_internal function draw3dBorder(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ var _local7:Number = width; var _local8:Number = height; drawDropShadow(0, 0, width, height, 0, 0, 0, 0); var _local9:Graphics = graphics; _local9.beginFill(_arg1); _local9.drawRect(0, 0, _local7, _local8); _local9.drawRect(1, 0, (_local7 - 2), _local8); _local9.endFill(); _local9.beginFill(_arg2); _local9.drawRect(1, 0, (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg3); _local9.drawRect(1, (_local8 - 1), (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg4); _local9.drawRect(1, 1, (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg5); _local9.drawRect(1, (_local8 - 2), (_local7 - 2), 1); _local9.endFill(); _local9.beginFill(_arg6); _local9.drawRect(1, 2, (_local7 - 2), (_local8 - 4)); _local9.drawRect(2, 2, (_local7 - 4), (_local8 - 4)); _local9.endFill(); } mx_internal function getBackgroundColorMetrics():EdgeMetrics{ return (borderMetrics); } mx_internal function getDropShadowAngle(_arg1:Number, _arg2:String):Number{ if (_arg2 == "left"){ return (((_arg1 >= 0)) ? 135 : 225); //unresolved jump }; if (_arg2 == "right"){ return (((_arg1 >= 0)) ? 45 : 315); //unresolved jump }; return (((_arg1 >= 0)) ? 90 : 270); } override public function get borderMetrics():EdgeMetrics{ var _local1:Number; var _local3:String; if (_borderMetrics){ return (_borderMetrics); }; var _local2:String = getStyle("borderStyle"); if ((((_local2 == "default")) || ((_local2 == "alert")))){ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ _borderMetrics = new EdgeMetrics(0, 0, 0, 0); } else { return (EdgeMetrics.EMPTY); }; } else { if ((((_local2 == "controlBar")) || ((_local2 == "applicationControlBar")))){ _borderMetrics = new EdgeMetrics(1, 1, 1, 1); } else { if (_local2 == "solid"){ _local1 = getStyle("borderThickness"); if (isNaN(_local1)){ _local1 = 0; }; _borderMetrics = new EdgeMetrics(_local1, _local1, _local1, _local1); _local3 = getStyle("borderSides"); if (_local3 != "left top right bottom"){ if (_local3.indexOf("left") == -1){ _borderMetrics.left = 0; }; if (_local3.indexOf("top") == -1){ _borderMetrics.top = 0; }; if (_local3.indexOf("right") == -1){ _borderMetrics.right = 0; }; if (_local3.indexOf("bottom") == -1){ _borderMetrics.bottom = 0; }; }; } else { _local1 = BORDER_WIDTHS[_local2]; if (isNaN(_local1)){ _local1 = 0; }; _borderMetrics = new EdgeMetrics(_local1, _local1, _local1, _local1); }; }; }; return (_borderMetrics); } } }//package mx.skins.halo
Section 176
//HaloFocusRect (mx.skins.halo.HaloFocusRect) package mx.skins.halo { import mx.core.*; import mx.styles.*; import flash.display.*; import mx.skins.*; import mx.utils.*; public class HaloFocusRect extends ProgrammaticSkin implements IStyleClient { private var _focusColor:Number; mx_internal static const VERSION:String = "3.2.0.3958"; public function get inheritingStyles():Object{ return (styleName.inheritingStyles); } public function set inheritingStyles(_arg1:Object):void{ } public function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void{ } public function registerEffects(_arg1:Array):void{ } public function regenerateStyleCache(_arg1:Boolean):void{ } public function get styleDeclaration():CSSStyleDeclaration{ return (CSSStyleDeclaration(styleName)); } public function getClassStyleDeclarations():Array{ return ([]); } public function get className():String{ return ("HaloFocusRect"); } public function clearStyle(_arg1:String):void{ if (_arg1 == "focusColor"){ _focusColor = NaN; }; } public function setStyle(_arg1:String, _arg2):void{ if (_arg1 == "focusColor"){ _focusColor = _arg2; }; } public function set nonInheritingStyles(_arg1:Object):void{ } public function get nonInheritingStyles():Object{ return (styleName.nonInheritingStyles); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; super.updateDisplayList(_arg1, _arg2); var _local3:String = getStyle("focusBlendMode"); var _local4:Number = getStyle("focusAlpha"); var _local5:Number = getStyle("focusColor"); var _local6:Number = getStyle("cornerRadius"); var _local7:Number = getStyle("focusThickness"); var _local8:String = getStyle("focusRoundedCorners"); var _local9:Number = getStyle("themeColor"); var _local10:Number = _local5; if (isNaN(_local10)){ _local10 = _local9; }; var _local11:Graphics = graphics; _local11.clear(); blendMode = _local3; if (((!((_local8 == "tl tr bl br"))) && ((_local6 > 0)))){ _local12 = 0; _local13 = 0; _local14 = 0; _local15 = 0; _local16 = (_local6 + _local7); if (_local8.indexOf("tl") >= 0){ _local12 = _local16; }; if (_local8.indexOf("tr") >= 0){ _local14 = _local16; }; if (_local8.indexOf("bl") >= 0){ _local13 = _local16; }; if (_local8.indexOf("br") >= 0){ _local15 = _local16; }; _local11.beginFill(_local10, _local4); GraphicsUtil.drawRoundRectComplex(_local11, 0, 0, _arg1, _arg2, _local12, _local14, _local13, _local15); _local12 = (_local12) ? _local6 : 0; _local14 = (_local14) ? _local6 : 0; _local13 = (_local13) ? _local6 : 0; _local15 = (_local15) ? _local6 : 0; GraphicsUtil.drawRoundRectComplex(_local11, _local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local12, _local14, _local13, _local15); _local11.endFill(); _local16 = (_local6 + (_local7 / 2)); _local12 = (_local12) ? _local16 : 0; _local14 = (_local14) ? _local16 : 0; _local13 = (_local13) ? _local16 : 0; _local15 = (_local15) ? _local16 : 0; _local11.beginFill(_local10, _local4); GraphicsUtil.drawRoundRectComplex(_local11, (_local7 / 2), (_local7 / 2), (_arg1 - _local7), (_arg2 - _local7), _local12, _local14, _local13, _local15); _local12 = (_local12) ? _local6 : 0; _local14 = (_local14) ? _local6 : 0; _local13 = (_local13) ? _local6 : 0; _local15 = (_local15) ? _local6 : 0; GraphicsUtil.drawRoundRectComplex(_local11, _local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local12, _local14, _local13, _local15); _local11.endFill(); } else { _local11.beginFill(_local10, _local4); _local17 = (((_local6 > 0)) ? (_local6 + _local7) : 0 * 2); _local11.drawRoundRect(0, 0, _arg1, _arg2, _local17, _local17); _local17 = (_local6 * 2); _local11.drawRoundRect(_local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local17, _local17); _local11.endFill(); _local11.beginFill(_local10, _local4); _local17 = (((_local6 > 0)) ? (_local6 + (_local7 / 2)) : 0 * 2); _local11.drawRoundRect((_local7 / 2), (_local7 / 2), (_arg1 - _local7), (_arg2 - _local7), _local17, _local17); _local17 = (_local6 * 2); _local11.drawRoundRect(_local7, _local7, (_arg1 - (2 * _local7)), (_arg2 - (2 * _local7)), _local17, _local17); _local11.endFill(); }; } override public function getStyle(_arg1:String){ return (((_arg1 == "focusColor")) ? _focusColor : super.getStyle(_arg1)); } public function set styleDeclaration(_arg1:CSSStyleDeclaration):void{ } } }//package mx.skins.halo
Section 177
//PanelSkin (mx.skins.halo.PanelSkin) package mx.skins.halo { import mx.core.*; import flash.display.*; import flash.utils.*; public class PanelSkin extends HaloBorder { private var oldControlBarHeight:Number; protected var _panelBorderMetrics:EdgeMetrics; private var oldHeaderHeight:Number; mx_internal static const VERSION:String = "3.2.0.3958"; private static var panels:Object = {}; override public function styleChanged(_arg1:String):void{ super.styleChanged(_arg1); if ((((((((((((((((((_arg1 == null)) || ((_arg1 == "styleName")))) || ((_arg1 == "borderStyle")))) || ((_arg1 == "borderThickness")))) || ((_arg1 == "borderThicknessTop")))) || ((_arg1 == "borderThicknessBottom")))) || ((_arg1 == "borderThicknessLeft")))) || ((_arg1 == "borderThicknessRight")))) || ((_arg1 == "borderSides")))){ _panelBorderMetrics = null; }; invalidateDisplayList(); } override mx_internal function drawBorder(_arg1:Number, _arg2:Number):void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Graphics; var _local8:IContainer; var _local9:EdgeMetrics; super.drawBorder(_arg1, _arg2); if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ return; }; var _local3:String = getStyle("borderStyle"); if (_local3 == "default"){ _local4 = getStyle("backgroundAlpha"); _local5 = getStyle("borderAlpha"); backgroundAlphaName = "borderAlpha"; radiusObj = null; radius = getStyle("cornerRadius"); bRoundedCorners = (getStyle("roundedBottomCorners").toString().toLowerCase() == "true"); _local6 = (bRoundedCorners) ? radius : 0; _local7 = graphics; drawDropShadow(0, 0, _arg1, _arg2, radius, radius, _local6, _local6); if (!bRoundedCorners){ radiusObj = {}; }; _local8 = (parent as IContainer); if (_local8){ _local9 = _local8.viewMetrics; backgroundHole = {x:_local9.left, y:_local9.top, w:Math.max(0, ((_arg1 - _local9.left) - _local9.right)), h:Math.max(0, ((_arg2 - _local9.top) - _local9.bottom)), r:0}; if ((((backgroundHole.w > 0)) && ((backgroundHole.h > 0)))){ if (_local4 != _local5){ drawDropShadow(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h, 0, 0, 0, 0); }; _local7.beginFill(Number(backgroundColor), _local4); _local7.drawRect(backgroundHole.x, backgroundHole.y, backgroundHole.w, backgroundHole.h); _local7.endFill(); }; }; backgroundColor = getStyle("borderColor"); }; } override public function get borderMetrics():EdgeMetrics{ var _local4:Number; if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ return (super.borderMetrics); }; var _local1:Boolean = isPanel(parent); var _local2:IUIComponent = (_local1) ? Object(parent)._controlBar : null; var _local3:Number = (_local1) ? Object(parent).getHeaderHeightProxy() : NaN; if (((_local2) && (_local2.includeInLayout))){ _local4 = _local2.getExplicitOrMeasuredHeight(); }; if (((!((_local4 == oldControlBarHeight))) && (!(((isNaN(oldControlBarHeight)) && (isNaN(_local4))))))){ _panelBorderMetrics = null; }; if (((!((_local3 == oldHeaderHeight))) && (!(((isNaN(_local3)) && (isNaN(oldHeaderHeight))))))){ _panelBorderMetrics = null; }; if (_panelBorderMetrics){ return (_panelBorderMetrics); }; var _local5:EdgeMetrics = super.borderMetrics; var _local6:EdgeMetrics = new EdgeMetrics(0, 0, 0, 0); var _local7:Number = getStyle("borderThickness"); var _local8:Number = getStyle("borderThicknessLeft"); var _local9:Number = getStyle("borderThicknessTop"); var _local10:Number = getStyle("borderThicknessRight"); var _local11:Number = getStyle("borderThicknessBottom"); _local6.left = (_local5.left + (isNaN(_local8)) ? _local7 : _local8); _local6.top = (_local5.top + (isNaN(_local9)) ? _local7 : _local9); _local6.right = (_local5.bottom + (isNaN(_local10)) ? _local7 : _local10); _local6.bottom = (_local5.bottom + (isNaN(_local11)) ? (((_local2) && (!(isNaN(_local9))))) ? _local9 : (isNaN(_local8)) ? _local7 : _local8 : _local11); oldHeaderHeight = _local3; if (!isNaN(_local3)){ _local6.top = (_local6.top + _local3); }; oldControlBarHeight = _local4; if (!isNaN(_local4)){ _local6.bottom = (_local6.bottom + _local4); }; _panelBorderMetrics = _local6; return (_panelBorderMetrics); } override mx_internal function drawBackground(_arg1:Number, _arg2:Number):void{ var _local3:Array; var _local4:Number; super.drawBackground(_arg1, _arg2); if ((((getStyle("headerColors") == null)) && ((getStyle("borderStyle") == "default")))){ _local3 = getStyle("highlightAlphas"); _local4 = (_local3) ? _local3[0] : 0.3; drawRoundRect(0, 0, _arg1, _arg2, {tl:radius, tr:radius, bl:0, br:0}, 0xFFFFFF, _local4, null, GradientType.LINEAR, null, {x:0, y:1, w:_arg1, h:(_arg2 - 1), r:{tl:radius, tr:radius, bl:0, br:0}}); }; } override mx_internal function getBackgroundColorMetrics():EdgeMetrics{ if (getStyle("borderStyle") == "default"){ return (EdgeMetrics.EMPTY); }; return (super.borderMetrics); } private static function isPanel(_arg1:Object):Boolean{ var s:String; var x:XML; var parent = _arg1; s = getQualifiedClassName(parent); if (panels[s] == 1){ return (true); }; if (panels[s] == 0){ return (false); }; if (s == "mx.containers::Panel"){ (panels[s] == 1); return (true); }; x = describeType(parent); var xmllist:XMLList = x.extendsClass.(@type == "mx.containers::Panel"); if (xmllist.length() == 0){ panels[s] = 0; return (false); }; panels[s] = 1; return (true); } } }//package mx.skins.halo
Section 178
//TitleBackground (mx.skins.halo.TitleBackground) package mx.skins.halo { import mx.core.*; import mx.styles.*; import flash.display.*; import mx.skins.*; import mx.utils.*; public class TitleBackground extends ProgrammaticSkin { mx_internal static const VERSION:String = "3.2.0.3958"; override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ super.updateDisplayList(_arg1, _arg2); var _local3:Number = getStyle("borderAlpha"); var _local4:Number = getStyle("cornerRadius"); var _local5:Array = getStyle("highlightAlphas"); var _local6:Array = getStyle("headerColors"); var _local7 = !((_local6 == null)); StyleManager.getColorNames(_local6); var _local8:Number = ColorUtil.adjustBrightness2((_local6) ? _local6[1] : 0xFFFFFF, -20); var _local9:Graphics = graphics; _local9.clear(); if (_arg2 < 3){ return; }; if (_local7){ _local9.lineStyle(0, _local8, _local3); _local9.moveTo(0, _arg2); _local9.lineTo(_arg1, _arg2); _local9.lineStyle(0, 0, 0); drawRoundRect(0, 0, _arg1, _arg2, {tl:_local4, tr:_local4, bl:0, br:0}, _local6, _local3, verticalGradientMatrix(0, 0, _arg1, _arg2)); drawRoundRect(0, 0, _arg1, (_arg2 / 2), {tl:_local4, tr:_local4, bl:0, br:0}, [0xFFFFFF, 0xFFFFFF], _local5, verticalGradientMatrix(0, 0, _arg1, (_arg2 / 2))); drawRoundRect(0, 0, _arg1, _arg2, {tl:_local4, tr:_local4, bl:0, br:0}, 0xFFFFFF, _local5[0], null, GradientType.LINEAR, null, {x:0, y:1, w:_arg1, h:(_arg2 - 1), r:{tl:_local4, tr:_local4, bl:0, br:0}}); }; } } }//package mx.skins.halo
Section 179
//Border (mx.skins.Border) package mx.skins { import mx.core.*; public class Border extends ProgrammaticSkin implements IBorder { mx_internal static const VERSION:String = "3.2.0.3958"; public function get borderMetrics():EdgeMetrics{ return (EdgeMetrics.EMPTY); } } }//package mx.skins
Section 180
//ProgrammaticSkin (mx.skins.ProgrammaticSkin) package mx.skins { import mx.core.*; import mx.styles.*; import flash.display.*; import flash.geom.*; import mx.managers.*; import mx.utils.*; public class ProgrammaticSkin extends FlexShape implements IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin { private var _initialized:Boolean;// = false private var _height:Number; private var invalidateDisplayListFlag:Boolean;// = false private var _styleName:IStyleClient; private var _nestLevel:int;// = 0 private var _processedDescriptors:Boolean;// = false private var _updateCompletePendingFlag:Boolean;// = true private var _width:Number; mx_internal static const VERSION:String = "3.2.0.3958"; private static var tempMatrix:Matrix = new Matrix(); public function ProgrammaticSkin(){ _width = measuredWidth; _height = measuredHeight; } public function getStyle(_arg1:String){ return ((_styleName) ? _styleName.getStyle(_arg1) : null); } protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ } public function get nestLevel():int{ return (_nestLevel); } public function set nestLevel(_arg1:int):void{ _nestLevel = _arg1; invalidateDisplayList(); } override public function get height():Number{ return (_height); } public function get updateCompletePendingFlag():Boolean{ return (_updateCompletePendingFlag); } protected function verticalGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix{ return (rotatedGradientMatrix(_arg1, _arg2, _arg3, _arg4, 90)); } public function validateSize(_arg1:Boolean=false):void{ } public function invalidateDisplayList():void{ if (((!(invalidateDisplayListFlag)) && ((nestLevel > 0)))){ invalidateDisplayListFlag = true; UIComponentGlobals.layoutManager.invalidateDisplayList(this); }; } public function set updateCompletePendingFlag(_arg1:Boolean):void{ _updateCompletePendingFlag = _arg1; } protected function horizontalGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Matrix{ return (rotatedGradientMatrix(_arg1, _arg2, _arg3, _arg4, 0)); } override public function set height(_arg1:Number):void{ _height = _arg1; invalidateDisplayList(); } public function set processedDescriptors(_arg1:Boolean):void{ _processedDescriptors = _arg1; } public function validateDisplayList():void{ invalidateDisplayListFlag = false; updateDisplayList(width, height); } public function get measuredWidth():Number{ return (0); } override public function set width(_arg1:Number):void{ _width = _arg1; invalidateDisplayList(); } public function get measuredHeight():Number{ return (0); } public function set initialized(_arg1:Boolean):void{ _initialized = _arg1; } protected function drawRoundRect(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object=null, _arg6:Object=null, _arg7:Object=null, _arg8:Matrix=null, _arg9:String="linear", _arg10:Array=null, _arg11:Object=null):void{ var _local13:Number; var _local14:Array; var _local15:Object; var _local12:Graphics = graphics; if ((((_arg3 == 0)) || ((_arg4 == 0)))){ return; }; if (_arg6 !== null){ if ((_arg6 is uint)){ _local12.beginFill(uint(_arg6), Number(_arg7)); } else { if ((_arg6 is Array)){ _local14 = ((_arg7 is Array)) ? (_arg7 as Array) : [_arg7, _arg7]; if (!_arg10){ _arg10 = [0, 0xFF]; }; _local12.beginGradientFill(_arg9, (_arg6 as Array), _local14, _arg10, _arg8); }; }; }; if (!_arg5){ _local12.drawRect(_arg1, _arg2, _arg3, _arg4); } else { if ((_arg5 is Number)){ _local13 = (Number(_arg5) * 2); _local12.drawRoundRect(_arg1, _arg2, _arg3, _arg4, _local13, _local13); } else { GraphicsUtil.drawRoundRectComplex(_local12, _arg1, _arg2, _arg3, _arg4, _arg5.tl, _arg5.tr, _arg5.bl, _arg5.br); }; }; if (_arg11){ _local15 = _arg11.r; if ((_local15 is Number)){ _local13 = (Number(_local15) * 2); _local12.drawRoundRect(_arg11.x, _arg11.y, _arg11.w, _arg11.h, _local13, _local13); } else { GraphicsUtil.drawRoundRectComplex(_local12, _arg11.x, _arg11.y, _arg11.w, _arg11.h, _local15.tl, _local15.tr, _local15.bl, _local15.br); }; }; if (_arg6 !== null){ _local12.endFill(); }; } public function get processedDescriptors():Boolean{ return (_processedDescriptors); } public function set styleName(_arg1:Object):void{ if (_styleName != _arg1){ _styleName = (_arg1 as IStyleClient); invalidateDisplayList(); }; } public function setActualSize(_arg1:Number, _arg2:Number):void{ var _local3:Boolean; if (_width != _arg1){ _width = _arg1; _local3 = true; }; if (_height != _arg2){ _height = _arg2; _local3 = true; }; if (_local3){ invalidateDisplayList(); }; } public function styleChanged(_arg1:String):void{ invalidateDisplayList(); } override public function get width():Number{ return (_width); } public function invalidateProperties():void{ } public function get initialized():Boolean{ return (_initialized); } protected function rotatedGradientMatrix(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Matrix{ tempMatrix.createGradientBox(_arg3, _arg4, ((_arg5 * Math.PI) / 180), _arg1, _arg2); return (tempMatrix); } public function move(_arg1:Number, _arg2:Number):void{ this.x = _arg1; this.y = _arg2; } public function get styleName():Object{ return (_styleName); } public function validateNow():void{ if (invalidateDisplayListFlag){ validateDisplayList(); }; } public function invalidateSize():void{ } public function validateProperties():void{ } } }//package mx.skins
Section 181
//RectangularBorder (mx.skins.RectangularBorder) package mx.skins { import flash.events.*; import mx.core.*; import mx.styles.*; import flash.system.*; import flash.display.*; import flash.geom.*; import mx.resources.*; import flash.utils.*; import flash.net.*; public class RectangularBorder extends Border implements IRectangularBorder { private var backgroundImage:DisplayObject; private var backgroundImageHeight:Number; private var _backgroundImageBounds:Rectangle; private var backgroundImageStyle:Object; private var backgroundImageWidth:Number; private var resourceManager:IResourceManager; mx_internal static const VERSION:String = "3.2.0.3958"; public function RectangularBorder(){ resourceManager = ResourceManager.getInstance(); super(); addEventListener(Event.REMOVED, removedHandler); } public function layoutBackgroundImage():void{ var _local4:Number; var _local5:Number; var _local7:Number; var _local8:Number; var _local14:Number; var _local15:Graphics; var _local1:DisplayObject = parent; var _local2:EdgeMetrics = ((_local1 is IContainer)) ? IContainer(_local1).viewMetrics : borderMetrics; var _local3 = !((getStyle("backgroundAttachment") == "fixed")); if (_backgroundImageBounds){ _local4 = _backgroundImageBounds.width; _local5 = _backgroundImageBounds.height; } else { _local4 = ((width - _local2.left) - _local2.right); _local5 = ((height - _local2.top) - _local2.bottom); }; var _local6:Number = getBackgroundSize(); if (isNaN(_local6)){ _local7 = 1; _local8 = 1; } else { _local14 = (_local6 * 0.01); _local7 = ((_local14 * _local4) / backgroundImageWidth); _local8 = ((_local14 * _local5) / backgroundImageHeight); }; backgroundImage.scaleX = _local7; backgroundImage.scaleY = _local8; var _local9:Number = Math.round((0.5 * (_local4 - (backgroundImageWidth * _local7)))); var _local10:Number = Math.round((0.5 * (_local5 - (backgroundImageHeight * _local8)))); backgroundImage.x = _local2.left; backgroundImage.y = _local2.top; var _local11:Shape = Shape(backgroundImage.mask); _local11.x = _local2.left; _local11.y = _local2.top; if (((_local3) && ((_local1 is IContainer)))){ _local9 = (_local9 - IContainer(_local1).horizontalScrollPosition); _local10 = (_local10 - IContainer(_local1).verticalScrollPosition); }; backgroundImage.alpha = getStyle("backgroundAlpha"); backgroundImage.x = (backgroundImage.x + _local9); backgroundImage.y = (backgroundImage.y + _local10); var _local12:Number = ((width - _local2.left) - _local2.right); var _local13:Number = ((height - _local2.top) - _local2.bottom); if (((!((_local11.width == _local12))) || (!((_local11.height == _local13))))){ _local15 = _local11.graphics; _local15.clear(); _local15.beginFill(0xFFFFFF); _local15.drawRect(0, 0, _local12, _local13); _local15.endFill(); }; } public function set backgroundImageBounds(_arg1:Rectangle):void{ _backgroundImageBounds = _arg1; invalidateDisplayList(); } private function getBackgroundSize():Number{ var _local3:int; var _local1:Number = NaN; var _local2:Object = getStyle("backgroundSize"); if (((_local2) && ((_local2 is String)))){ _local3 = _local2.indexOf("%"); if (_local3 != -1){ _local1 = Number(_local2.substr(0, _local3)); }; }; return (_local1); } private function removedHandler(_arg1:Event):void{ var _local2:IChildList; if (backgroundImage){ _local2 = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); _local2.removeChild(backgroundImage.mask); _local2.removeChild(backgroundImage); backgroundImage = null; }; } private function initBackgroundImage(_arg1:DisplayObject):void{ backgroundImage = _arg1; if ((_arg1 is Loader)){ backgroundImageWidth = Loader(_arg1).contentLoaderInfo.width; backgroundImageHeight = Loader(_arg1).contentLoaderInfo.height; } else { backgroundImageWidth = backgroundImage.width; backgroundImageHeight = backgroundImage.height; if ((_arg1 is ISimpleStyleClient)){ ISimpleStyleClient(_arg1).styleName = styleName; }; }; var _local2:IChildList = ((parent is IRawChildrenContainer)) ? IRawChildrenContainer(parent).rawChildren : IChildList(parent); var _local3:Shape = new FlexShape(); _local3.name = "backgroundMask"; _local3.x = 0; _local3.y = 0; _local2.addChild(_local3); var _local4:int = _local2.getChildIndex(this); _local2.addChildAt(backgroundImage, (_local4 + 1)); backgroundImage.mask = _local3; } public function get backgroundImageBounds():Rectangle{ return (_backgroundImageBounds); } public function get hasBackgroundImage():Boolean{ return (!((backgroundImage == null))); } private function completeEventHandler(_arg1:Event):void{ if (!parent){ return; }; var _local2:DisplayObject = DisplayObject(LoaderInfo(_arg1.target).loader); initBackgroundImage(_local2); layoutBackgroundImage(); dispatchEvent(_arg1.clone()); } override protected function updateDisplayList(_arg1:Number, _arg2:Number):void{ var cls:Class; var newStyleObj:DisplayObject; var loader:Loader; var loaderContext:LoaderContext; var message:String; var unscaledWidth = _arg1; var unscaledHeight = _arg2; if (!parent){ return; }; var newStyle:Object = getStyle("backgroundImage"); if (newStyle != backgroundImageStyle){ removedHandler(null); backgroundImageStyle = newStyle; if (((newStyle) && ((newStyle as Class)))){ cls = Class(newStyle); initBackgroundImage(new (cls)); } else { if (((newStyle) && ((newStyle is String)))){ try { cls = Class(getDefinitionByName(String(newStyle))); } catch(e:Error) { }; if (cls){ newStyleObj = new (cls); initBackgroundImage(newStyleObj); } else { loader = new FlexLoader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeEventHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorEventHandler); loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, errorEventHandler); loaderContext = new LoaderContext(); loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(new URLRequest(String(newStyle)), loaderContext); }; } else { if (newStyle){ message = resourceManager.getString("skins", "notLoaded", [newStyle]); throw (new Error(message)); }; }; }; }; if (backgroundImage){ layoutBackgroundImage(); }; } private function errorEventHandler(_arg1:Event):void{ } } }//package mx.skins
Section 182
//CSSStyleDeclaration (mx.styles.CSSStyleDeclaration) package mx.styles { import flash.events.*; import mx.core.*; import flash.display.*; import mx.managers.*; import flash.utils.*; public class CSSStyleDeclaration extends EventDispatcher { mx_internal var effects:Array; protected var overrides:Object; public var defaultFactory:Function; public var factory:Function; mx_internal var selectorRefCount:int;// = 0 private var styleManager:IStyleManager2; private var clones:Dictionary; mx_internal static const VERSION:String = "3.2.0.3958"; private static const NOT_A_COLOR:uint = 4294967295; private static const FILTERMAP_PROP:String = "__reserved__filterMap"; public function CSSStyleDeclaration(_arg1:String=null){ clones = new Dictionary(true); super(); if (_arg1){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); styleManager.setStyleDeclaration(_arg1, this, false); }; } mx_internal function addStyleToProtoChain(_arg1:Object, _arg2:DisplayObject, _arg3:Object=null):Object{ var p:String; var emptyObjectFactory:Function; var filteredChain:Object; var filterObjectFactory:Function; var i:String; var chain = _arg1; var target = _arg2; var filterMap = _arg3; var nodeAddedToChain:Boolean; var originalChain:Object = chain; if (filterMap){ chain = {}; }; if (defaultFactory != null){ defaultFactory.prototype = chain; chain = new defaultFactory(); nodeAddedToChain = true; }; if (factory != null){ factory.prototype = chain; chain = new factory(); nodeAddedToChain = true; }; if (overrides){ if ((((defaultFactory == null)) && ((factory == null)))){ emptyObjectFactory = function ():void{ }; emptyObjectFactory.prototype = chain; chain = new (emptyObjectFactory); nodeAddedToChain = true; }; for (p in overrides) { if (overrides[p] === undefined){ delete chain[p]; } else { chain[p] = overrides[p]; }; }; }; if (filterMap){ if (nodeAddedToChain){ filteredChain = {}; filterObjectFactory = function ():void{ }; filterObjectFactory.prototype = originalChain; filteredChain = new (filterObjectFactory); for (i in chain) { if (filterMap[i] != null){ filteredChain[filterMap[i]] = chain[i]; }; }; chain = filteredChain; chain[FILTERMAP_PROP] = filterMap; } else { chain = originalChain; }; }; if (nodeAddedToChain){ clones[chain] = 1; }; return (chain); } public function getStyle(_arg1:String){ var _local2:*; var _local3:*; if (overrides){ if ((((_arg1 in overrides)) && ((overrides[_arg1] === undefined)))){ return (undefined); }; _local3 = overrides[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; if (factory != null){ factory.prototype = {}; _local2 = new factory(); _local3 = _local2[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; if (defaultFactory != null){ defaultFactory.prototype = {}; _local2 = new defaultFactory(); _local3 = _local2[_arg1]; if (_local3 !== undefined){ return (_local3); }; }; return (undefined); } public function clearStyle(_arg1:String):void{ setStyle(_arg1, undefined); } public function setStyle(_arg1:String, _arg2):void{ var _local7:int; var _local8:Object; var _local3:Object = getStyle(_arg1); var _local4:Boolean; if ((((((((((selectorRefCount > 0)) && ((factory == null)))) && ((defaultFactory == null)))) && (!(overrides)))) && (!((_local3 === _arg2))))){ _local4 = true; }; if (_arg2 !== undefined){ setStyle(_arg1, _arg2); } else { if (_arg2 == _local3){ return; }; setStyle(_arg1, _arg2); }; var _local5:Array = SystemManagerGlobals.topLevelSystemManagers; var _local6:int = _local5.length; if (_local4){ _local7 = 0; while (_local7 < _local6) { _local8 = _local5[_local7]; _local8.regenerateStyleCache(true); _local7++; }; }; _local7 = 0; while (_local7 < _local6) { _local8 = _local5[_local7]; _local8.notifyStyleChangeInChildren(_arg1, true); _local7++; }; } private function clearStyleAttr(_arg1:String):void{ var _local2:*; if (!overrides){ overrides = {}; }; overrides[_arg1] = undefined; for (_local2 in clones) { delete _local2[_arg1]; }; } mx_internal function createProtoChainRoot():Object{ var _local1:Object = {}; if (defaultFactory != null){ defaultFactory.prototype = _local1; _local1 = new defaultFactory(); }; if (factory != null){ factory.prototype = _local1; _local1 = new factory(); }; clones[_local1] = 1; return (_local1); } mx_internal function clearOverride(_arg1:String):void{ if (((overrides) && (overrides[_arg1]))){ delete overrides[_arg1]; }; } mx_internal function setStyle(_arg1:String, _arg2):void{ var _local3:Object; var _local4:*; var _local5:Number; var _local6:Object; if (_arg2 === undefined){ clearStyleAttr(_arg1); return; }; if ((_arg2 is String)){ if (!styleManager){ styleManager = (Singleton.getInstance("mx.styles::IStyleManager2") as IStyleManager2); }; _local5 = styleManager.getColorName(_arg2); if (_local5 != NOT_A_COLOR){ _arg2 = _local5; }; }; if (defaultFactory != null){ _local3 = new defaultFactory(); if (_local3[_arg1] !== _arg2){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; } else { if (overrides){ delete overrides[_arg1]; }; }; }; if (factory != null){ _local3 = new factory(); if (_local3[_arg1] !== _arg2){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; } else { if (overrides){ delete overrides[_arg1]; }; }; }; if ((((defaultFactory == null)) && ((factory == null)))){ if (!overrides){ overrides = {}; }; overrides[_arg1] = _arg2; }; for (_local4 in clones) { _local6 = _local4[FILTERMAP_PROP]; if (_local6){ if (_local6[_arg1] != null){ _local4[_local6[_arg1]] = _arg2; }; } else { _local4[_arg1] = _arg2; }; }; } } }//package mx.styles
Section 183
//ISimpleStyleClient (mx.styles.ISimpleStyleClient) package mx.styles { public interface ISimpleStyleClient { function set styleName(_arg1:Object):void; function styleChanged(_arg1:String):void; function get styleName():Object; } }//package mx.styles
Section 184
//IStyleClient (mx.styles.IStyleClient) package mx.styles { public interface IStyleClient extends ISimpleStyleClient { function regenerateStyleCache(_arg1:Boolean):void; function get className():String; function clearStyle(_arg1:String):void; function getClassStyleDeclarations():Array; function get inheritingStyles():Object; function set nonInheritingStyles(_arg1:Object):void; function setStyle(_arg1:String, _arg2):void; function get styleDeclaration():CSSStyleDeclaration; function set styleDeclaration(_arg1:CSSStyleDeclaration):void; function get nonInheritingStyles():Object; function set inheritingStyles(_arg1:Object):void; function getStyle(_arg1:String); function notifyStyleChangeInChildren(_arg1:String, _arg2:Boolean):void; function registerEffects(_arg1:Array):void; } }//package mx.styles
Section 185
//IStyleManager (mx.styles.IStyleManager) package mx.styles { import flash.events.*; public interface IStyleManager { function isColorName(_arg1:String):Boolean; function registerParentDisplayListInvalidatingStyle(_arg1:String):void; function registerInheritingStyle(_arg1:String):void; function set stylesRoot(_arg1:Object):void; function get typeSelectorCache():Object; function styleDeclarationsChanged():void; function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void; function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean; function isSizeInvalidatingStyle(_arg1:String):Boolean; function get inheritingStyles():Object; function isValidStyleValue(_arg1):Boolean; function isParentSizeInvalidatingStyle(_arg1:String):Boolean; function getColorName(_arg1:Object):uint; function set typeSelectorCache(_arg1:Object):void; function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void; function getColorNames(_arg1:Array):void; function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher; function isInheritingStyle(_arg1:String):Boolean; function set inheritingStyles(_arg1:Object):void; function get stylesRoot():Object; function initProtoChainRoots():void; function registerColorName(_arg1:String, _arg2:uint):void; function registerParentSizeInvalidatingStyle(_arg1:String):void; function registerSizeInvalidatingStyle(_arg1:String):void; function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void; function isInheritingTextFormatStyle(_arg1:String):Boolean; function getStyleDeclaration(_arg1:String):CSSStyleDeclaration; } }//package mx.styles
Section 186
//IStyleManager2 (mx.styles.IStyleManager2) package mx.styles { import flash.events.*; import flash.system.*; public interface IStyleManager2 extends IStyleManager { function get selectors():Array; function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher; } }//package mx.styles
Section 187
//IStyleModule (mx.styles.IStyleModule) package mx.styles { public interface IStyleModule { function unload():void; } }//package mx.styles
Section 188
//StyleManager (mx.styles.StyleManager) package mx.styles { import flash.events.*; import mx.core.*; import flash.system.*; public class StyleManager { mx_internal static const VERSION:String = "3.2.0.3958"; public static const NOT_A_COLOR:uint = 4294967295; private static var _impl:IStyleManager2; private static var implClassDependency:StyleManagerImpl; public static function isParentSizeInvalidatingStyle(_arg1:String):Boolean{ return (impl.isParentSizeInvalidatingStyle(_arg1)); } public static function registerInheritingStyle(_arg1:String):void{ impl.registerInheritingStyle(_arg1); } mx_internal static function set stylesRoot(_arg1:Object):void{ impl.stylesRoot = _arg1; } mx_internal static function get inheritingStyles():Object{ return (impl.inheritingStyles); } mx_internal static function styleDeclarationsChanged():void{ impl.styleDeclarationsChanged(); } public static function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void{ impl.setStyleDeclaration(_arg1, _arg2, _arg3); } public static function registerParentDisplayListInvalidatingStyle(_arg1:String):void{ impl.registerParentDisplayListInvalidatingStyle(_arg1); } mx_internal static function get typeSelectorCache():Object{ return (impl.typeSelectorCache); } mx_internal static function set inheritingStyles(_arg1:Object):void{ impl.inheritingStyles = _arg1; } public static function isColorName(_arg1:String):Boolean{ return (impl.isColorName(_arg1)); } public static function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean{ return (impl.isParentDisplayListInvalidatingStyle(_arg1)); } public static function isSizeInvalidatingStyle(_arg1:String):Boolean{ return (impl.isSizeInvalidatingStyle(_arg1)); } public static function getColorName(_arg1:Object):uint{ return (impl.getColorName(_arg1)); } mx_internal static function set typeSelectorCache(_arg1:Object):void{ impl.typeSelectorCache = _arg1; } public static function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void{ impl.unloadStyleDeclarations(_arg1, _arg2); } public static function getColorNames(_arg1:Array):void{ impl.getColorNames(_arg1); } public static function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false, _arg4:ApplicationDomain=null, _arg5:SecurityDomain=null):IEventDispatcher{ return (impl.loadStyleDeclarations2(_arg1, _arg2, _arg4, _arg5)); } private static function get impl():IStyleManager2{ if (!_impl){ _impl = IStyleManager2(Singleton.getInstance("mx.styles::IStyleManager2")); }; return (_impl); } public static function isValidStyleValue(_arg1):Boolean{ return (impl.isValidStyleValue(_arg1)); } mx_internal static function get stylesRoot():Object{ return (impl.stylesRoot); } public static function isInheritingStyle(_arg1:String):Boolean{ return (impl.isInheritingStyle(_arg1)); } mx_internal static function initProtoChainRoots():void{ impl.initProtoChainRoots(); } public static function registerParentSizeInvalidatingStyle(_arg1:String):void{ impl.registerParentSizeInvalidatingStyle(_arg1); } public static function get selectors():Array{ return (impl.selectors); } public static function registerSizeInvalidatingStyle(_arg1:String):void{ impl.registerSizeInvalidatingStyle(_arg1); } public static function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void{ impl.clearStyleDeclaration(_arg1, _arg2); } public static function registerColorName(_arg1:String, _arg2:uint):void{ impl.registerColorName(_arg1, _arg2); } public static function isInheritingTextFormatStyle(_arg1:String):Boolean{ return (impl.isInheritingTextFormatStyle(_arg1)); } public static function getStyleDeclaration(_arg1:String):CSSStyleDeclaration{ return (impl.getStyleDeclaration(_arg1)); } } }//package mx.styles
Section 189
//StyleManagerImpl (mx.styles.StyleManagerImpl) package mx.styles { import flash.events.*; import mx.core.*; import flash.system.*; import mx.modules.*; import mx.events.*; import mx.resources.*; import mx.managers.*; import flash.utils.*; public class StyleManagerImpl implements IStyleManager2 { private var _stylesRoot:Object; private var _selectors:Object; private var styleModules:Object; private var _inheritingStyles:Object; private var resourceManager:IResourceManager; private var _typeSelectorCache:Object; mx_internal static const VERSION:String = "3.2.0.3958"; private static var parentSizeInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var colorNames:Object = {transparent:"transparent", black:0, blue:0xFF, green:0x8000, gray:0x808080, silver:0xC0C0C0, lime:0xFF00, olive:0x808000, white:0xFFFFFF, yellow:0xFFFF00, maroon:0x800000, navy:128, red:0xFF0000, purple:0x800080, teal:0x8080, fuchsia:0xFF00FF, aqua:0xFFFF, magenta:0xFF00FF, cyan:0xFFFF, halogreen:8453965, haloblue:40447, haloorange:0xFFB600, halosilver:11455193}; private static var inheritingTextFormatStyles:Object = {align:true, bold:true, color:true, font:true, indent:true, italic:true, size:true}; private static var instance:IStyleManager2; private static var parentDisplayListInvalidatingStyles:Object = {bottom:true, horizontalCenter:true, left:true, right:true, top:true, verticalCenter:true, baseline:true}; private static var sizeInvalidatingStyles:Object = {borderStyle:true, borderThickness:true, fontAntiAliasType:true, fontFamily:true, fontGridFitType:true, fontSharpness:true, fontSize:true, fontStyle:true, fontThickness:true, fontWeight:true, headerHeight:true, horizontalAlign:true, horizontalGap:true, kerning:true, leading:true, letterSpacing:true, paddingBottom:true, paddingLeft:true, paddingRight:true, paddingTop:true, strokeWidth:true, tabHeight:true, tabWidth:true, verticalAlign:true, verticalGap:true}; public function StyleManagerImpl(){ _selectors = {}; styleModules = {}; resourceManager = ResourceManager.getInstance(); _inheritingStyles = {}; _typeSelectorCache = {}; super(); } public function setStyleDeclaration(_arg1:String, _arg2:CSSStyleDeclaration, _arg3:Boolean):void{ _arg2.selectorRefCount++; _selectors[_arg1] = _arg2; typeSelectorCache = {}; if (_arg3){ styleDeclarationsChanged(); }; } public function registerParentDisplayListInvalidatingStyle(_arg1:String):void{ parentDisplayListInvalidatingStyles[_arg1] = true; } public function getStyleDeclaration(_arg1:String):CSSStyleDeclaration{ var _local2:int; if (_arg1.charAt(0) != "."){ _local2 = _arg1.lastIndexOf("."); if (_local2 != -1){ _arg1 = _arg1.substr((_local2 + 1)); }; }; return (_selectors[_arg1]); } public function set typeSelectorCache(_arg1:Object):void{ _typeSelectorCache = _arg1; } public function isColorName(_arg1:String):Boolean{ return (!((colorNames[_arg1.toLowerCase()] === undefined))); } public function set inheritingStyles(_arg1:Object):void{ _inheritingStyles = _arg1; } public function getColorNames(_arg1:Array):void{ var _local4:uint; if (!_arg1){ return; }; var _local2:int = _arg1.length; var _local3:int; while (_local3 < _local2) { if (((!((_arg1[_local3] == null))) && (isNaN(_arg1[_local3])))){ _local4 = getColorName(_arg1[_local3]); if (_local4 != StyleManager.NOT_A_COLOR){ _arg1[_local3] = _local4; }; }; _local3++; }; } public function isInheritingTextFormatStyle(_arg1:String):Boolean{ return ((inheritingTextFormatStyles[_arg1] == true)); } public function registerParentSizeInvalidatingStyle(_arg1:String):void{ parentSizeInvalidatingStyles[_arg1] = true; } public function registerColorName(_arg1:String, _arg2:uint):void{ colorNames[_arg1.toLowerCase()] = _arg2; } public function isParentSizeInvalidatingStyle(_arg1:String):Boolean{ return ((parentSizeInvalidatingStyles[_arg1] == true)); } public function registerInheritingStyle(_arg1:String):void{ inheritingStyles[_arg1] = true; } public function set stylesRoot(_arg1:Object):void{ _stylesRoot = _arg1; } public function get typeSelectorCache():Object{ return (_typeSelectorCache); } public function isParentDisplayListInvalidatingStyle(_arg1:String):Boolean{ return ((parentDisplayListInvalidatingStyles[_arg1] == true)); } public function isSizeInvalidatingStyle(_arg1:String):Boolean{ return ((sizeInvalidatingStyles[_arg1] == true)); } public function styleDeclarationsChanged():void{ var _local4:Object; var _local1:Array = SystemManagerGlobals.topLevelSystemManagers; var _local2:int = _local1.length; var _local3:int; while (_local3 < _local2) { _local4 = _local1[_local3]; _local4.regenerateStyleCache(true); _local4.notifyStyleChangeInChildren(null, true); _local3++; }; } public function isValidStyleValue(_arg1):Boolean{ return (!((_arg1 === undefined))); } public function loadStyleDeclarations(_arg1:String, _arg2:Boolean=true, _arg3:Boolean=false):IEventDispatcher{ return (loadStyleDeclarations2(_arg1, _arg2)); } public function get inheritingStyles():Object{ return (_inheritingStyles); } public function unloadStyleDeclarations(_arg1:String, _arg2:Boolean=true):void{ var _local4:IModuleInfo; var _local3:StyleModuleInfo = styleModules[_arg1]; if (_local3){ _local3.styleModule.unload(); _local4 = _local3.module; _local4.unload(); _local4.removeEventListener(ModuleEvent.READY, _local3.readyHandler); _local4.removeEventListener(ModuleEvent.ERROR, _local3.errorHandler); styleModules[_arg1] = null; }; if (_arg2){ styleDeclarationsChanged(); }; } public function getColorName(_arg1:Object):uint{ var _local2:Number; var _local3:*; if ((_arg1 is String)){ if (_arg1.charAt(0) == "#"){ _local2 = Number(("0x" + _arg1.slice(1))); return ((isNaN(_local2)) ? StyleManager.NOT_A_COLOR : uint(_local2)); }; if ((((_arg1.charAt(1) == "x")) && ((_arg1.charAt(0) == "0")))){ _local2 = Number(_arg1); return ((isNaN(_local2)) ? StyleManager.NOT_A_COLOR : uint(_local2)); }; _local3 = colorNames[_arg1.toLowerCase()]; if (_local3 === undefined){ return (StyleManager.NOT_A_COLOR); }; return (uint(_local3)); }; return (uint(_arg1)); } public function isInheritingStyle(_arg1:String):Boolean{ return ((inheritingStyles[_arg1] == true)); } public function get stylesRoot():Object{ return (_stylesRoot); } public function initProtoChainRoots():void{ if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0){ delete _inheritingStyles["textDecoration"]; delete _inheritingStyles["leading"]; }; if (!stylesRoot){ stylesRoot = _selectors["global"].addStyleToProtoChain({}, null); }; } public function loadStyleDeclarations2(_arg1:String, _arg2:Boolean=true, _arg3:ApplicationDomain=null, _arg4:SecurityDomain=null):IEventDispatcher{ var module:IModuleInfo; var styleEventDispatcher:StyleEventDispatcher; var timer:Timer; var timerHandler:Function; var url = _arg1; var update = _arg2; var applicationDomain = _arg3; var securityDomain = _arg4; module = ModuleManager.getModule(url); var readyHandler:Function = function (_arg1:ModuleEvent):void{ var _local2:IStyleModule = IStyleModule(_arg1.module.factory.create()); styleModules[_arg1.module.url].styleModule = _local2; if (update){ styleDeclarationsChanged(); }; }; module.addEventListener(ModuleEvent.READY, readyHandler, false, 0, true); styleEventDispatcher = new StyleEventDispatcher(module); var errorHandler:Function = function (_arg1:ModuleEvent):void{ var _local3:StyleEvent; var _local2:String = resourceManager.getString("styles", "unableToLoad", [_arg1.errorText, url]); if (styleEventDispatcher.willTrigger(StyleEvent.ERROR)){ _local3 = new StyleEvent(StyleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local3.bytesLoaded = 0; _local3.bytesTotal = 0; _local3.errorText = _local2; styleEventDispatcher.dispatchEvent(_local3); } else { throw (new Error(_local2)); }; }; module.addEventListener(ModuleEvent.ERROR, errorHandler, false, 0, true); styleModules[url] = new StyleModuleInfo(module, readyHandler, errorHandler); timer = new Timer(0); timerHandler = function (_arg1:TimerEvent):void{ timer.removeEventListener(TimerEvent.TIMER, timerHandler); timer.stop(); module.load(applicationDomain, securityDomain); }; timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true); timer.start(); return (styleEventDispatcher); } public function registerSizeInvalidatingStyle(_arg1:String):void{ sizeInvalidatingStyles[_arg1] = true; } public function clearStyleDeclaration(_arg1:String, _arg2:Boolean):void{ var _local3:CSSStyleDeclaration = getStyleDeclaration(_arg1); if (((_local3) && ((_local3.selectorRefCount > 0)))){ _local3.selectorRefCount--; }; delete _selectors[_arg1]; if (_arg2){ styleDeclarationsChanged(); }; } public function get selectors():Array{ var _local2:String; var _local1:Array = []; for (_local2 in _selectors) { _local1.push(_local2); }; return (_local1); } public static function getInstance():IStyleManager2{ if (!instance){ instance = new (StyleManagerImpl); }; return (instance); } } }//package mx.styles import flash.events.*; import mx.modules.*; import mx.events.*; class StyleEventDispatcher extends EventDispatcher { private function StyleEventDispatcher(_arg1:IModuleInfo){ _arg1.addEventListener(ModuleEvent.ERROR, moduleInfo_errorHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.PROGRESS, moduleInfo_progressHandler, false, 0, true); _arg1.addEventListener(ModuleEvent.READY, moduleInfo_readyHandler, false, 0, true); } private function moduleInfo_progressHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.PROGRESS, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; dispatchEvent(_local2); } private function moduleInfo_readyHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.COMPLETE); dispatchEvent(_local2); } private function moduleInfo_errorHandler(_arg1:ModuleEvent):void{ var _local2:StyleEvent = new StyleEvent(StyleEvent.ERROR, _arg1.bubbles, _arg1.cancelable); _local2.bytesLoaded = _arg1.bytesLoaded; _local2.bytesTotal = _arg1.bytesTotal; _local2.errorText = _arg1.errorText; dispatchEvent(_local2); } } class StyleModuleInfo { public var errorHandler:Function; public var readyHandler:Function; public var module:IModuleInfo; public var styleModule:IStyleModule; private function StyleModuleInfo(_arg1:IModuleInfo, _arg2:Function, _arg3:Function){ this.module = _arg1; this.readyHandler = _arg2; this.errorHandler = _arg3; } }
Section 190
//ColorUtil (mx.utils.ColorUtil) package mx.utils { import mx.core.*; public class ColorUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public static function adjustBrightness2(_arg1:uint, _arg2:Number):uint{ var _local3:Number; var _local4:Number; var _local5:Number; if (_arg2 == 0){ return (_arg1); }; if (_arg2 < 0){ _arg2 = ((100 + _arg2) / 100); _local3 = (((_arg1 >> 16) & 0xFF) * _arg2); _local4 = (((_arg1 >> 8) & 0xFF) * _arg2); _local5 = ((_arg1 & 0xFF) * _arg2); } else { _arg2 = (_arg2 / 100); _local3 = ((_arg1 >> 16) & 0xFF); _local4 = ((_arg1 >> 8) & 0xFF); _local5 = (_arg1 & 0xFF); _local3 = (_local3 + ((0xFF - _local3) * _arg2)); _local4 = (_local4 + ((0xFF - _local4) * _arg2)); _local5 = (_local5 + ((0xFF - _local5) * _arg2)); _local3 = Math.min(_local3, 0xFF); _local4 = Math.min(_local4, 0xFF); _local5 = Math.min(_local5, 0xFF); }; return ((((_local3 << 16) | (_local4 << 8)) | _local5)); } public static function rgbMultiply(_arg1:uint, _arg2:uint):uint{ var _local3:Number = ((_arg1 >> 16) & 0xFF); var _local4:Number = ((_arg1 >> 8) & 0xFF); var _local5:Number = (_arg1 & 0xFF); var _local6:Number = ((_arg2 >> 16) & 0xFF); var _local7:Number = ((_arg2 >> 8) & 0xFF); var _local8:Number = (_arg2 & 0xFF); return ((((((_local3 * _local6) / 0xFF) << 16) | (((_local4 * _local7) / 0xFF) << 8)) | ((_local5 * _local8) / 0xFF))); } public static function adjustBrightness(_arg1:uint, _arg2:Number):uint{ var _local3:Number = Math.max(Math.min((((_arg1 >> 16) & 0xFF) + _arg2), 0xFF), 0); var _local4:Number = Math.max(Math.min((((_arg1 >> 8) & 0xFF) + _arg2), 0xFF), 0); var _local5:Number = Math.max(Math.min(((_arg1 & 0xFF) + _arg2), 0xFF), 0); return ((((_local3 << 16) | (_local4 << 8)) | _local5)); } } }//package mx.utils
Section 191
//GraphicsUtil (mx.utils.GraphicsUtil) package mx.utils { import mx.core.*; import flash.display.*; public class GraphicsUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public static function drawRoundRectComplex(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number):void{ var _local10:Number = (_arg2 + _arg4); var _local11:Number = (_arg3 + _arg5); var _local12:Number = ((_arg4 < _arg5)) ? (_arg4 * 2) : (_arg5 * 2); _arg6 = ((_arg6 < _local12)) ? _arg6 : _local12; _arg7 = ((_arg7 < _local12)) ? _arg7 : _local12; _arg8 = ((_arg8 < _local12)) ? _arg8 : _local12; _arg9 = ((_arg9 < _local12)) ? _arg9 : _local12; var _local13:Number = (_arg9 * 0.292893218813453); var _local14:Number = (_arg9 * 0.585786437626905); _arg1.moveTo(_local10, (_local11 - _arg9)); _arg1.curveTo(_local10, (_local11 - _local14), (_local10 - _local13), (_local11 - _local13)); _arg1.curveTo((_local10 - _local14), _local11, (_local10 - _arg9), _local11); _local13 = (_arg8 * 0.292893218813453); _local14 = (_arg8 * 0.585786437626905); _arg1.lineTo((_arg2 + _arg8), _local11); _arg1.curveTo((_arg2 + _local14), _local11, (_arg2 + _local13), (_local11 - _local13)); _arg1.curveTo(_arg2, (_local11 - _local14), _arg2, (_local11 - _arg8)); _local13 = (_arg6 * 0.292893218813453); _local14 = (_arg6 * 0.585786437626905); _arg1.lineTo(_arg2, (_arg3 + _arg6)); _arg1.curveTo(_arg2, (_arg3 + _local14), (_arg2 + _local13), (_arg3 + _local13)); _arg1.curveTo((_arg2 + _local14), _arg3, (_arg2 + _arg6), _arg3); _local13 = (_arg7 * 0.292893218813453); _local14 = (_arg7 * 0.585786437626905); _arg1.lineTo((_local10 - _arg7), _arg3); _arg1.curveTo((_local10 - _local14), _arg3, (_local10 - _local13), (_arg3 + _local13)); _arg1.curveTo(_local10, (_arg3 + _local14), _local10, (_arg3 + _arg7)); _arg1.lineTo(_local10, (_local11 - _arg9)); } } }//package mx.utils
Section 192
//NameUtil (mx.utils.NameUtil) package mx.utils { import mx.core.*; import flash.display.*; import flash.utils.*; public class NameUtil { mx_internal static const VERSION:String = "3.2.0.3958"; private static var counter:int = 0; public static function displayObjectToString(_arg1:DisplayObject):String{ var result:String; var o:DisplayObject; var s:String; var indices:Array; var displayObject = _arg1; try { o = displayObject; while (o != null) { if (((((o.parent) && (o.stage))) && ((o.parent == o.stage)))){ break; }; s = o.name; if ((o is IRepeaterClient)){ indices = IRepeaterClient(o).instanceIndices; if (indices){ s = (s + (("[" + indices.join("][")) + "]")); }; }; result = ((result == null)) ? s : ((s + ".") + result); o = o.parent; }; } catch(e:SecurityError) { }; return (result); } public static function createUniqueName(_arg1:Object):String{ if (!_arg1){ return (null); }; var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); if (_local3 != -1){ _local2 = _local2.substr((_local3 + 2)); }; var _local4:int = _local2.charCodeAt((_local2.length - 1)); if ((((_local4 >= 48)) && ((_local4 <= 57)))){ _local2 = (_local2 + "_"); }; return ((_local2 + counter++)); } } }//package mx.utils
Section 193
//StringUtil (mx.utils.StringUtil) package mx.utils { import mx.core.*; public class StringUtil { mx_internal static const VERSION:String = "3.2.0.3958"; public static function trim(_arg1:String):String{ if (_arg1 == null){ return (""); }; var _local2:int; while (isWhitespace(_arg1.charAt(_local2))) { _local2++; }; var _local3:int = (_arg1.length - 1); while (isWhitespace(_arg1.charAt(_local3))) { _local3--; }; if (_local3 >= _local2){ return (_arg1.slice(_local2, (_local3 + 1))); }; return (""); } public static function isWhitespace(_arg1:String):Boolean{ switch (_arg1){ case " ": case "\t": case "\r": case "\n": case "\f": return (true); default: return (false); }; } public static function substitute(_arg1:String, ... _args):String{ var _local4:Array; if (_arg1 == null){ return (""); }; var _local3:uint = _args.length; if ((((_local3 == 1)) && ((_args[0] is Array)))){ _local4 = (_args[0] as Array); _local3 = _local4.length; } else { _local4 = _args; }; var _local5:int; while (_local5 < _local3) { _arg1 = _arg1.replace(new RegExp((("\\{" + _local5) + "\\}"), "g"), _local4[_local5]); _local5++; }; return (_arg1); } public static function trimArrayElements(_arg1:String, _arg2:String):String{ var _local3:Array; var _local4:int; var _local5:int; if (((!((_arg1 == ""))) && (!((_arg1 == null))))){ _local3 = _arg1.split(_arg2); _local4 = _local3.length; _local5 = 0; while (_local5 < _local4) { _local3[_local5] = StringUtil.trim(_local3[_local5]); _local5++; }; if (_local4 > 0){ _arg1 = _local3.join(_arg2); }; }; return (_arg1); } } }//package mx.utils
Section 194
//AABB (org.rje.glaze.engine.collision.shapes.AABB) package org.rje.glaze.engine.collision.shapes { public class AABB { public var radiusSqr:Number; public var b:Number; public var l:Number; public var r:Number; public var t:Number; public function AABB(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0){ this.l = _arg1; this.b = _arg2; this.r = _arg3; this.t = _arg4; } public function toString():String{ return (((((((("l=" + l) + " b=") + b) + " r=") + r) + " t=") + t)); } public function expand(_arg1:AABB):void{ if (_arg1.l < this.l){ this.l = _arg1.l; }; if (_arg1.r > this.r){ this.r = _arg1.r; }; if (_arg1.t < this.t){ this.t = _arg1.t; }; if (_arg1.b > this.b){ this.b = _arg1.b; }; } public function intersects(_arg1:AABB):Boolean{ return (!((((((((_arg1.l > r)) || ((_arg1.r < l)))) || ((_arg1.t > b)))) || ((_arg1.b < t))))); } public function intersects2(_arg1:AABB):Boolean{ return ((((((((l <= _arg1.r)) && ((_arg1.l <= r)))) && ((t <= _arg1.b)))) && ((_arg1.t <= b)))); } public static function createAt(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):AABB{ return (new AABB((_arg1 - _arg3), (_arg2 + _arg4), (_arg1 + _arg3), (_arg2 - _arg4))); } } }//package org.rje.glaze.engine.collision.shapes
Section 195
//Circle (org.rje.glaze.engine.collision.shapes.Circle) package org.rje.glaze.engine.collision.shapes { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class Circle extends GeometricShape { public var c:Vector2D; public var tC:Vector2D; public var r:Number; public function Circle(_arg1:Number, _arg2:Vector2D, _arg3:Material=null){ super(GeometricShape.CIRCLE_SHAPE, _arg3); InitShape(_arg2, _arg1); } override public function IntersectRay(_arg1:Ray):Boolean{ var _local2:Vector2D = _arg1.origin.minus(tC); var _local3:Number = _local2.dot(_arg1.direction); if (_local3 > 0){ return (false); }; var _local4:Number = ((r * r) - (_local2.dot(_local2) - (_local3 * _local3))); if (_local4 < 0){ return (false); }; _local4 = (-(_local3) - Math.sqrt(_local4)); return (_arg1.reportResult(this, _local4, (_arg1.returnNormal) ? new Vector2D(((_arg1.origin.x + (_arg1.direction.x * _local4)) - tC.x), ((_arg1.origin.y + (_arg1.direction.y * _local4)) - tC.y)).normalizeEquals() : null)); } override public function ContainsPoint(_arg1:Vector2D):Boolean{ var _local2:Number = (tC.x - _arg1.x); var _local3:Number = (tC.y - _arg1.y); return ((((_local2 * _local2) + (_local3 * _local3)) <= (r * r))); } override public function CalculateInertia(_arg1:Number, _arg2:Vector2D):Number{ return (((((1 / 2) * _arg1) * (r * r)) + (_arg1 * _arg2.dot(_arg2)))); } override public function InitShape(_arg1:Vector2D, _arg2, _arg3=null, _arg4=null){ this.offset = _arg1.clone(); c = _arg1.clone(); r = (_arg2 as Number); area = (Math.PI * (r * r)); tC = c.clone(); } override public function draw(_arg1:Graphics, _arg2:Boolean, _arg3:Boolean=false, _arg4:uint=0):void{ var _local5:Vector2D; _arg1.lineStyle(1, 0); if (_arg2){ _arg1.drawRect(aabb.l, aabb.t, (aabb.r - aabb.l), (aabb.b - aabb.t)); }; if (((_arg2) && (body.canSleep))){ _arg1.beginFill(15129700); } else { _arg1.beginFill((_arg3) ? _arg4 : fillColour); }; _arg1.lineStyle(2, lineColour); _arg1.drawCircle(tC.x, tC.y, r); _arg1.endFill(); } override public function UpdateShape(_arg1:Vector2D, _arg2:Vector2D):void{ tC.x = (_arg1.x + ((c.x * _arg2.x) - (c.y * _arg2.y))); tC.y = (_arg1.y + ((c.x * _arg2.y) + (c.y * _arg2.x))); aabb.l = (tC.x - r); aabb.r = (tC.x + r); aabb.t = (tC.y - r); aabb.b = (tC.y + r); } } }//package org.rje.glaze.engine.collision.shapes
Section 196
//GeometricShape (org.rje.glaze.engine.collision.shapes.GeometricShape) package org.rje.glaze.engine.collision.shapes { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class GeometricShape { public var area:Number; public var offset:Vector2D; public var aabb:AABB; public var body:RigidBody; public var surface_v:Vector2D; public var material:Material; public var data; public var lineColour:uint;// = 0x333333 public var next:GeometricShape; public var fillColour:uint;// = 14675180 public var prev:GeometricShape; public var shapeType:int; public var shapeID:uint; public static const areaMassRatio:Number = 0; public static const CIRCLE_SHAPE:int = 0; public static const SEGMENT_SHAPE:int = 1; public static const POLYGON_SHAPE:int = 2; public static var nextShapeID:uint = 0; public function GeometricShape(_arg1:int, _arg2:Material){ this.shapeType = _arg1; aabb = new AABB(); shapeID = nextShapeID++; if (_arg2 == null){ this.material = Material.defaultMaterial; } else { this.material = _arg2; }; this.area = 0; surface_v = new Vector2D(); body = null; } public function draw(_arg1:Graphics, _arg2:Boolean, _arg3:Boolean=false, _arg4:uint=0):void{ } public function InitShape(_arg1:Vector2D, _arg2, _arg3=null, _arg4=null){ return (false); } public function ContainsPoint(_arg1:Vector2D):Boolean{ return (false); } public function CalculateInertia(_arg1:Number, _arg2:Vector2D):Number{ return (1); } public function registerBody(_arg1:RigidBody):void{ this.body = _arg1; } public function Update():void{ UpdateShape(body.p, body.rot); } public function IntersectRay(_arg1:Ray):Boolean{ return (false); } public function get mass():Number{ return (((area * areaMassRatio) * material.density)); } public function UpdateShape(_arg1:Vector2D, _arg2:Vector2D):void{ } public static function sortOnAABBDecending(_arg1:GeometricShape, _arg2:GeometricShape):Number{ var _local3:Number = _arg1.aabb.t; var _local4:Number = _arg2.aabb.t; if (_local3 < _local4){ return (-1); }; return (1); } } }//package org.rje.glaze.engine.collision.shapes
Section 197
//Polygon (org.rje.glaze.engine.collision.shapes.Polygon) package org.rje.glaze.engine.collision.shapes { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.*; public class Polygon extends GeometricShape { public var verts:Vector2D; public var numVerts:int; public var axes:Axis; public var numAxes:int; public var tVerts:Vector2D; public var tAxes:Axis; public function Polygon(_arg1:Array, _arg2:Vector2D, _arg3:Material=null){ super(GeometricShape.POLYGON_SHAPE, _arg3); InitShape(_arg2, _arg1); } public function valueOnAxis(_arg1:Vector2D, _arg2:Number):Number{ var _local5:Number; var _local3:Vector2D = tVerts; var _local4:Number = 4294967296; while (_local3) { _local5 = ((_arg1.x * _local3.x) + (_arg1.y * _local3.y)); if (_local5 < _local4){ _local4 = _local5; }; _local3 = _local3.next; }; return ((_local4 - _arg2)); } override public function draw(_arg1:Graphics, _arg2:Boolean, _arg3:Boolean=false, _arg4:uint=0):void{ var _local5:Vector2D = tVerts; _arg1.lineStyle(1, 0); if (_arg2){ _arg1.drawRect(aabb.l, aabb.t, (aabb.r - aabb.l), (aabb.b - aabb.t)); }; _arg1.lineStyle(2, lineColour); if (((_arg2) && (body.isSleeping))){ _arg1.beginFill(15129700); } else { if (((_arg2) && (body.canSleep))){ _arg1.beginFill(7594854); } else { _arg1.beginFill((_arg3) ? _arg4 : fillColour); }; }; _arg1.moveTo(_local5.x, _local5.y); while (_local5 != null) { _arg1.lineTo(_local5.x, _local5.y); _local5 = _local5.next; }; _arg1.lineTo(tVerts.x, tVerts.y); _arg1.endFill(); } override public function ContainsPoint(_arg1:Vector2D):Boolean{ var _local2:Axis = tAxes; while (_local2) { if ((((_local2.n.x * _arg1.x) + (_local2.n.y * _arg1.y)) - _local2.d) > 0){ return (false); }; _local2 = _local2.next; }; return (true); } override public function InitShape(_arg1:Vector2D, _arg2, _arg3=null, _arg4=null){ var _local6:Vector2D; var _local7:Vector2D; var _local8:Vector2D; var _local9:Vector2D; var _local10:Vector2D; var _local11:Vector2D; var _local12:Vector2D; var _local13:Vector2D; var _local14:Vector2D; var _local15:Vector2D; var _local16:Axis; var _local17:Axis; var _local18:Axis; var _local19:Axis; this.offset = _arg1.clone(); var _local5:Array = (_arg2 as Array); numVerts = _local5.length; numAxes = _local5.length; area = 0; var _local20:int; while (_local20 < numVerts) { _local6 = _local5[_local20]; _local7 = _local5[((_local20 + 1) % numVerts)]; _local8 = _local5[((_local20 + 2) % numVerts)]; _local9 = _local6.plus(_arg1); _local10 = _local7.plus(_arg1); _local11 = _local10.minus(_local9).rightHandNormal().normalize(); _local12 = _local9; _local14 = _local12.clone(); _local16 = new Axis(_local11, _local11.dot(_local9)); _local18 = _local16.clone(); if (_local20 == 0){ verts = _local12; tVerts = _local14; axes = _local16; tAxes = _local18; } else { _local13.next = _local12; _local15.next = _local14; _local17.next = _local16; _local19.next = _local18; }; _local13 = _local12; _local15 = _local14; _local17 = _local16; _local19 = _local18; area = (area + (_local7.x * (_local8.y - _local6.y))); _local20++; }; area = (area / -2); } override public function CalculateInertia(_arg1:Number, _arg2:Vector2D):Number{ var _local4:Vector2D; var _local5:Vector2D; var _local10:Number; var _local11:Number; var _local3:Vector2D = verts; var _local6:Array = new Array(); while (_local3) { _local6.push(new Vector2D((_local3.x + _arg2.x), (_local3.y + _arg2.y))); _local3 = _local3.next; }; var _local7:Number = 0; var _local8:Number = 0; var _local9:int; while (_local9 < numVerts) { _local3 = _local6[_local9]; _local4 = _local6[((_local9 + 1) % numVerts)]; _local10 = _local4.cross(_local3); _local11 = ((_local3.dot(_local3) + _local3.dot(_local4)) + _local4.dot(_local4)); _local7 = (_local7 + (_local10 * _local11)); _local8 = (_local8 + _local10); _local9++; }; return (((_arg1 * _local7) / (6 * _local8))); } override public function IntersectRay(_arg1:Ray):Boolean{ var _local4:Axis; var _local5:Axis; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local2:Number = _arg1.range; var _local3:Number = 0; var _local6:Axis = tAxes; var _local7:Vector2D = tVerts; while (_local6) { _local9 = (_local7.x - _arg1.origin.x); _local10 = (_local7.y - _arg1.origin.y); _local11 = ((_local9 * _local6.n.x) + (_local10 * _local6.n.y)); _local12 = ((_arg1.direction.x * _local6.n.x) + (_arg1.direction.y * _local6.n.y)); if (((_local12 < 0)) ? -(_local12) : _local12 < 1E-9){ if (_local11 < 0){ return (false); }; } else { _local13 = (_local11 / _local12); if (_local12 < 0){ if (_local13 > _local2){ return (false); }; if (_local13 > _local3){ _local3 = _local13; _local4 = _local6; }; } else { if (_local13 < _local3){ return (false); }; if (_local13 < _local2){ _local2 = _local13; _local5 = _local6; }; }; }; _local6 = _local6.next; _local7 = _local7.next; }; if (!_local4){ return (false); }; var _local8:Number = (-((((_arg1.origin.x * _local4.n.x) + (_arg1.origin.y * _local4.n.y)) - _local4.d)) / ((_arg1.direction.x * _local4.n.x) + (_arg1.direction.y * _local4.n.y))); return (_arg1.reportResult(this, _local8, _local4.n)); } override public function UpdateShape(_arg1:Vector2D, _arg2:Vector2D):void{ var _local3:Vector2D = verts; var _local4:Vector2D = tVerts; aabb.l = (aabb.t = 4294967296); aabb.r = (aabb.b = -4294967296); while (_local3) { _local4.x = (_arg1.x + ((_local3.x * _arg2.x) - (_local3.y * _arg2.y))); _local4.y = (_arg1.y + ((_local3.x * _arg2.y) + (_local3.y * _arg2.x))); if (_local4.x < aabb.l){ aabb.l = _local4.x; }; if (_local4.x > aabb.r){ aabb.r = _local4.x; }; if (_local4.y < aabb.t){ aabb.t = _local4.y; }; if (_local4.y > aabb.b){ aabb.b = _local4.y; }; _local3 = _local3.next; _local4 = _local4.next; }; var _local5:Axis = axes; var _local6:Axis = tAxes; while (_local5) { _local6.n.x = ((_local5.n.x * _arg2.x) - (_local5.n.y * _arg2.y)); _local6.n.y = ((_local5.n.x * _arg2.y) + (_local5.n.y * _arg2.x)); _local6.d = (((_arg1.x * _local6.n.x) + (_arg1.y * _local6.n.y)) + _local5.d); _local5 = _local5.next; _local6 = _local6.next; }; } public static function createRectangle(_arg1:Number, _arg2:Number):Array{ var _local3:Array = new Array(); _local3.push(new Vector2D((-(_arg1) / 2), (-(_arg2) / 2))); _local3.push(new Vector2D((-(_arg1) / 2), (_arg2 / 2))); _local3.push(new Vector2D((_arg1 / 2), (_arg2 / 2))); _local3.push(new Vector2D((_arg1 / 2), (-(_arg2) / 2))); return (_local3); } public static function createBlobConvexPoly(_arg1:int, _arg2:Number, _arg3:Number=0):Array{ var _local6:Number; var _local4:Array = new Array(); var _local5:int; while (_local5 < _arg1) { _local6 = (((-2 * Math.PI) * _local5) / _arg1); _local6 = (_local6 + _arg3); _local4[_local5] = new Vector2D((_arg2 * Math.cos(_local6)), (_arg2 * Math.sin(_local6))); _local5++; }; return (_local4); } } }//package org.rje.glaze.engine.collision.shapes
Section 198
//Segment (org.rje.glaze.engine.collision.shapes.Segment) package org.rje.glaze.engine.collision.shapes { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class Segment extends GeometricShape { public var tA:Vector2D; public var tB:Vector2D; public var tN:Vector2D; public var a:Vector2D; public var b:Vector2D; public var n:Vector2D; public var r:Number; public var tNneg:Vector2D; public var tNdottA:Number; public function Segment(_arg1:Vector2D, _arg2:Vector2D, _arg3:Number, _arg4:Material=null){ super(GeometricShape.SEGMENT_SHAPE, _arg4); this.offset = new Vector2D(); InitShape(offset, _arg1, _arg2, _arg3); } override public function draw(_arg1:Graphics, _arg2:Boolean, _arg3:Boolean=false, _arg4:uint=0):void{ _arg1.lineStyle(1, lineColour); if (_arg2){ _arg1.drawRect(aabb.l, aabb.t, (aabb.r - aabb.l), (aabb.b - aabb.t)); }; _arg1.lineStyle((r * 2), (_arg3) ? _arg4 : lineColour); _arg1.moveTo(tA.x, tA.y); _arg1.lineTo(tB.x, tB.y); _arg1.lineTo(tA.x, tA.y); } override public function ContainsPoint(_arg1:Vector2D):Boolean{ return (false); } override public function CalculateInertia(_arg1:Number, _arg2:Vector2D):Number{ return (1); } override public function InitShape(_arg1:Vector2D, _arg2, _arg3=null, _arg4=null){ this.a = Vector2D(_arg2).clone(); this.b = Vector2D(_arg3).clone(); var _local5:Vector2D = this.b.minus(this.a); this.n = _local5.normalize().rightHandNormal(); this.r = Number(_arg4); this.area = (r * _local5.magnitude()); this.tA = new Vector2D(); this.tB = new Vector2D(); this.tN = new Vector2D(); this.tNneg = new Vector2D(); } override public function IntersectRay(_arg1:Ray):Boolean{ var _local2:Number; var _local3:Number; var _local4:Number; if ((_arg1.direction.y / _arg1.direction.x) != ((b.y - a.y) / (b.x - a.x))){ _local2 = ((_arg1.direction.x * (b.y - a.y)) - (_arg1.direction.y * (b.x - a.x))); if (_local2 != 0){ _local3 = ((((_arg1.origin.y - a.y) * (b.x - a.x)) - ((_arg1.origin.x - a.x) * (b.y - a.y))) / _local2); if (_local3 >= 0){ _local4 = ((((_arg1.origin.y - a.y) * _arg1.direction.x) - ((_arg1.origin.x - a.x) * _arg1.direction.y)) / _local2); if ((((_local4 >= 0)) && ((_local4 <= 1)))){ return (_arg1.reportResult(this, _local3, (((((tN.x * _arg1.origin.x) + (tN.y * _arg1.origin.y)) - ((tA.x * tN.x) + (tA.y * tN.y))))<0) ? tNneg : tN)); }; }; }; }; return (false); } public function valueOnAxis(_arg1:Vector2D, _arg2:Number):Number{ var _local3:Number = (_arg1.dot(tA) - r); var _local4:Number = (_arg1.dot(tB) - r); if (_local3 < _local4){ return ((_local3 - _arg2)); }; return ((_local4 - _arg2)); } override public function UpdateShape(_arg1:Vector2D, _arg2:Vector2D):void{ tA.x = (_arg1.x + ((a.x * _arg2.x) - (a.y * _arg2.y))); tA.y = (_arg1.y + ((a.x * _arg2.y) + (a.y * _arg2.x))); tB.x = (_arg1.x + ((b.x * _arg2.x) - (b.y * _arg2.y))); tB.y = (_arg1.y + ((b.x * _arg2.y) + (b.y * _arg2.x))); tN.x = ((n.x * _arg2.x) - (n.y * _arg2.y)); tN.y = ((n.y * _arg2.y) + (n.y * _arg2.x)); tNneg.x = -(tN.x); tNneg.y = -(tN.y); tNdottA = ((tN.x * tA.x) + (tN.y * tA.y)); if (tA.x < tB.x){ aabb.l = (tA.x - r); aabb.r = (tB.x + r); } else { aabb.l = (tB.x - r); aabb.r = (tA.x + r); }; if (tA.y < tB.y){ aabb.t = (tA.y - r); aabb.b = (tB.y + r); } else { aabb.t = (tB.y - r); aabb.b = (tA.y + r); }; } } }//package org.rje.glaze.engine.collision.shapes
Section 199
//EnhancedCollision (org.rje.glaze.engine.collision.EnhancedCollision) package org.rje.glaze.engine.collision { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class EnhancedCollision implements ICollide { public static const hash_coef:uint = 3344921057; private function findPolyPointsBehindSegment(_arg1:Segment, _arg2:Polygon, _arg3:Number, _arg4:Number, _arg5:Arbiter):void{ var _local12:Number; var _local13:Number; var _local6:Number = ((_arg1.tN.x * _arg1.tA.y) - (_arg1.tN.y * _arg1.tA.x)); var _local7:Number = ((_arg1.tN.x * _arg1.tB.y) - (_arg1.tN.y * _arg1.tB.x)); var _local8:Vector2D = ((_arg4)<0) ? _arg1.tNneg : _arg1.tN; var _local9:Vector2D = _arg2.tVerts; var _local10:int; var _local11:int; while (_local9) { _local12 = ((_local9.x * _local8.x) + (_local9.y * _local8.y)); if (_local12 < ((_arg1.tNdottA * _arg4) + _arg1.r)){ _local13 = ((_arg1.tN.x * _local9.y) - (_arg1.tN.y * _local9.x)); if ((((_local6 >= _local13)) && ((_local13 >= _local7)))){ _arg5.injectContact(_local9.x, _local9.y, _local8.x, _local8.y, 1, _arg3, ((_arg2.shapeID << 8) | _local10)); ++_local11; if (_local11 > 1){ return; }; }; }; _local10++; _local9 = _local9.next; }; } public function poly2poly(_arg1:Polygon, _arg2:Polygon, _arg3:Arbiter):Boolean{ var _local4:Vector2D; var _local5:Number; var _local6:Number; var _local8:Axis; var _local11:Vector2D; var _local12:Boolean; var _local13:int; var _local14:Vector2D; var _local15:Boolean; var _local16:int; var _local17:int; var _local20:Axis; var _local21:Axis; var _local22:Number; var _local23:Number; var _local7:Number = -4294967296; var _local9:Boolean; var _local10:Boolean; var _local18:Axis = _arg1.tAxes; while (_local18) { _local10 = (_local18.next == null); _local6 = 4294967296; _local4 = _arg2.tVerts; _local17 = 0; while (_local4) { _local5 = (((_local18.n.x * _local4.x) + (_local18.n.y * _local4.y)) - _local18.d); if (((_local9) || (_local4.flag))){ _local4.flag = (_local5 <= 0); }; if (((_local10) && (_local4.flag))){ if (_local11 == null){ _local11 = _local4; _local13 = _local17; _local12 = true; } else { if (_local14 == null){ _local14 = _local4; _local16 = _local17; _local15 = true; }; }; }; if (_local5 < _local6){ _local6 = _local5; }; _local17++; _local4 = _local4.next; }; if (_local6 > 0){ return (false); }; if (_local6 > _local7){ _local7 = _local6; _local8 = _local18; }; _local9 = false; _local18 = _local18.next; }; var _local19:Number = -4294967296; _local9 = true; if (_local14 == null){ _local18 = _arg2.tAxes; while (_local18) { _local10 = (_local18.next == null); _local6 = 4294967296; _local4 = _arg1.tVerts; _local17 = 0; while (_local4) { _local5 = (((_local18.n.x * _local4.x) + (_local18.n.y * _local4.y)) - _local18.d); if (((_local9) || (_local4.flag))){ _local4.flag = (_local5 <= 0); }; if (((_local10) && (_local4.flag))){ if (_local11 == null){ _local11 = _local4; _local13 = _local17; } else { if (_local14 == null){ _local14 = _local4; _local16 = _local17; }; }; }; if (_local5 < _local6){ _local6 = _local5; }; _local17++; _local4 = _local4.next; }; if (_local6 > 0){ return (false); }; if (_local6 > _local19){ _local19 = _local6; _local20 = _local18; }; _local9 = false; _local18 = _local18.next; }; }; if (_local7 > _local19){ _local21 = _local8; _local22 = 1; _local23 = _local7; } else { _local21 = _local20; _local22 = -1; _local23 = _local19; }; if (_local11){ if (_local12){ _arg3.injectContact(_local11.x, _local11.y, _local21.n.x, _local21.n.y, _local22, _local23, ((_arg2.shapeID << 8) | _local13)); } else { _arg3.injectContact(_local11.x, _local11.y, _local21.n.x, _local21.n.y, _local22, _local23, ((_arg1.shapeID << 8) | _local13)); }; }; if (_local14){ if (_local15){ _arg3.injectContact(_local14.x, _local14.y, _local21.n.x, _local21.n.y, _local22, _local23, ((_arg2.shapeID << 8) | _local16)); } else { _arg3.injectContact(_local14.x, _local14.y, _local21.n.x, _local21.n.y, _local22, _local23, ((_arg1.shapeID << 8) | _local16)); }; }; return (true); } public function segment2poly(_arg1:Segment, _arg2:Polygon, _arg3:Arbiter):Boolean{ var _local8:Axis; var _local9:Axis; var _local12:Number; var _local13:Number; var _local14:Number; var _local4:Number = (_arg2.valueOnAxis(_arg1.tN, _arg1.tNdottA) - _arg1.r); if (_local4 > 0){ return (false); }; var _local5:Number = (_arg2.valueOnAxis(_arg1.tNneg, -(_arg1.tNdottA)) - _arg1.r); if (_local5 > 0){ return (false); }; var _local6:Axis = _arg2.tAxes; var _local7:Number = -4294967296; while (_local6) { _local12 = (((_local6.n.x * _arg1.tA.x) + (_local6.n.y * _arg1.tA.y)) - _arg1.r); _local13 = (((_local6.n.x * _arg1.tB.x) + (_local6.n.y * _arg1.tB.y)) - _arg1.r); _local14 = ((_local12)<_local13) ? (_local12 - _local6.d) : (_local13 - _local6.d); if (_local14 > 0){ return (false); }; if (_local14 > _local7){ _local7 = _local14; _local8 = _local6; }; _local6 = _local6.next; }; var _local10:Number = (_arg1.tA.x + (-(_local8.n.x) * _arg1.r)); var _local11:Number = (_arg1.tA.y + (-(_local8.n.y) * _arg1.r)); if (_local11 >= _arg2.aabb.t){ if (_local11 <= _arg2.aabb.b){ if (_local10 <= _arg2.aabb.r){ if (_local10 >= _arg2.aabb.l){ _local9 = _arg2.tAxes; while (_local9) { if ((((_local9.n.x * _local10) + (_local9.n.y * _local11)) - _local9.d) > 0){ break; }; _local9 = _local9.next; }; if (!_local9){ _arg3.injectContact(_local10, _local11, _local8.n.x, _local8.n.y, -1, _local7, ((_arg1.shapeID << 8) | 0)); }; }; }; }; }; _local10 = (_arg1.tB.x + (-(_local8.n.x) * _arg1.r)); _local11 = (_arg1.tB.y + (-(_local8.n.y) * _arg1.r)); if (_local11 >= _arg2.aabb.t){ if (_local11 <= _arg2.aabb.b){ if (_local10 <= _arg2.aabb.r){ if (_local10 >= _arg2.aabb.l){ _local9 = _arg2.tAxes; while (_local9) { if ((((_local9.n.x * _local10) + (_local9.n.y * _local11)) - _local9.d) > 0){ break; }; _local9 = _local9.next; }; if (!_local9){ _arg3.injectContact(_local10, _local11, _local8.n.x, _local8.n.y, -1, _local7, ((_arg1.shapeID << 8) | 1)); }; }; }; }; }; _local7 = (_local7 - Arbiter.collision_slop); if ((((_local4 >= _local7)) || ((_local5 >= _local7)))){ if (_local4 > _local5){ findPolyPointsBehindSegment(_arg1, _arg2, _local4, 1, _arg3); } else { findPolyPointsBehindSegment(_arg1, _arg2, _local5, -1, _arg3); }; }; return (true); } public function circle2poly(_arg1:Circle, _arg2:Polygon, _arg3:Arbiter):Boolean{ var _local4:Axis; var _local5:Vector2D; var _local8:Number; var _local16:Number; var _local6:Axis = _arg2.tAxes; var _local7:Vector2D = _arg2.tVerts; var _local9:Number = -4294967296; while (_local6) { _local8 = ((((_local6.n.x * _arg1.tC.x) + (_local6.n.y * _arg1.tC.y)) - _local6.d) - _arg1.r); if (_local8 > 0){ return (false); }; if (_local8 > _local9){ _local9 = _local8; _local4 = _local6; _local5 = _local7; }; _local6 = _local6.next; _local7 = _local7.next; }; var _local10:Vector2D = _local4.n; var _local11:Vector2D = _local5; var _local12:Vector2D = ((_local11.next) || (_arg2.tVerts)); var _local13:Number = ((_local10.x * _local12.y) - (_local10.y * _local12.x)); var _local14:Number = ((_local10.x * _arg1.tC.y) - (_local10.y * _arg1.tC.x)); if (_local14 < _local13){ return (circle2circleQuery(_arg3, _arg1.tC, _local12, _arg1.r, 0)); }; var _local15:Number = ((_local10.x * _local11.y) - (_local10.y * _local11.x)); if (_local14 < _local15){ _local16 = (_arg1.r + (_local9 / 2)); _arg3.injectContact((_arg1.tC.x - (_local10.x * _local16)), (_arg1.tC.y - (_local10.y * _local16)), _local10.x, _local10.y, -1, _local9, 0); return (true); }; return (circle2circleQuery(_arg3, _arg1.tC, _local11, _arg1.r, 0)); } public function circle2circle(_arg1:Circle, _arg2:Circle, _arg3:Arbiter):Boolean{ return (circle2circleQuery(_arg3, _arg1.tC, _arg2.tC, _arg1.r, _arg2.r)); } private function circle2circleQuery(_arg1:Arbiter, _arg2:Vector2D, _arg3:Vector2D, _arg4:Number, _arg5:Number):Boolean{ var _local6:Number = (_arg4 + _arg5); var _local7:Number = (_arg3.x - _arg2.x); var _local8:Number = (_arg3.y - _arg2.y); var _local9:Number = ((_local7 * _local7) + (_local8 * _local8)); if (_local9 >= (_local6 * _local6)){ return (false); }; var _local10:Number = (Math.sqrt(_local9) + 1E-7); var _local11:Number = (1 / _local10); var _local12:Number = (0.5 + ((_arg4 - (0.5 * _local6)) / _local10)); _arg1.injectContact((_arg2.x + (_local7 * _local12)), (_arg2.y + (_local8 * _local12)), (_local7 * _local11), (_local8 * _local11), 1, (_local10 - _local6), 0); return (true); } public function circle2segment(_arg1:Circle, _arg2:Segment, _arg3:Arbiter):Boolean{ var _local10:Vector2D; var _local11:Number; var _local4:Number = (_arg1.r + _arg2.r); var _local5:Number = (((_arg2.tN.x * _arg1.tC.x) + (_arg2.tN.y * _arg1.tC.y)) - _arg2.tNdottA); var _local6:Number = (((_local5)<0) ? -(_local5) : _local5 - _local4); if (_local6 > 0){ return (false); }; var _local7:Number = -(((_arg2.tN.x * _arg1.tC.y) - (_arg2.tN.y * _arg1.tC.x))); var _local8:Number = -(((_arg2.tN.x * _arg2.tA.y) - (_arg2.tN.y * _arg2.tA.x))); var _local9:Number = -(((_arg2.tN.x * _arg2.tB.y) - (_arg2.tN.y * _arg2.tB.x))); if (_local7 < (_local8 - _local4)){ if (_local7 < (_local8 - _arg1.r)){ return (false); }; return (circle2circleQuery(_arg3, _arg1.tC, _arg2.tA, _arg1.r, _arg2.r)); } else { if (_local7 < _local9){ _local10 = ((_local5)<0) ? _arg2.tN : _arg2.tNneg; _local11 = (_arg1.r + (_local6 * 0.5)); _arg3.injectContact((_arg1.tC.x + (_local10.x * _local11)), (_arg1.tC.y + (_local10.y * _local11)), _local10.x, _local10.y, 1, _local6, 0); return (true); } else { if (_local7 < (_local9 + _local4)){ return (circle2circleQuery(_arg3, _arg1.tC, _arg2.tB, _arg1.r, _arg2.r)); }; }; }; return (false); } } }//package org.rje.glaze.engine.collision
Section 200
//ICollide (org.rje.glaze.engine.collision.ICollide) package org.rje.glaze.engine.collision { import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public interface ICollide { function circle2segment(_arg1:Circle, _arg2:Segment, _arg3:Arbiter):Boolean; function circle2circle(_arg1:Circle, _arg2:Circle, _arg3:Arbiter):Boolean; function poly2poly(_arg1:Polygon, _arg2:Polygon, _arg3:Arbiter):Boolean; function segment2poly(_arg1:Segment, _arg2:Polygon, _arg3:Arbiter):Boolean; function circle2poly(_arg1:Circle, _arg2:Polygon, _arg3:Arbiter):Boolean; } }//package org.rje.glaze.engine.collision
Section 201
//Force (org.rje.glaze.engine.dynamics.forces.Force) package org.rje.glaze.engine.dynamics.forces { public class Force { public var next:Force; public var active:Boolean; public var prev:Force; public function Force(){ init(); } public function init():void{ active = true; } public function eval():void{ } } }//package org.rje.glaze.engine.dynamics.forces
Section 202
//Spring (org.rje.glaze.engine.dynamics.forces.Spring) package org.rje.glaze.engine.dynamics.forces { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class Spring extends Force { private const f:Vector2D; public var body:RigidBody; public var damping:Number; public var anchor:Vector2D; public var restLength:Number; public var stiffness:Number; public function Spring(_arg1:RigidBody, _arg2:Vector2D, _arg3:Number, _arg4:Number=0, _arg5:Number=0){ f = new Vector2D(); super(); this.body = _arg1; this.anchor = _arg2; this.stiffness = _arg3; this.restLength = _arg4; this.damping = _arg5; } override public function eval():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; if (((body.isFixed) || (body.isStatic))){ return; }; f.x = (f.y = 0); _local1 = (body.p.x - anchor.x); _local3 = (body.p.y - anchor.y); _local7 = (Math.sqrt(((_local1 * _local1) + (_local3 * _local3))) + 1E-6); _local5 = (-(stiffness) * (_local7 - restLength)); f.x = (_local5 * (_local1 / _local7)); f.y = (_local5 * (_local3 / _local7)); if (damping > 0){ _local6 = ((-(damping) * ((body.v.x * f.x) + (body.v.y * f.y))) / ((f.x * f.x) + (f.y * f.y))); f.x = (f.x + (f.x * _local6)); f.y = (f.y + (f.y * _local6)); }; body.ApplyForces(f, Vector2D.zeroVect); } } }//package org.rje.glaze.engine.dynamics.forces
Section 203
//Spring2 (org.rje.glaze.engine.dynamics.forces.Spring2) package org.rje.glaze.engine.dynamics.forces { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class Spring2 extends Force { public const f:Vector2D; public var damping:Number; private var dx:Number; private var dy:Number; public var anch1:Vector2D; public var anch0:Vector2D; public var rx1:Number; public var rx0:Number; public var stiffness:Number; private var vx:Number; private var vy:Number; private var rx:Number; private var ry:Number; public var ry0:Number; public var ry1:Number; public var body0:RigidBody; public var body1:RigidBody; private var bv:Number; public var ax0:Number;// = 0 public var restLength:Number; public var ax1:Number;// = 0 private var c:Number; private var k:Number; private var flag:int;// = 0 private var s:Number; public var ay0:Number;// = 0 public var ay1:Number;// = 0 public function Spring2(_arg1:RigidBody, _arg2:RigidBody, _arg3:Number, _arg4:Number=0, _arg5:Number=0, _arg6:Vector2D=null, _arg7:Vector2D=null){ f = new Vector2D(); super(); this.body0 = _arg1; this.body1 = _arg2; this.anch0 = _arg6; this.anch1 = _arg7; this.stiffness = _arg3; this.restLength = _arg4; this.damping = _arg5; } override public function eval():void{ var _local1:Number; flag = 0; f.x = (f.y = 0); if (anch0){ c = Math.cos(body0.a); s = Math.sin(body0.a); rx0 = ((c * anch0.x) - (s * anch0.y)); ry0 = ((s * anch0.x) + (c * anch0.y)); ax0 = (body0.p.x + rx0); ay0 = (body0.p.y + ry0); flag = 1; } else { ax0 = body0.p.x; ay0 = body0.p.y; rx0 = 0; ry0 = 0; }; if (anch1){ c = Math.cos(body1.a); s = Math.sin(body1.a); rx1 = ((c * anch1.x) - (s * anch1.y)); ry1 = ((s * anch1.x) + (c * anch1.y)); ax1 = (body1.p.x + rx1); ay1 = (body1.p.y + ry1); flag = 1; } else { ax1 = body1.p.x; ay1 = body1.p.y; rx1 = 0; ry1 = 0; }; dx = (ax0 - ax1); dy = (ay0 - ay1); if (restLength > 0){ _local1 = (Math.sqrt(((dx * dx) + (dy * dy))) + 1E-6); k = (-(stiffness) * (_local1 - restLength)); f.x = (k * (dx / _local1)); f.y = (k * (dy / _local1)); } else { k = -(stiffness); f.x = (k * dx); f.y = (k * dy); }; if (flag != 0){ if (anch0){ if (damping > 0){ vx = ((body0.v.x - (body0.w * ry0)) - body1.v.x); vy = ((body0.v.y + (body0.w * rx0)) - body1.v.y); bv = ((-(damping) * ((vx * f.x) + (vy * f.y))) / ((f.x * f.x) + (f.y * f.y))); f.x = (f.x + (f.x * bv)); f.y = (f.y + (f.y * bv)); }; } else { if (damping > 0){ vx = (body0.v.x - (body1.v.x - (body1.w * ry1))); vy = (body0.v.y - (body1.v.y + (body1.w * rx1))); bv = ((-(damping) * ((vx * f.x) + (vy * f.y))) / ((f.x * f.x) + (f.y * f.y))); f.x = (f.x + (f.x * bv)); f.y = (f.y + (f.y * bv)); }; }; } else { if (anch0){ if (damping > 0){ vx = ((body0.v.x - (body0.w * ry0)) - (body1.v.x - (body1.w * ry1))); vy = ((body0.v.y + (body0.w * rx0)) - (body1.v.y + (body1.w * rx1))); bv = ((-(damping) * ((vx * f.x) + (vy * f.y))) / ((f.x * f.x) + (f.y * f.y))); f.x = (f.x + (f.x * bv)); f.y = (f.y + (f.y * bv)); }; } else { if (damping > 0){ vx = (body0.v.x - body1.v.x); vy = (body0.v.y - body1.v.y); bv = ((-(damping) * ((vx * f.x) + (vy * f.y))) / ((f.x * f.x) + (f.y * f.y))); f.x = (f.x + (f.x * bv)); f.y = (f.y + (f.y * bv)); }; }; }; body0.w = (body0.w * 0.98); body1.w = (body1.w * 0.98); if (body0.isSleeping){ body0.wake(body0.space.stamp); }; body0.f.x = (body0.f.x + f.x); body0.f.y = (body0.f.y + f.y); body0.t = ((rx0 * f.y) - (ry0 * f.x)); if (body1.isSleeping){ body1.wake(body1.space.stamp); }; body1.f.x = (body1.f.x - f.x); body1.f.y = (body1.f.y - f.y); body1.t = ((rx1 * -(f.y)) - (ry1 * -(f.x))); } } }//package org.rje.glaze.engine.dynamics.forces
Section 204
//Joint (org.rje.glaze.engine.dynamics.joints.Joint) package org.rje.glaze.engine.dynamics.joints { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class Joint { public const joint_bias_coef:Number = 0.1; public var r2:Vector2D; public var nMass:Number; public var anchr1:Vector2D; public var anchr2:Vector2D; public var a:RigidBody; public var b:RigidBody; public var n:Vector2D; public var next:Joint; public var prev:Joint; public var r1:Vector2D; public function Joint(_arg1:RigidBody, _arg2:RigidBody){ this.a = _arg1; this.b = _arg2; r1 = new Vector2D(); r2 = new Vector2D(); n = new Vector2D(); } public function draw(_arg1:Graphics, _arg2:Boolean):void{ } public function ApplyImpuse():void{ } public function PreStep(_arg1:Number):void{ } } }//package org.rje.glaze.engine.dynamics.joints
Section 205
//PinJoint (org.rje.glaze.engine.dynamics.joints.PinJoint) package org.rje.glaze.engine.dynamics.joints { import flash.display.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.dynamics.*; public class PinJoint extends Joint { public var jBias:Number; public var dist:Number; public var bias:Number; public var jnAcc:Number; public function PinJoint(_arg1:RigidBody, _arg2:RigidBody, _arg3:Vector2D, _arg4:Vector2D){ super(_arg1, _arg2); jnAcc = (jBias = (bias = 0)); this.anchr1 = _arg3.clone(); this.anchr2 = _arg4.clone(); var _local5:Vector2D = new Vector2D(((_arg3.x * _arg1.rot.x) - (_arg3.y * _arg1.rot.y)), ((_arg3.x * _arg1.rot.y) + (_arg3.y * _arg1.rot.x))); var _local6:Vector2D = new Vector2D(((_arg4.x * _arg2.rot.x) - (_arg4.y * _arg2.rot.y)), ((_arg4.x * _arg2.rot.y) + (_arg4.y * _arg2.rot.x))); _local5.plusEquals(_arg1.p); _local6.plusEquals(_arg2.p); dist = _local6.minus(_local5).magnitude(); } override public function ApplyImpuse():void{ var _local1:Number = ((b.v_bias.x + (-(r2.y) * b.w_bias)) - (a.v_bias.x + (-(r1.y) * a.w_bias))); var _local2:Number = ((b.v_bias.y + (r2.x * b.w_bias)) - (a.v_bias.y + (r1.x * a.w_bias))); var _local3:Number = ((_local1 * n.x) + (_local2 * n.y)); var _local4:Number = ((bias - _local3) * nMass); var _local5:Number = jBias; jBias = (_local5 + _local4); if (jBias > 0){ jBias = 0; }; _local4 = (jBias - _local5); var _local6:Number = (n.x * _local4); var _local7:Number = (n.y * _local4); a.v_bias.x = (a.v_bias.x + (-(_local6) * a.m_inv)); a.v_bias.y = (a.v_bias.y + (-(_local7) * a.m_inv)); a.w_bias = (a.w_bias + (a.i_inv * ((r1.x * -(_local7)) - (r1.y * -(_local6))))); b.v_bias.x = (b.v_bias.x + (_local6 * b.m_inv)); b.v_bias.y = (b.v_bias.y + (_local7 * b.m_inv)); b.w_bias = (b.w_bias + (b.i_inv * ((r2.x * _local7) - (r2.y * _local6)))); var _local8:Number = ((b.v.x + (-(r2.y) * b.w)) - (a.v.x + (-(r1.y) * a.w))); var _local9:Number = ((b.v.y + (r2.x * b.w)) - (a.v.y + (r1.x * a.w))); var _local10:Number = ((_local8 * n.x) + (_local9 * n.y)); var _local11:Number = (-(_local10) * nMass); jnAcc = _local11; var _local12:Number = (n.x * _local11); var _local13:Number = (n.y * _local11); if (a.isSleeping){ a.wake(a.space.stamp); }; a.v.x = (a.v.x + (-(_local12) * a.m_inv)); a.v.y = (a.v.y + (-(_local13) * a.m_inv)); a.w = (a.w + (a.i_inv * ((r1.x * -(_local13)) - (r1.y * -(_local12))))); if (b.isSleeping){ b.wake(b.space.stamp); }; b.v.x = (b.v.x + (_local12 * b.m_inv)); b.v.y = (b.v.y + (_local13 * b.m_inv)); b.w = (b.w + (b.i_inv * ((r2.x * _local13) - (r2.y * _local12)))); } override public function draw(_arg1:Graphics, _arg2:Boolean):void{ _arg1.lineStyle(2, 0x333333); _arg1.moveTo((a.p.x + r1.x), (a.p.y + r1.y)); _arg1.lineTo((b.p.x + r2.x), (b.p.y + r2.y)); } override public function PreStep(_arg1:Number):void{ var _local4:Number; r1.x = ((anchr1.x * a.rot.x) - (anchr1.y * a.rot.y)); r1.y = ((anchr1.x * a.rot.y) + (anchr1.y * a.rot.x)); r2.x = ((anchr2.x * b.rot.x) - (anchr2.y * b.rot.y)); r2.y = ((anchr2.x * b.rot.y) + (anchr2.y * b.rot.x)); var _local2:Number = ((b.p.x + r2.x) - (a.p.x + r1.x)); var _local3:Number = ((b.p.y + r2.y) - (a.p.y + r1.y)); _local4 = Math.sqrt(((_local2 * _local2) + (_local3 * _local3))); var _local5:Number = ((_local4)==0) ? Number.POSITIVE_INFINITY : _local4; n.x = (_local2 * (1 / _local5)); n.y = (_local3 * (1 / _local5)); var _local6:Number = (a.m_inv + b.m_inv); var _local7:Number = ((r1.x * n.y) - (r1.y * n.x)); var _local8:Number = ((r2.x * n.y) - (r2.y * n.x)); nMass = (1 / ((_local6 + ((a.i_inv * _local7) * _local7)) + ((b.i_inv * _local8) * _local8))); bias = ((-(joint_bias_coef) * _arg1) * (_local4 - dist)); jBias = 0; var _local9:Number = (n.x * jnAcc); var _local10:Number = (n.y * jnAcc); a.v.x = (a.v.x + (-(_local9) * a.m_inv)); a.v.y = (a.v.y + (-(_local10) * a.m_inv)); a.w = (a.w + (a.i_inv * ((r1.x * -(_local10)) - (r1.y * -(_local9))))); b.v.x = (b.v.x + (_local9 * b.m_inv)); b.v.y = (b.v.y + (_local10 * b.m_inv)); b.w = (b.w + (b.i_inv * ((r2.x * _local10) - (r2.y * _local9)))); } } }//package org.rje.glaze.engine.dynamics.joints
Section 206
//Arbiter (org.rje.glaze.engine.dynamics.Arbiter) package org.rje.glaze.engine.dynamics { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class Arbiter { public var stamp:int; public var target_v:Vector2D; public var contacts:Contact; public var a:GeometricShape; public var b:GeometricShape; public var e:Number; public var checked:Boolean; public var sleeping:Boolean; public var newCollision:Boolean; public var next:Arbiter; public var u:Number; public var id1:uint; public var id2:uint; public var updated:Boolean; public static const bias_coef:Number = 0.1; public static const collision_slop:Number = 0.1; public static var arbiterPool:Arbiter; public function Arbiter(){ contacts = null; target_v = new Vector2D(); u = (e = 0); } public function injectContact(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:uint):void{ var _local8:Contact = contacts; while (_local8) { if (_arg7 == _local8.hash){ break; }; _local8 = _local8.next; }; if (!_local8){ if (Contact.contactPool == null){ _local8 = new Contact(); } else { _local8 = Contact.contactPool; Contact.contactPool = Contact.contactPool.next; }; _local8.next = contacts; contacts = _local8; _local8.hash = _arg7; _local8.jnAcc = (_local8.jtAcc = 0); }; _local8.p.x = _arg1; _local8.p.y = _arg2; _local8.n.x = (_arg3 * _arg5); _local8.n.y = (_arg4 * _arg5); _local8.dist = _arg6; _local8.r1.x = (_local8.r1.y = 0); _local8.r2.x = (_local8.r2.y = 0); _local8.r1n.x = (_local8.r1n.y = 0); _local8.r2n.x = (_local8.r2n.y = 0); _local8.nMass = (_local8.tMass = (_local8.bounce = (_local8.jBias = (_local8.bias = 0)))); _local8.updated = true; } public function toString():String{ return (null); } public function SumImpulses():Vector2D{ var _local2:Contact; var _local1:Vector2D = new Vector2D(); _local2 = contacts; while (_local2) { _local1.x = (_local1.x + (_local2.n.x * _local2.jnAcc)); _local1.y = (_local1.y + (_local2.n.y * _local2.jnAcc)); _local2 = _local2.next; }; return (_local1); } public function assign(_arg1:GeometricShape, _arg2:GeometricShape, _arg3:int):void{ this.a = _arg1; this.b = _arg2; this.stamp = _arg3; this.u = (this.e = 0); target_v.x = (target_v.y = 0); } public function SumImpulsesWithFriction():Vector2D{ var _local1:Vector2D; var _local2:Contact; _local1 = new Vector2D(); _local2 = contacts; while (_local2) { _local1.x = (_local1.x + ((_local2.n.x * _local2.jnAcc) + (-(_local2.n.y) * _local2.jnAcc))); _local1.y = (_local1.y + ((_local2.n.y * _local2.jnAcc) + (_local2.n.x * _local2.jnAcc))); _local2 = _local2.next; }; return (_local1); } public function ApplyImpuse():void{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local1:RigidBody = a.body; var _local2:RigidBody = b.body; var _local3:Contact = contacts; while (_local3) { _local4 = (((((_local3.r2n.x * _local2.w_bias) + _local2.v_bias.x) - ((_local3.r1n.x * _local1.w_bias) + _local1.v_bias.x)) * _local3.n.x) + ((((_local3.r2n.y * _local2.w_bias) + _local2.v_bias.y) - ((_local3.r1n.y * _local1.w_bias) + _local1.v_bias.y)) * _local3.n.y)); _local5 = ((_local3.bias - _local4) * _local3.nMass); _local6 = _local3.jBias; _local3.jBias = (_local6 + _local5); if (_local3.jBias < 0){ _local3.jBias = 0; }; _local5 = (_local3.jBias - _local6); _local7 = (_local3.n.x * _local5); _local8 = (_local3.n.y * _local5); _local1.v_bias.x = (_local1.v_bias.x + (-(_local7) * _local1.m_inv)); _local1.v_bias.y = (_local1.v_bias.y + (-(_local8) * _local1.m_inv)); _local1.w_bias = (_local1.w_bias + (_local1.i_inv * ((_local3.r1.x * -(_local8)) - (_local3.r1.y * -(_local7))))); _local2.v_bias.x = (_local2.v_bias.x + (_local7 * _local2.m_inv)); _local2.v_bias.y = (_local2.v_bias.y + (_local8 * _local2.m_inv)); _local2.w_bias = (_local2.w_bias + (_local2.i_inv * ((_local3.r2.x * _local8) - (_local3.r2.y * _local7)))); _local9 = (((_local3.r2n.x * _local2.w) + _local2.v.x) - ((_local3.r1n.x * _local1.w) + _local1.v.x)); _local10 = (((_local3.r2n.y * _local2.w) + _local2.v.y) - ((_local3.r1n.y * _local1.w) + _local1.v.y)); _local11 = (-((_local3.bounce + ((_local9 * _local3.n.x) + (_local10 * _local3.n.y)))) * _local3.nMass); _local12 = _local3.jnAcc; _local3.jnAcc = (_local12 + _local11); if (_local3.jnAcc < 0){ _local3.jnAcc = 0; }; _local11 = (_local3.jnAcc - _local12); _local13 = (((_local9 + target_v.x) * -(_local3.n.y)) + ((_local10 + target_v.y) * _local3.n.x)); _local14 = (u * _local3.jnAcc); _local15 = (-(_local13) * _local3.tMass); _local16 = _local3.jtAcc; _local3.jtAcc = (_local16 + _local15); if (_local3.jtAcc < -(_local14)){ _local3.jtAcc = -(_local14); } else { if (_local3.jtAcc > _local14){ _local3.jtAcc = _local14; }; }; _local15 = (_local3.jtAcc - _local16); _local7 = ((_local3.n.x * _local11) + (-(_local3.n.y) * _local15)); _local8 = ((_local3.n.y * _local11) + (_local3.n.x * _local15)); _local1.v.x = (_local1.v.x + (-(_local7) * _local1.m_inv)); _local1.v.y = (_local1.v.y + (-(_local8) * _local1.m_inv)); _local1.w = (_local1.w + (_local1.i_inv * ((_local3.r1.x * -(_local8)) - (_local3.r1.y * -(_local7))))); _local2.v.x = (_local2.v.x + (_local7 * _local2.m_inv)); _local2.v.y = (_local2.v.y + (_local8 * _local2.m_inv)); _local2.w = (_local2.w + (_local2.i_inv * ((_local3.r2.x * _local8) - (_local3.r2.y * _local7)))); _local3 = _local3.next; }; } public function PreStep(_arg1:Number):void{ var _local7:Contact; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Contact; checked = false; var _local2:RigidBody = a.body; var _local3:RigidBody = b.body; e = (a.material.restitution * b.material.restitution); u = (a.material.friction * b.material.friction); target_v.x = (b.surface_v.x - a.surface_v.x); target_v.y = (b.surface_v.y - a.surface_v.y); var _local4:Number = (_local2.m_inv + _local3.m_inv); var _local5:Contact = contacts; var _local6:int; while (_local5) { if (!_local5.updated){ _local23 = _local5; if (_local5 == contacts){ _local5 = (contacts = _local5.next); } else { if (_local5.next == null){ _local5 = (_local7.next = null); } else { _local5 = (_local7.next = _local5.next); }; }; _local23.next = ((Contact.contactPool)==null) ? null : Contact.contactPool; Contact.contactPool = _local23; } else { _local5.updated = false; _local5.r1.x = (_local5.p.x - _local2.p.x); _local5.r1.y = (_local5.p.y - _local2.p.y); _local5.r2.x = (_local5.p.x - _local3.p.x); _local5.r2.y = (_local5.p.y - _local3.p.y); _local5.r1n.x = -(_local5.r1.y); _local5.r1n.y = _local5.r1.x; _local5.r2n.x = -(_local5.r2.y); _local5.r2n.y = _local5.r2.x; _local8 = ((_local5.r1.x * _local5.n.y) - (_local5.r1.y * _local5.n.x)); _local9 = ((_local5.r2.x * _local5.n.y) - (_local5.r2.y * _local5.n.x)); _local10 = ((_local4 + ((_local2.i_inv * _local8) * _local8)) + ((_local3.i_inv * _local9) * _local9)); _local5.nMass = (1 / _local10); _local11 = -(_local5.n.y); _local12 = _local5.n.x; _local13 = ((_local5.r1.x * _local12) - (_local5.r1.y * _local11)); _local14 = ((_local5.r2.x * _local12) - (_local5.r2.y * _local11)); _local15 = ((_local4 + ((_local2.i_inv * _local13) * _local13)) + ((_local3.i_inv * _local14) * _local14)); _local5.tMass = (1 / _local15); _local16 = (_local5.dist + collision_slop); if (_local16 > 0){ _local5.bias = 0; } else { _local5.bias = ((-(bias_coef) * _arg1) * _local16); }; _local5.jBias = 0; _local17 = ((_local5.r1n.x * _local2.w) + _local2.v.x); _local18 = ((_local5.r1n.y * _local2.w) + _local2.v.y); _local19 = ((_local5.r2n.x * _local3.w) + _local3.v.x); _local20 = ((_local5.r2n.y * _local3.w) + _local3.v.y); _local5.bounce = (((_local5.n.x * (_local19 - _local17)) + (_local5.n.y * (_local20 - _local18))) * e); _local21 = ((_local5.n.x * _local5.jnAcc) + (_local11 * _local5.jtAcc)); _local22 = ((_local5.n.y * _local5.jnAcc) + (_local12 * _local5.jtAcc)); _local2.v.x = (_local2.v.x + (-(_local21) * _local2.m_inv)); _local2.v.y = (_local2.v.y + (-(_local22) * _local2.m_inv)); _local2.w = (_local2.w + (_local2.i_inv * ((_local5.r1.x * -(_local22)) - (_local5.r1.y * -(_local21))))); _local3.v.x = (_local3.v.x + (_local21 * _local3.m_inv)); _local3.v.y = (_local3.v.y + (_local22 * _local3.m_inv)); _local3.w = (_local3.w + (_local3.i_inv * ((_local5.r2.x * _local22) - (_local5.r2.y * _local21)))); _local7 = _local5; _local5 = _local5.next; }; }; } } }//package org.rje.glaze.engine.dynamics
Section 207
//ArbiterProxy (org.rje.glaze.engine.dynamics.ArbiterProxy) package org.rje.glaze.engine.dynamics { public class ArbiterProxy { public var next:ArbiterProxy; public var sentinel:Boolean; public var arbiter:Arbiter; public var prev:ArbiterProxy; public static var arbiterProxyPool:ArbiterProxy; public static var c:int = 0; } }//package org.rje.glaze.engine.dynamics
Section 208
//BodyContact (org.rje.glaze.engine.dynamics.BodyContact) package org.rje.glaze.engine.dynamics { public class BodyContact { public var bodyB:RigidBody; public var stamp:int; public var sentinel:Boolean; public var endContact:Boolean; public var startContact:Boolean; public var contactCount:int; public var next:BodyContact; public var prev:BodyContact; public var bodyA:RigidBody; public static var bodyContactPool:BodyContact; public function BodyContact(){ this.stamp = 0; contactCount = 0; startContact = true; endContact = false; } } }//package org.rje.glaze.engine.dynamics
Section 209
//Contact (org.rje.glaze.engine.dynamics.Contact) package org.rje.glaze.engine.dynamics { import org.rje.glaze.engine.math.*; public class Contact { public const r2:Vector2D; public const r1n:Vector2D; public const n:Vector2D; public const p:Vector2D; public const r2n:Vector2D; public const r1:Vector2D; public var nMass:Number; public var jBias:Number; public var tMass:Number; public var prev:Contact; public var hash:uint; public var bounce:Number; public var jnAcc:Number; public var sentinel:Boolean; public var dist:Number; public var jtAcc:Number; public var next:Contact; public var bias:Number; public var updated:Boolean; public static var contactPool:Contact; public function Contact(){ p = new Vector2D(); n = new Vector2D(); r1 = new Vector2D(); r2 = new Vector2D(); r1n = new Vector2D(); r2n = new Vector2D(); super(); nMass = (tMass = (bounce = 0)); jnAcc = (jtAcc = (jBias = (bias = 0))); } public function toString():String{ return (((((((((((("Contact: p=" + p.toString()) + " n=") + n.toString()) + " dist=") + dist) + " hash=") + hash) + " jnAcc=") + jnAcc) + " jtAcc=") + jtAcc)); } } }//package org.rje.glaze.engine.dynamics
Section 210
//Material (org.rje.glaze.engine.dynamics.Material) package org.rje.glaze.engine.dynamics { public class Material { public var restitution:Number; public var density:Number; public var friction:Number; public static var defaultMaterial:Material = new Material(0.01, 0.9, 1); ; public function Material(_arg1:Number, _arg2:Number, _arg3:Number){ this.restitution = _arg1; this.friction = _arg2; this.density = _arg3; } } }//package org.rje.glaze.engine.dynamics
Section 211
//RigidBody (org.rje.glaze.engine.dynamics.RigidBody) package org.rje.glaze.engine.dynamics { import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class RigidBody { public const f:Vector2D; public const p:Vector2D; public const v:Vector2D; public const rot:Vector2D; public const v_bias:Vector2D; public var dispObj:DisplayObject; public var space:Space; public var locked:Space; public var i_inv:Number; public var m_inv:Number; public var collision_type:uint; public var memberShapes:Array; public var prev:RigidBody; public var isStatic:Boolean; public var bodyID:uint;// = 0 public var layers:uint; public var a:Number; public var i:Number; public var isFixed:Boolean; public var collisionProcessingMask:uint;// = 7 public var m:Number; public var t:Number; public var w:Number; public var group:uint; public var w_bias:Number; private var cos:Number; public var onColisionFunc:Function; private var calcMassInertia:Boolean; public var sleepEpsilon:Number; private var storedInertia:Number;// = -1 public var checked:uint; public var arbiters:ArbiterProxy; public var maxVelocityScalar:Number;// = 1000 public var sleepSpeed:Number; public var motion:Number;// = 0.0002 private var sin:Number; public var maxVelocityScalarSqr:Number;// = 1000000 public var next:RigidBody; public var canSleep:Boolean; public var isSleeping:Boolean; public static const DYNAMIC_BODY:int = 1; public static const FIXED_DYNAMIC_BODY:int = 2; public static const STATIC_BODY:int = 0; public static var sleepSpeed:Number = 0.01; public static var sleepEpsilon:Number = 0.1; public static var nextBodyID:uint = 0; public static var bias:Number = 0.99332805041467; public function RigidBody(_arg1:int=1, _arg2:Number=-1, _arg3:Number=-1){ p = new Vector2D(); v = new Vector2D(); f = new Vector2D(); v_bias = new Vector2D(); rot = new Vector2D(); super(); bodyID = nextBodyID++; switch (_arg1){ case STATIC_BODY: isStatic = true; isFixed = false; break; case DYNAMIC_BODY: isStatic = false; isFixed = false; break; case FIXED_DYNAMIC_BODY: isStatic = false; isFixed = true; break; }; this.calcMassInertia = (((_arg2 < 0)) || ((_arg3 < 0))); if (isStatic){ this.calcMassInertia = false; setMass(Number.POSITIVE_INFINITY); setMoment(Number.POSITIVE_INFINITY); } else { if (!calcMassInertia){ setMass(_arg2); setMoment(_arg3); }; }; a = (w = (t = (w_bias = 0))); memberShapes = new Array(); arbiters = new ArbiterProxy(); arbiters.next = arbiters; arbiters.prev = arbiters; arbiters.sentinel = true; group = 0; layers = 0xFFFF; setAngle(0); sleepEpsilon = RigidBody.sleepEpsilon; sleepSpeed = RigidBody.sleepSpeed; collisionProcessingMask = 0; } public function addArbiter(_arg1:Arbiter):void{ var _local2:ArbiterProxy; if (ArbiterProxy.arbiterProxyPool){ _local2 = ArbiterProxy.arbiterProxyPool; ArbiterProxy.arbiterProxyPool = ArbiterProxy.arbiterProxyPool.next; } else { _local2 = new ArbiterProxy(); }; _local2.arbiter = _arg1; _local2.prev = arbiters; _local2.next = arbiters.next; arbiters.next = _local2; _local2.next.prev = _local2; } public function setMoment(_arg1:Number):void{ this.i = _arg1; this.i_inv = (1 / _arg1); } public function onCollision(_arg1:RigidBody):void{ if (onColisionFunc != null){ onColisionFunc(_arg1); }; } public function onEndCollision(_arg1:RigidBody):void{ } public function resetForces():void{ f.x = (f.y = (t = 0)); } public function registerSpace(_arg1:Space):void{ this.space = _arg1; } public function get rotationLocked():Boolean{ return (!((storedInertia == -1))); } public function unregisterSpace():void{ this.space = null; } public function lock():void{ if (!space){ return; }; locked = space; space.removeRigidBody(this); } public function UpdatePosition(_arg1:Number):void{ var _local2:Number; var _local3:Number; p.x = (p.x + ((v.x + v_bias.x) * _arg1)); p.y = (p.y + ((v.y + v_bias.y) * _arg1)); if (maxVelocityScalarSqr > 0){ _local2 = ((v.x * v.x) + (v.y * v.y)); if (_local2 > maxVelocityScalarSqr){ _local3 = (maxVelocityScalar / Math.sqrt(_local2)); v.x = (v.x * _local3); v.y = (v.y * _local3); }; }; motion = ((bias * motion) + (((1 - bias) * (((v.x * v.x) + (v.y * v.y)) + (w * w))) * this.sleepSpeed)); if (motion > (10 * this.sleepEpsilon)){ motion = (10 * this.sleepEpsilon); }; canSleep = (motion <= this.sleepEpsilon); if (!canSleep){ isSleeping = false; }; setAngle((a + ((w + w_bias) * _arg1))); v_bias.x = (v_bias.y = 0); w_bias = 0; } public function unlock():void{ if (!locked){ return; }; locked.addRigidBody(this); locked = null; } public function onStep(_arg1:Number):void{ } public function set rotationLocked(_arg1:Boolean):void{ if (_arg1){ storedInertia = i; setMoment(Number.POSITIVE_INFINITY); } else { setMoment(storedInertia); storedInertia = -1; }; } public function onPhysicsStep(_arg1:Number):void{ } public function setMass(_arg1:Number):void{ this.m = _arg1; this.m_inv = (1 / _arg1); } public function removeShape(_arg1:GeometricShape, _arg2:Boolean=false):void{ if (((space) && (!(locked)))){ space.removeRigidBody(this); }; var _local3:int = memberShapes.indexOf(_arg1); if (_local3 >= 0){ memberShapes.splice(_local3, 1); }; if (calcMassInertia){ calculateMassInertia(); }; if (((space) && (!(locked)))){ space.addRigidBody(this); }; } public function addShape(_arg1:GeometricShape, _arg2:Boolean=false):GeometricShape{ var _local3:Space; if (((space) && (!(locked)))){ _local3 = space; space.removeRigidBody(this); }; _arg1.registerBody(this); memberShapes.push(_arg1); if (calcMassInertia){ calculateMassInertia(); }; if (_local3){ _local3.addRigidBody(this); }; return (_arg1); } public function setAngle(_arg1:Number):void{ this.a = (_arg1 % 6.28318530717); rot.x = Math.cos(a); rot.y = Math.sin(a); } public function setMaxVelocity(_arg1:Number):void{ if (_arg1 >= 0){ maxVelocityScalar = _arg1; maxVelocityScalarSqr = (maxVelocityScalar * maxVelocityScalar); } else { maxVelocityScalar = -1; maxVelocityScalarSqr = -1; }; } public function wake(_arg1:int):void{ var _local2:ArbiterProxy; motion = (10 * sleepEpsilon); canSleep = (isSleeping = false); _local2 = arbiters.next; while (_local2.sentinel != true) { _local2.arbiter.sleeping = false; _local2.arbiter.stamp = _arg1; _local2 = _local2.next; }; } public function onStartCollision(_arg1:RigidBody):void{ } public function getArbiter(_arg1:uint, _arg2:uint):Arbiter{ var _local3:ArbiterProxy; _local3 = arbiters.next; while (_local3.sentinel != true) { if ((((_local3.arbiter.id1 == _arg1)) && ((_local3.arbiter.id2 == _arg2)))){ return (_local3.arbiter); }; if ((((_local3.arbiter.id1 == _arg2)) && ((_local3.arbiter.id2 == _arg1)))){ return (_local3.arbiter); }; _local3 = _local3.next; }; return (null); } public function removeArbiter(_arg1:Arbiter):void{ var _local2:ArbiterProxy; _local2 = arbiters.next; while (_local2.sentinel != true) { if (_local2.arbiter == _arg1){ _local2.prev.next = _local2.next; _local2.next.prev = _local2.prev; _local2.next = ArbiterProxy.arbiterProxyPool; ArbiterProxy.arbiterProxyPool = _local2; return; }; _local2 = _local2.next; }; } public function ApplyImpulse(_arg1:Vector2D, _arg2:Vector2D):void{ if (isSleeping){ wake(space.stamp); }; v.x = (v.x + (_arg1.x * m_inv)); v.y = (v.y + (_arg1.y * m_inv)); w = (w + (i_inv * ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } public function slew(_arg1:Vector2D, _arg2:Number):void{ } public function ApplyForces(_arg1:Vector2D, _arg2:Vector2D):void{ if (isSleeping){ wake(space.stamp); }; f.x = (f.x + _arg1.x); f.y = (f.y + _arg1.y); t = ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)); } public function ApplyBiasImpulse(_arg1:Vector2D, _arg2:Vector2D):void{ if (isSleeping){ wake(space.stamp); }; v_bias.x = (v_bias.x + (_arg1.x * m_inv)); v_bias.y = (v_bias.y + (_arg1.y * m_inv)); w_bias = (w_bias + (i_inv * ((_arg2.x * _arg1.y) - (_arg2.y * _arg1.x)))); } public function sleep():void{ var _local1:ArbiterProxy; v.x = (v.y = (w = 0)); isSleeping = true; _local1 = arbiters.next; while (_local1.sentinel != true) { _local1.arbiter.sleeping = true; _local1 = _local1.next; }; } public function calculateMassInertia():void{ var _local3:GeometricShape; var _local1:Number = 0; var _local2:Number = 0; for each (_local3 in memberShapes) { _local1 = (_local1 + _local3.mass); _local2 = (_local2 + _local3.CalculateInertia(_local3.mass, _local3.offset)); }; setMass(_local1); setMoment(_local2); } public function UpdateVelocity(_arg1:Vector2D, _arg2:Vector2D, _arg3:Number, _arg4:Number):void{ v.x = ((v.x * _arg3) + ((_arg1.x + ((_arg2.x + f.x) * m_inv)) * _arg4)); v.y = ((v.y * _arg3) + ((_arg1.y + ((_arg2.y + f.y) * m_inv)) * _arg4)); w = ((w * _arg3) + ((t * i_inv) * _arg4)); checked = 0; } } }//package org.rje.glaze.engine.dynamics
Section 212
//Axis (org.rje.glaze.engine.math.Axis) package org.rje.glaze.engine.math { public class Axis { public var next:Axis; public var d:Number; public var n:Vector2D; public function Axis(_arg1:Vector2D, _arg2:Number){ this.n = _arg1; this.d = _arg2; } public function toString():String{ return (((((("Axis= " + n.x) + ":") + n.y) + " d=") + d)); } public function clone():Axis{ return (new Axis(this.n.clone(), this.d)); } } }//package org.rje.glaze.engine.math
Section 213
//Ray (org.rje.glaze.engine.math.Ray) package org.rje.glaze.engine.math { import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; public class Ray { public var castingBody:RigidBody; public var target:Vector2D; public var closestIntersectNormal:Vector2D; public var endpoint:Vector2D; public var rangeSqr:Number; public var fdirection:Vector2D; public var closestIntersectDistance:Number; public var origin:Vector2D; public var isSegment:Boolean; public var lastIntersectResult:Boolean; public var returnNormal:Boolean; public var lastIntersectShape:GeometricShape; public var intersectInRange:Boolean; public var closestIntersectShape:GeometricShape; public var range:Number; public var lastIntersectDistance:Number; public var direction:Vector2D; public function Ray(_arg1:Vector2D, _arg2:Vector2D, _arg3:RigidBody=null, _arg4:Number=INF){ this.origin = _arg1; this.target = _arg2; direction = _arg2.minus(_arg1).normalize(); fdirection = direction.abs(); this.castingBody = _arg3; closestIntersectDistance = Number.POSITIVE_INFINITY; if (_arg4 < Number.POSITIVE_INFINITY){ isSegment = true; endpoint = _arg1.plus(direction.mult(_arg4)); }; this.range = _arg4; this.rangeSqr = (_arg4 * _arg4); } public function get closestIntersectPoint():Vector2D{ return (new Vector2D((origin.x + (direction.x * closestIntersectDistance)), (origin.y + (direction.y * closestIntersectDistance)))); } public function get lastIntersectPoint():Vector2D{ return (new Vector2D((origin.x + (direction.x * lastIntersectDistance)), (origin.y + (direction.y * lastIntersectDistance)))); } public function testShape(_arg1:GeometricShape):Boolean{ lastIntersectResult = false; if (((!(castingBody)) && ((_arg1.body == castingBody)))){ return (false); }; return (_arg1.IntersectRay(this)); } public function reportResult(_arg1:GeometricShape, _arg2:Number, _arg3:Vector2D=null):Boolean{ if (_arg2 >= range){ lastIntersectResult = false; return (false); }; intersectInRange = true; lastIntersectResult = true; lastIntersectDistance = _arg2; lastIntersectShape = _arg1; if (_arg2 < closestIntersectDistance){ closestIntersectDistance = _arg2; closestIntersectShape = _arg1; closestIntersectNormal = _arg3; }; return (true); } } }//package org.rje.glaze.engine.math
Section 214
//Vector2D (org.rje.glaze.engine.math.Vector2D) package org.rje.glaze.engine.math { import flash.geom.*; public class Vector2D { public var y:Number; public var flag:Boolean; public var next:Vector2D; public var x:Number; public static const zeroVect:Vector2D = new Vector2D(0, 0); ; public function Vector2D(_arg1:Number=0, _arg2:Number=0){ x = _arg1; y = _arg2; } public function cross(_arg1:Vector2D):Number{ return (((x * _arg1.y) - (y * _arg1.x))); } public function rightHandNormal():Vector2D{ return (new Vector2D(-(this.y), this.x)); } public function interpEquals(_arg1:Number, _arg2:Vector2D):Vector2D{ this.x = (this.x + (_arg1 * (_arg2.x - this.x))); this.y = (this.y + (_arg1 * (_arg2.y - this.y))); return (this); } public function rotateByVector(_arg1:Vector2D):Vector2D{ return (new Vector2D(((this.x * _arg1.x) - (this.y * _arg1.y)), ((this.x * _arg1.y) + (this.y * _arg1.x)))); } public function times(_arg1:Vector2D):Vector2D{ return (new Vector2D((x * _arg1.x), (y * _arg1.y))); } public function equalsZero():Boolean{ return (((this.x == this.y) == 0)); } public function minus(_arg1:Vector2D):Vector2D{ return (new Vector2D((x - _arg1.x), (y - _arg1.y))); } public function dot(_arg1:Vector2D):Number{ return (((x * _arg1.x) + (y * _arg1.y))); } public function abs():Vector2D{ return (new Vector2D(((this.x)<0) ? -(this.x) : this.x, ((this.y)<0) ? -(this.y) : this.y)); } public function forAngleEquals(_arg1:Number):void{ this.x = Math.cos(_arg1); this.y = Math.sin(_arg1); } public function normalize():Vector2D{ var _local1:Number = magnitude(); if (_local1 == 0){ _local1 = 0.0001; }; return (mult((1 / _local1))); } public function toString():String{ return (((x + ":") + y)); } public function minusEquals(_arg1:Vector2D):Vector2D{ x = (x - _arg1.x); y = (y - _arg1.y); return (this); } public function magnitude():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function div(_arg1:Number):Vector2D{ if (_arg1 == 0){ _arg1 = 0.0001; }; return (new Vector2D((x / _arg1), (y / _arg1))); } public function rotateEquals(_arg1:Number):Vector2D{ var _local2:Number = ((_arg1 * Math.PI) / 180); var _local3:Number = Math.cos(_local2); var _local4:Number = Math.sin(_local2); var _local5:Number = ((_local3 * x) - (_local4 * y)); var _local6:Number = ((_local3 * y) + (_local4 * x)); this.x = _local5; this.y = _local6; return (this); } public function projectOnto(_arg1:Vector2D):Vector2D{ var _local2:Number = this.dot(_arg1); var _local3:Number = (_local2 / ((_arg1.x * _arg1.x) + (_arg1.y * _arg1.y))); return (new Vector2D((_local3 * _arg1.x), (_local3 * _arg1.y))); } public function rotateAbout(_arg1:Number, _arg2:Vector2D):Vector2D{ var _local3:Vector2D = this.minus(_arg2).rotate(_arg1); this.x = (_arg2.x + _local3.x); this.y = (_arg2.y + _local3.y); return (this); } public function toPoint():Point{ return (new Point(x, y)); } public function multEquals(_arg1:Number):Vector2D{ x = (x * _arg1); y = (y * _arg1); return (this); } public function plus(_arg1:Vector2D):Vector2D{ return (new Vector2D((x + _arg1.x), (y + _arg1.y))); } public function clone():Vector2D{ return (new Vector2D(this.x, this.y)); } public function angle(_arg1:Vector2D):Number{ return (Math.atan2(this.cross(_arg1), this.dot(_arg1))); } public function leftHandNormal():Vector2D{ return (new Vector2D(this.y, -(this.x))); } public function timesEquals(_arg1:Vector2D):Vector2D{ x = (x * _arg1.x); y = (y * _arg1.y); return (this); } public function clampMax(_arg1:Number):Vector2D{ var _local2:Number = magnitude(); if (_local2 > _arg1){ multEquals((_arg1 / _local2)); }; return (this); } public function rotate(_arg1:Number):Vector2D{ var _local2:Number = ((_arg1 * Math.PI) / 180); var _local3:Number = Math.cos(_local2); var _local4:Number = Math.sin(_local2); return (new Vector2D(((_local3 * x) - (_local4 * y)), ((_local3 * y) + (_local4 * x)))); } public function divEquals(_arg1:Number):Vector2D{ if (_arg1 == 0){ _arg1 = 0.0001; }; x = (x / _arg1); y = (y / _arg1); return (this); } public function copy(_arg1:Vector2D):void{ x = _arg1.x; y = _arg1.y; } public function plusEquals(_arg1:Vector2D):Vector2D{ x = (x + _arg1.x); y = (y + _arg1.y); return (this); } public function normalizeEquals():Vector2D{ var _local1:Number = magnitude(); if (_local1 == 0){ _local1 = 0.0001; }; return (multEquals((1 / _local1))); } public function distance(_arg1:Vector2D):Number{ var _local2:Vector2D = this.minus(_arg1); return (_local2.magnitude()); } public function setTo(_arg1:Number, _arg2:Number):void{ x = _arg1; y = _arg2; } public function mult(_arg1:Number):Vector2D{ return (new Vector2D((x * _arg1), (y * _arg1))); } public static function forAngle(_arg1:Number):Vector2D{ return (new Vector2D(Math.cos(_arg1), Math.sin(_arg1))); } public static function fromString(_arg1:String):Vector2D{ if (_arg1 == null){ return (null); }; var _local2:Array = _arg1.split(":"); if ((((_local2 == null)) || (!((_local2.length == 2))))){ return (null); }; var _local3:Number = parseFloat(_local2[0]); var _local4:Number = parseFloat(_local2[1]); if (((isNaN(_local3)) || (isNaN(_local4)))){ return (null); }; return (new Vector2D(_local3, _local4)); } public static function createVectorArray(_arg1:int):Array{ var _local2:Array = new Array(); var _local3:int; while (_local3 < _arg1) { _local2[_local3] = new Vector2D(0, 0); _local3++; }; return (_local2); } } }//package org.rje.glaze.engine.math
Section 215
//BruteForceSpace (org.rje.glaze.engine.space.BruteForceSpace) package org.rje.glaze.engine.space { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class BruteForceSpace extends Space { public function BruteForceSpace(_arg1:int, _arg2:int, _arg3:AABB=null){ super(_arg1, _arg2, _arg3); broadphaseCounter.name = (broadphaseCounter.name + " Brute Force"); } override public function broadPhase():void{ var _local2:GeometricShape; var _local3:GeometricShape; var _local1:GeometricShape = activeShapes; while (_local1) { _local2 = _local1.next; while (_local2) { broadphaseCounter.counter++; if (_local2.aabb.l <= _local1.aabb.r){ if (_local1.aabb.l <= _local2.aabb.r){ if (_local2.aabb.t <= _local1.aabb.b){ if (_local1.aabb.t <= _local2.aabb.b){ narrowPhase(_local1, _local2); }; }; }; }; _local2 = _local2.next; }; _local3 = staticShapes; while (_local3) { broadphaseCounter.counter++; if (_local3.aabb.l <= _local1.aabb.r){ if (_local1.aabb.l <= _local3.aabb.r){ if (_local3.aabb.t <= _local1.aabb.b){ if (_local1.aabb.t <= _local3.aabb.b){ narrowPhase(_local1, _local3); }; }; }; }; _local3 = _local3.next; }; _local1 = _local1.next; }; broadphaseCounter.endCycle(); } override public function sync():void{ } override public function getShapeAtPoint(_arg1:Vector2D):GeometricShape{ var _local2:GeometricShape = activeShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; return (null); } override public function castRay(_arg1:Ray):Boolean{ var _local2:GeometricShape = activeShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; return (_arg1.intersectInRange); } } }//package org.rje.glaze.engine.space
Section 216
//SortAndSweepSpace (org.rje.glaze.engine.space.SortAndSweepSpace) package org.rje.glaze.engine.space { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class SortAndSweepSpace extends Space { public function SortAndSweepSpace(_arg1:int, _arg2:int, _arg3:AABB=null){ super(_arg1, _arg2, _arg3); broadphaseCounter.name = (broadphaseCounter.name + " Sort&Sweep"); } override public function broadPhase():void{ var _local2:GeometricShape; var _local4:GeometricShape; activeShapes = Sort(activeShapes); var _local1:GeometricShape = activeShapes; var _local3:GeometricShape = staticShapes; while (_local1) { _local2 = _local1.next; while (_local2) { broadphaseCounter.counter++; if (_local2.aabb.t > _local1.aabb.b){ break; }; if (_local1.aabb.l <= _local2.aabb.r){ if (_local1.aabb.r >= _local2.aabb.l){ narrowPhase(_local1, _local2); }; }; _local2 = _local2.next; }; while (_local3) { broadphaseCounter.counter++; if (_local3.aabb.t > _local1.aabb.b){ break; }; if (_local3.aabb.t <= _local1.aabb.b){ if (_local1.aabb.t <= _local3.aabb.b){ break; }; }; _local3 = _local3.next; }; _local4 = _local3; while (_local4) { broadphaseCounter.counter++; if (_local4.aabb.t > _local1.aabb.b){ break; }; if (_local1.aabb.l <= _local4.aabb.r){ if (_local1.aabb.r >= _local4.aabb.l){ narrowPhase(_local1, _local4); }; }; _local4 = _local4.next; }; _local1 = _local1.next; }; broadphaseCounter.endCycle(); } override public function sync():void{ staticShapes = Sort(staticShapes); } override public function getShapeAtPoint(_arg1:Vector2D):GeometricShape{ var _local2:GeometricShape = activeShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; return (null); } override public function castRay(_arg1:Ray):Boolean{ var _local2:GeometricShape = activeShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; return (_arg1.intersectInRange); } public function Sort(_arg1:GeometricShape):GeometricShape{ var _local3:GeometricShape; var _local4:GeometricShape; var _local5:GeometricShape; var _local6:GeometricShape; if (!_arg1){ return (null); }; var _local2:GeometricShape = _arg1; _local4 = _local2.next; while (_local4) { _local5 = _local4.next; _local3 = _local4.prev; broadphaseCounter.counter++; if (_local3.aabb.t > _local4.aabb.t){ _local6 = _local3; while (_local6.prev) { broadphaseCounter.counter++; if (_local6.prev.aabb.t > _local4.aabb.t){ _local6 = _local6.prev; } else { break; }; }; if (_local5){ _local3.next = _local5; _local5.prev = _local3; } else { _local3.next = null; }; if (_local6 == _local2){ _local4.prev = null; _local4.next = _local6; _local6.prev = _local4; _local2 = _local4; } else { _local4.prev = _local6.prev; _local6.prev.next = _local4; _local4.next = _local6; _local6.prev = _local4; }; }; _local4 = _local5; }; return (_local2); } } }//package org.rje.glaze.engine.space
Section 217
//Space (org.rje.glaze.engine.space.Space) package org.rje.glaze.engine.space { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.*; import org.rje.glaze.engine.dynamics.joints.*; import org.rje.glaze.engine.dynamics.forces.*; import flash.utils.*; import org.rje.glaze.util.*; import org.rje.glaze.engine.collision.*; public class Space { private const collider:ICollide; public var staticShapes:GeometricShape; public var broadphaseCounter:Counter; private var ticksPerSec:int; public var dt:Number; private var calcdamping:Number; public var activeShapes:GeometricShape; public var collectStats:Boolean; private var accumulator:int; private var currTime:int; public var bodyContacts:BodyContact; public var joints:Joint; public var arbiters:Arbiter; public var iterations:int; public var stamp:int; public var activeBodiesCount:int; private var _damping:Number; public var staticBodies:RigidBody; public var defaultStaticBody:RigidBody; public var arbiterCounter:Counter; public var activeShapesCount:int; public var worldBoundary:AABB; public var masslessForce:Vector2D; public var staticBodiesCount:int; public var narrowphaseCounter:Counter; public var activeBodies:RigidBody; public var fps:int; public var force:Vector2D; public var frame:int; public var pps:int; public var staticShapesCount:int; public var forces:Force; public var bodyContactDict:Dictionary; public function Space(_arg1:int, _arg2:int, _arg3:AABB=null){ collider = new EnhancedCollision(); super(); Contact.contactPool = null; Arbiter.arbiterPool = null; BodyContact.bodyContactPool = null; bodyContacts = new BodyContact(); bodyContacts.next = bodyContacts; bodyContacts.prev = bodyContacts; bodyContacts.sentinel = true; GeometricShape.nextShapeID = 0; RigidBody.nextBodyID = 0; Arbiter.arbiterPool = new Arbiter(); this.fps = _arg1; this.pps = _arg2; ticksPerSec = (1000 / _arg2); dt = (1 / _arg2); iterations = 20; damping = 0.98; force = new Vector2D(0, 0); masslessForce = new Vector2D(0, 0); stamp = 0; frame = 0; bodyContactDict = new Dictionary(true); defaultStaticBody = new RigidBody(RigidBody.STATIC_BODY); addRigidBody(defaultStaticBody); this.worldBoundary = (_arg3) ? _arg3 : AABB.createAt(0, 0, 2000, 2000); collectStats = true; narrowphaseCounter = new Counter("Narrow phase"); broadphaseCounter = new Counter(""); arbiterCounter = new Counter("Arbiter Processed"); } public function set damping(_arg1:Number):void{ this._damping = _arg1; calcdamping = Math.pow((1 / _damping), -(dt)); } public function wakeBody(_arg1:RigidBody):void{ var _local2:RigidBody; var _local4:ArbiterProxy; var _local5:int; var _local7:int; var _local8:RigidBody; var _local9:RigidBody; var _local3:Array = new Array(); var _local6:Array = new Array(); _local3[0] = _arg1; _local5 = 1; while (_local5 > 0) { --_local5; _local8 = _local3[_local5]; if (_local8.checked == 9999999){ } else { _local8.checked = 9999999; _local8.wake(stamp); _local4 = _local8.arbiters.next; while (_local4.sentinel != true) { _local9 = ((_local4.arbiter.a.body)==_local8) ? _local4.arbiter.b.body : _local4.arbiter.a.body; if (_local9.isStatic){ } else { if (_local9.checked == 9999999){ } else { var _temp1 = _local5; _local5 = (_local5 + 1); var _local10 = _temp1; _local3[_local10] = _local9; }; }; _local4 = _local4.next; }; }; }; } public function cullOutOfBounds():void{ var _local2:GeometricShape; var _local3:int; var _local4:Boolean; var _local5:int; var _local6:RigidBody; var _local1:RigidBody = activeBodies; while (_local1) { _local4 = true; _local3 = _local1.memberShapes.length; _local5 = 0; while (_local5 < _local3) { _local2 = _local1.memberShapes[_local5]; if (!(((((((worldBoundary.l > _local2.aabb.r)) || ((worldBoundary.r < _local2.aabb.l)))) || ((worldBoundary.t > _local2.aabb.b)))) || ((worldBoundary.b < _local2.aabb.t)))){ _local4 = false; break; }; _local5++; }; if (_local4){ _local6 = _local1.next; removeRigidBody(_local1); _local1 = _local6; } else { _local1 = _local1.next; }; }; } public function broadPhase():void{ } public function processBodyContacts():void{ var _local1:BodyContact; var _local2:BodyContact; _local1 = bodyContacts.next; while (_local1.sentinel != true) { if (_local1.bodyA.collisionProcessingMask){ if ((((_local1.bodyA.collisionProcessingMask & 1)) && (_local1.startContact))){ _local1.bodyA.onStartCollision(_local1.bodyB); }; if ((_local1.bodyA.collisionProcessingMask & 2)){ _local1.bodyA.onCollision(_local1.bodyB); }; if ((((_local1.bodyA.collisionProcessingMask & 4)) && (_local1.endContact))){ _local1.bodyA.onEndCollision(_local1.bodyB); }; }; if (_local1.bodyB.collisionProcessingMask){ if ((((_local1.bodyB.collisionProcessingMask & 1)) && (_local1.startContact))){ _local1.bodyB.onStartCollision(_local1.bodyA); }; if ((_local1.bodyB.collisionProcessingMask & 2)){ _local1.bodyB.onCollision(_local1.bodyA); }; if ((((_local1.bodyB.collisionProcessingMask & 4)) && (_local1.endContact))){ _local1.bodyB.onEndCollision(_local1.bodyA); }; }; _local1.startContact = false; if (_local1.endContact){ _local1.prev.next = _local1.next; _local2 = (_local1.next.prev = _local1.prev); _local1.next = BodyContact.bodyContactPool; BodyContact.bodyContactPool = _local1; _local1 = _local2; }; _local1 = _local1.next; }; } public function getShapeAtPoint(_arg1:Vector2D):GeometricShape{ return (null); } public function physicsStep():void{ var _local1:GeometricShape; var _local2:RigidBody; var _local3:Arbiter; var _local4:Force; var _local5:Joint; var _local6:int; var _local7:int; var _local8:Arbiter; var _local9:uint; var _local10:BodyContact; var _local11:Contact; var _local12:Contact; var _local13:Arbiter; _local4 = forces; while (_local4) { if (_local4.active){ _local4.eval(); }; _local4 = _local4.next; }; _local2 = activeBodies; while (_local2) { if (((!(_local2.isSleeping)) && (!(_local2.isFixed)))){ _local2.UpdateVelocity(masslessForce, force, calcdamping, dt); }; _local2 = _local2.next; }; _local1 = activeShapes; while (_local1) { if (!_local1.body.isSleeping){ _local1.Update(); }; _local1 = _local1.next; }; broadPhase(); _local3 = arbiters; while (_local3) { if (!_local3.sleeping){ if ((stamp - _local3.stamp) > 3){ _local3.a.body.removeArbiter(_local3); _local3.b.body.removeArbiter(_local3); if (_local3.a.body.isSleeping){ wakeBody(_local3.a.body); }; if (_local3.b.body.isSleeping){ wakeBody(_local3.b.body); }; _local9 = ((_local3.a.body.bodyID)<_local3.b.body.bodyID) ? ((_local3.a.body.bodyID << 16) | _local3.b.body.bodyID) : ((_local3.b.body.bodyID << 16) | _local3.a.body.bodyID); _local10 = bodyContactDict[_local9]; if (_local10){ _local10.contactCount--; if (_local10.contactCount == 0){ delete bodyContactDict[_local9]; _local10.endContact = true; }; } else { trace("oh shit "); trace(_local3.a.body.bodyID); trace(_local3.b.body.bodyID); }; _local11 = _local3.contacts; while (_local11) { _local12 = _local11.next; _local11.next = Contact.contactPool; Contact.contactPool = _local11; _local11 = _local12; }; _local13 = _local3; if (_local3 == arbiters){ _local3 = (arbiters = _local3.next); } else { if (_local3.next == null){ _local3 = (_local8.next = null); } else { _local3 = (_local8.next = _local3.next); }; }; _local13.next = ((Arbiter.arbiterPool)==null) ? null : Arbiter.arbiterPool; Arbiter.arbiterPool = _local13; continue; } else { arbiterCounter.counter++; _local3.PreStep(pps); }; }; _local8 = _local3; _local3 = _local3.next; }; _local5 = joints; while (_local5) { _local5.PreStep(pps); _local5 = _local5.next; }; _local6 = 0; while (_local6 < iterations) { _local3 = arbiters; while (_local3) { if (!_local3.sleeping){ _local3.ApplyImpuse(); }; _local3 = _local3.next; }; _local5 = joints; while (_local5) { _local5.ApplyImpuse(); _local5 = _local5.next; }; _local6++; }; _local2 = activeBodies; while (_local2) { if (!_local2.isSleeping){ _local2.UpdatePosition(dt); _local2.resetForces(); }; _local2 = _local2.next; }; force.x = (force.y = 0); stamp++; if (collectStats){ narrowphaseCounter.endCycle(); arbiterCounter.endCycle(); }; } public function sync():void{ } public function execIntervalFunctions():void{ if ((frame % 30) == 0){ sleepBodys(); }; } public function removeForce(_arg1:Force):void{ if (!_arg1.prev){ forces = _arg1.next; } else { _arg1.prev.next = _arg1.next; }; if (_arg1.next){ _arg1.next.prev = _arg1.prev; }; } public function removeRigidBody(_arg1:RigidBody):void{ var _local2:GeometricShape; var _local3:RigidBody = (_arg1.isStatic) ? staticBodies : activeBodies; var _local4:GeometricShape = (_arg1.isStatic) ? staticShapes : activeShapes; _arg1.wake(stamp); if (!_arg1.prev){ _local3 = _arg1.next; } else { _arg1.prev.next = _arg1.next; }; if (_arg1.next){ _arg1.next.prev = _arg1.prev; }; for each (_local2 in _arg1.memberShapes) { if (!_local2.prev){ _local4 = _local2.next; } else { _local2.prev.next = _local2.next; }; if (_local2.next){ _local2.next.prev = _local2.prev; }; }; if (_arg1.isStatic){ staticBodiesCount--; staticShapesCount = (staticShapesCount - _arg1.memberShapes.length); staticBodies = _local3; staticShapes = _local4; } else { activeBodiesCount--; activeShapesCount = (activeShapesCount - _arg1.memberShapes.length); activeBodies = _local3; activeShapes = _local4; }; } public function step():void{ var _local1:int; var _local2:int; var _local3:int = getTimer(); var _local4:int = (_local3 - currTime); currTime = _local3; if (_local4 > 100){ _local4 = 100; }; accumulator = (accumulator + _local4); while (accumulator >= ticksPerSec) { accumulator = (accumulator - ticksPerSec); physicsStep(); }; frame++; processBodyContacts(); execIntervalFunctions(); } public function narrowPhase(_arg1:GeometricShape, _arg2:GeometricShape):Boolean{ var _local6:Boolean; var _local7:GeometricShape; var _local8:uint; var _local9:BodyContact; if (_arg1.body == _arg2.body){ return (false); }; if (!(_arg1.body.layers & _arg2.body.layers)){ return (false); }; if (((((_arg1.body.group) && (_arg2.body.group))) && ((_arg1.body.group == _arg2.body.group)))){ return (false); }; var _local3:RigidBody = ((_arg1.body.bodyID > _arg2.body.bodyID)) ? _arg1.body : _arg2.body; var _local4:Arbiter = _local3.getArbiter(_arg1.shapeID, _arg2.shapeID); var _local5 = !((_local4 == null)); if (_local5){ if (_local4.stamp == stamp){ return (true); }; if (_local4.sleeping){ return (true); }; } else { _local4 = (Arbiter.arbiterPool) ? Arbiter.arbiterPool : Arbiter.arbiterPool = new Arbiter(); }; narrowphaseCounter.counter++; if (_arg1.shapeType > _arg2.shapeType){ _local7 = _arg1; _arg1 = _arg2; _arg2 = _local7; }; if ((((_arg1.shapeType == GeometricShape.POLYGON_SHAPE)) && ((_arg2.shapeType == GeometricShape.POLYGON_SHAPE)))){ _local6 = collider.poly2poly(Polygon(_arg1), Polygon(_arg2), _local4); } else { if (_arg1.shapeType == GeometricShape.CIRCLE_SHAPE){ if (_arg2.shapeType == GeometricShape.POLYGON_SHAPE){ _local6 = collider.circle2poly(Circle(_arg1), Polygon(_arg2), _local4); } else { if (_arg2.shapeType == GeometricShape.CIRCLE_SHAPE){ _local6 = collider.circle2circle(Circle(_arg1), Circle(_arg2), _local4); } else { if (_arg2.shapeType == GeometricShape.SEGMENT_SHAPE){ _local6 = collider.circle2segment(Circle(_arg1), Segment(_arg2), _local4); }; }; }; } else { if ((((_arg1.shapeType == GeometricShape.SEGMENT_SHAPE)) && ((_arg2.shapeType == GeometricShape.POLYGON_SHAPE)))){ _local6 = collider.segment2poly(Segment(_arg1), Polygon(_arg2), _local4); }; }; }; if (_local6){ _local4.stamp = stamp; _local4.a = _arg1; _local4.b = _arg2; if (!_local5){ _local4.id1 = _arg1.shapeID; _local4.id2 = _arg2.shapeID; Arbiter.arbiterPool = Arbiter.arbiterPool.next; _local4.next = ((arbiters)==null) ? null : arbiters; arbiters = _local4; _arg1.body.addArbiter(_local4); _arg2.body.addArbiter(_local4); if (_arg1.body.isSleeping){ wakeBody(_arg1.body); }; if (_arg2.body.isSleeping){ wakeBody(_arg2.body); }; }; _local8 = ((_arg1.body.bodyID)<_arg2.body.bodyID) ? ((_arg1.body.bodyID << 16) | _arg2.body.bodyID) : ((_arg2.body.bodyID << 16) | _arg1.body.bodyID); _local9 = bodyContactDict[_local8]; if (_local9){ if (_local9.stamp < stamp){ _local9.contactCount = 0; _local9.stamp = stamp; }; _local9.contactCount++; } else { if (BodyContact.bodyContactPool){ _local9 = BodyContact.bodyContactPool; BodyContact.bodyContactPool = BodyContact.bodyContactPool.next; } else { _local9 = new BodyContact(); }; _local9.stamp = stamp; _local9.contactCount = 1; _local9.startContact = true; _local9.endContact = false; _local9.bodyA = _arg1.body; _local9.bodyB = _arg2.body; bodyContactDict[_local8] = _local9; _local9.prev = bodyContacts; _local9.next = bodyContacts.next; bodyContacts.next = _local9; _local9.next.prev = _local9; }; }; return (_local6); } public function addForce(_arg1:Force):void{ if (forces == null){ forces = _arg1; _arg1.next = (_arg1.prev = null); } else { _arg1.next = forces; _arg1.prev = null; forces.prev = _arg1; forces = _arg1; }; } public function addRigidBody(_arg1:RigidBody):void{ var _local2:GeometricShape; var _local3:RigidBody = (_arg1.isStatic) ? staticBodies : activeBodies; var _local4:GeometricShape = (_arg1.isStatic) ? staticShapes : activeShapes; if (_local3 == null){ _local3 = _arg1; _arg1.next = (_arg1.prev = null); } else { _arg1.next = _local3; _arg1.prev = null; _local3.prev = _arg1; _local3 = _arg1; }; for each (_local2 in _arg1.memberShapes) { if (_local4 == null){ _local4 = _local2; _local2.next = (_local2.prev = null); } else { _local2.next = _local4; _local4.prev = _local2; _local4 = _local2; }; _local2.Update(); }; if (_arg1.isStatic){ staticBodiesCount++; staticShapesCount = (staticShapesCount + _arg1.memberShapes.length); staticBodies = _local3; staticShapes = _local4; } else { activeBodiesCount++; activeShapesCount = (activeShapesCount + _arg1.memberShapes.length); activeBodies = _local3; activeShapes = _local4; }; _arg1.registerSpace(this); } public function addJoint(_arg1:Joint):void{ if (joints == null){ joints = _arg1; _arg1.next = (_arg1.prev = null); } else { _arg1.next = joints; _arg1.prev = null; joints.prev = _arg1; joints = _arg1; }; } public function castRay(_arg1:Ray):Boolean{ return (false); } public function sleepBodys():void{ var _local1:RigidBody; var _local2:ArbiterProxy; var _local3:int; var _local5:int; var _local7:int; var _local8:RigidBody; var _local9:uint; var _local10:int; var _local11:RigidBody; var _local12:RigidBody; var _local4:Array = new Array(); var _local6:Array = new Array(); _local1 = activeBodies; while (_local1 != null) { if (_local1.isSleeping){ } else { _local4[0] = _local1; _local5 = 1; _local7 = 0; _local9 = _local1.bodyID; while (_local5 > 0) { --_local5; _local8 = _local4[_local5]; if (!_local8.canSleep){ _local7 = 0; _local8.checked = _local9; break; }; if (_local8.checked > 0){ if (_local8.checked == _local9){ continue; }; _local7 = 0; _local8.checked = _local9; break; }; _local8.checked = _local9; var _temp1 = _local7; _local7 = (_local7 + 1); var _local13 = _temp1; _local6[_local13] = _local8; _local2 = _local8.arbiters.next; while (_local2.sentinel != true) { _local11 = ((_local2.arbiter.a.body)==_local8) ? _local2.arbiter.b.body : _local2.arbiter.a.body; if (_local11.isStatic){ } else { var _temp2 = _local5; _local5 = (_local5 + 1); var _local14 = _temp2; _local4[_local14] = _local11; }; _local2 = _local2.next; }; }; _local10 = 0; while (_local10 < _local7) { _local12 = _local6[_local10]; _local12.sleep(); _local10++; }; }; _local1 = _local1.next; }; } public function removeJoint(_arg1:Joint):void{ if (!_arg1.prev){ joints = _arg1.next; if (_arg1.next){ _arg1.next.prev = null; }; } else { _arg1.prev.next = _arg1.next; if (_arg1.next){ _arg1.next.prev = _arg1.prev; }; }; if (force.next){ _arg1.next.prev = _arg1.prev; }; } } }//package org.rje.glaze.engine.space
Section 218
//SpacialHashSpace (org.rje.glaze.engine.space.SpacialHashSpace) package org.rje.glaze.engine.space { import org.rje.glaze.engine.math.*; import org.rje.glaze.engine.collision.shapes.*; public class SpacialHashSpace extends Space { public const hashValue1:uint = 2185031351; public const hashValue2:uint = 4232417593; public var activeBuckets:Array; public var gridsize:Number; public var numBuckets:int; public var staticBuckets:Array; public function SpacialHashSpace(_arg1:int, _arg2:int, _arg3:AABB=null, _arg4:int=0x0101, _arg5:Number=50){ super(_arg1, _arg2, _arg3); broadphaseCounter.name = (broadphaseCounter.name + " Spacial Hash"); this.numBuckets = _arg4; this.gridsize = (1 / _arg5); activeBuckets = new Array(_arg4); staticBuckets = new Array(_arg4); var _local6:int; while (_local6 < _arg4) { activeBuckets[_local6] = new Array(); staticBuckets[_local6] = new Array(); _local6++; }; } public function hashShapes(_arg1:GeometricShape, _arg2:Array):void{ var _local4:uint; var _local5:uint; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local11:Array; var _local12:uint; var _local3:int; while (_local3 < numBuckets) { _arg2[_local3].length = 0; broadphaseCounter.counter++; _local3++; }; var _local10:GeometricShape = _arg1; while (_local10) { _local6 = int((_local10.aabb.l * gridsize)); _local7 = int((_local10.aabb.r * gridsize)); _local8 = int((_local10.aabb.b * gridsize)); _local9 = int((_local10.aabb.t * gridsize)); _local4 = _local6; while (_local4 <= _local7) { _local5 = _local9; while (_local5 <= _local8) { _local12 = ((_local4 * hashValue1) ^ (_local5 * hashValue2)); _local12 = (_local12 % numBuckets); _local11 = _arg2[int(_local12)]; _local11.push(_local10); broadphaseCounter.counter++; _local5++; }; _local4++; }; _local10 = _local10.next; }; } override public function sync():void{ hashShapes(staticShapes, staticBuckets); } override public function castRay(_arg1:Ray):Boolean{ var _local2:GeometricShape = activeShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { _arg1.testShape(_local2); _local2 = _local2.next; }; return (_arg1.intersectInRange); } override public function getShapeAtPoint(_arg1:Vector2D):GeometricShape{ var _local2:GeometricShape = activeShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; _local2 = staticShapes; while (_local2) { if (_local2.ContainsPoint(_arg1)){ return (_local2); }; _local2 = _local2.next; }; return (null); } override public function broadPhase():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; var _local5:GeometricShape; var _local6:GeometricShape; var _local7:GeometricShape; var _local8:Array; var _local9:int; var _local10:Array; var _local11:int; hashShapes(activeShapes, activeBuckets); _local4 = 0; while (_local4 < numBuckets) { _local8 = activeBuckets[_local4]; _local9 = _local8.length; _local10 = staticBuckets[_local4]; _local11 = _local10.length; _local1 = 0; while (_local1 < _local9) { _local5 = _local8[_local1]; _local2 = (_local1 + 1); while (_local2 < _local9) { _local6 = _local8[_local2]; broadphaseCounter.counter++; if (_local6.aabb.l <= _local5.aabb.r){ if (_local5.aabb.l <= _local6.aabb.r){ if (_local6.aabb.t <= _local5.aabb.b){ if (_local5.aabb.t <= _local6.aabb.b){ narrowPhase(_local5, _local6); }; }; }; }; _local2++; }; _local3 = 0; while (_local3 < _local11) { _local7 = _local10[_local3]; if (_local7.aabb.l <= _local5.aabb.r){ if (_local5.aabb.l <= _local7.aabb.r){ if (_local7.aabb.t <= _local5.aabb.b){ if (_local5.aabb.t <= _local7.aabb.b){ narrowPhase(_local5, _local7); }; }; }; }; _local3++; }; _local1++; }; _local4++; }; broadphaseCounter.endCycle(); } } }//package org.rje.glaze.engine.space
Section 219
//Counter (org.rje.glaze.util.Counter) package org.rje.glaze.util { public class Counter { public var mean:Number;// = 0 public var cycleCount:int; public var max:Number;// = 0 public var min:Number;// = 0 public var name:String; public var counter:int; public var totalcounter:int; public function Counter(_arg1:String){ this.name = _arg1; reset(); } public function endCycle():void{ cycleCount++; if (counter < min){ min = counter; }; if (counter > max){ max = counter; }; totalcounter = (totalcounter + counter); mean = ((0.5 * mean) + ((1 - 0.5) * counter)); counter = 0; } public function toString():String{ var _local1 = (((((((((name + ": min=") + min) + " max=") + max) + " mean=") + int(mean)) + " totalcycles=") + cycleCount) + "\n"); return (_local1); } public function reset():void{ counter = 0; totalcounter = 0; cycleCount = 0; min = Number.MAX_VALUE; max = Number.MIN_VALUE; mean = 0; } } }//package org.rje.glaze.util
Section 220
//AddClip_21 (preloader_lib_fla.AddClip_21) package preloader_lib_fla { import flash.display.*; public dynamic class AddClip_21 extends MovieClip { public var bg:MovieClip; } }//package preloader_lib_fla
Section 221
//adLogoPre_23 (preloader_lib_fla.adLogoPre_23) package preloader_lib_fla { import flash.display.*; public dynamic class adLogoPre_23 extends MovieClip { public var garbBtn:MovieClip; public var kongBtn:MovieClip; } }//package preloader_lib_fla
Section 222
//bar_3 (preloader_lib_fla.bar_3) package preloader_lib_fla { import flash.display.*; public dynamic class bar_3 extends MovieClip { public var bar:MovieClip; } }//package preloader_lib_fla
Section 223
//LangButton (ui.LangButton) package ui { import flash.events.*; import model.*; import flash.display.*; import flash.geom.*; import flash.text.*; import flash.filters.*; public class LangButton extends Sprite { public var content:MovieClip; private var _enabled:Boolean;// = true private var message:String; private var state:int;// = 0 private var textFormat:TextFormat; private var actionFunc:Function;// = null private var japMsg:MovieClip; private var pressed:Boolean;// = false private var textEnglishY:Number; public var hitSprite:Sprite; private var bby:Number; private var chinaMsg:MovieClip; private var bh:Number; public var textField:TextField; private var bw:Number; private var bx:Number; private var by:Number; private var overFilter:GlowFilter; private var polMsg:MovieClip; private var fontSize:int; public static const ACTION:String = "action"; public function LangButton(_arg1:MovieClip, _arg2:String){ hitSprite = new Sprite(); overFilter = new GlowFilter(16378068, 1); textFormat = new TextFormat(); super(); message = _arg2; _arg1.parent.addChild(this); content = _arg1; addChild(hitSprite); addChild(_arg1); textField = _arg1["msgtxt"]; var _local3:TextFormat = textField.defaultTextFormat; fontSize = int(_local3.size); japMsg = _arg1["japMsg"]; chinaMsg = _arg1["chinaMsg"]; polMsg = _arg1["polMsg"]; textField.visible = false; hitSprite.visible = false; japMsg.visible = false; chinaMsg.visible = false; polMsg.visible = false; trace(("contentHeight=" + content.height)); this.x = _arg1.x; this.y = _arg1.y; _arg1.x = 0; _arg1.y = 0; addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.ROLL_OVER, onMouseOver); addEventListener(MouseEvent.ROLL_OUT, onMouseOut); addEventListener(Event.ENTER_FRAME, onEnterFrame); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); addEventListener(Event.ADDED_TO_STAGE, initLang); bw = content.width; bh = content.height; bx = content.x; by = content.y; bby = textField.y; textEnglishY = (bby - 7); trace(content.height); } public function addActionListener(_arg1:Function):void{ addEventListener(MButton.ACTION, _arg1); } private function initLang(_arg1:Event):void{ stage.addEventListener(Messages.LANGUAGE_CHANGE, setLanguage); } private function onMouseClick(_arg1:MouseEvent=null):void{ if (!_enabled){ return; }; dispatchEvent(new Event(MButton.ACTION)); } private function onEnterFrame(_arg1:Event):void{ if (!stage){ return; }; if (!_enabled){ return; }; if (((!(hitTestPoint(stage.mouseX, stage.mouseY, true))) && (!((state == 0))))){ trace(content.height); content.filters = []; content.scaleX = 1; content.scaleY = 1; content.y = by; content.x = bx; }; } public function removeActionListener(_arg1:Function):void{ removeEventListener(MButton.ACTION, _arg1); } private function onMouseUp(_arg1:MouseEvent):void{ if (!_enabled){ return; }; if (hitTestPoint(stage.mouseX, stage.mouseY)){ content.filters = [overFilter]; content.scaleX = 1.05; content.scaleY = 1.05; content.y = (-0.1 * bh); state = 1; if (pressed){ onMouseClick(); }; } else { content.filters = []; content.scaleX = 1; content.scaleY = 1; content.y = by; content.x = bx; state = 0; }; pressed = false; } private function onMouseDown(_arg1:MouseEvent):void{ if (!_enabled){ return; }; content.filters = []; content.scaleX = 1; content.scaleY = 1; content.y = by; content.x = bx; pressed = true; state = 3; } private function setLanguage(_arg1:Event=null):void{ var _local2:Graphics; var _local3:Rectangle; chinaMsg.visible = false; japMsg.visible = false; polMsg.visible = false; textField.visible = false; hitSprite.visible = false; textFormat = new TextFormat(); if (((((!((Global.model.language == 1))) && (!((Global.model.language == 2))))) && (!((Global.model.language == 6))))){ switch (Global.model.language){ case 0: textFormat.font = Global.model.aniFont.fontName; textFormat.size = (fontSize - 1); textField.y = textEnglishY; break; case 7: textField.y = bby; textFormat.font = Global.model.hansFont.fontName; trace(Global.model.hansFont.fontName); textFormat.size = (fontSize + 2); break; case 9: textField.y = bby; textFormat.font = Global.model.hansFont.fontName; trace(Global.model.hansFont.fontName); textFormat.size = (fontSize + 2); break; default: textField.y = bby; textFormat.font = Global.model.comicFont.fontName; textFormat.size = fontSize; textFormat.italic = true; textFormat.bold = true; break; }; textFormat.align = TextFormatAlign.CENTER; textField.embedFonts = true; textField.autoSize = TextFieldAutoSize.NONE; textField.width = 400; textField.antiAliasType = AntiAliasType.ADVANCED; textField.defaultTextFormat = textFormat; textField.setTextFormat(textFormat); textField.text = Global.model.messages[message]; textField.width = (textField.textWidth + 40); textField.height = textField.textHeight; textField.x = (-(textField.width) / 2); trace(textField.width, textField.height, textField.textHeight); _local2 = hitSprite.graphics; _local2.clear(); _local2.beginFill(0, 0); _local2.drawRect(textField.x, textField.y, textField.width, textField.height); _local2.endFill(); textField.visible = true; hitSprite.visible = true; } else { _local2 = hitSprite.graphics; _local2.clear(); if (Global.model.language == 1){ chinaMsg.visible = true; _local3 = chinaMsg.getBounds(this); _local2 = hitSprite.graphics; trace(_local3); _local2.beginFill(0, 0); _local2.drawRect(_local3.x, _local3.y, _local3.width, _local3.height); _local2.endFill(); hitSprite.visible = true; }; if (Global.model.language == 2){ japMsg.visible = true; _local3 = japMsg.getBounds(this); _local2 = hitSprite.graphics; _local2.beginFill(0, 0); _local2.drawRect(_local3.x, _local3.y, _local3.width, _local3.height); _local2.endFill(); hitSprite.visible = true; }; if (Global.model.language == 6){ polMsg.visible = true; _local3 = polMsg.getBounds(this); _local2 = hitSprite.graphics; _local2.beginFill(0, 0); _local2.drawRect(_local3.x, _local3.y, _local3.width, _local3.height); _local2.endFill(); hitSprite.visible = true; }; }; } private function onMouseOut(_arg1:MouseEvent):void{ state = 0; if (!_enabled){ return; }; content.filters = []; content.scaleX = 1; content.scaleY = 1; content.y = by; content.x = bx; } private function onMouseOver(_arg1:MouseEvent):void{ if (!_enabled){ return; }; content.filters = [overFilter]; trace(("over=" + content.height)); content.scaleX = 1.05; content.scaleY = 1.05; trace(("over=" + content.height)); content.y = (-0.1 * bh); state = 1; } public function setEnabled(_arg1:Boolean, _arg2:Boolean=true):void{ _enabled = _arg1; if (_arg1){ if (_arg2){ content.alpha = 1; }; } else { if (_arg2){ content.alpha = 0.5; }; }; } } }//package ui
Section 224
//LevelMenu (ui.LevelMenu) package ui { import flash.events.*; import flash.display.*; import flash.geom.*; import util.*; import flash.net.*; import commands.*; public class LevelMenu extends Sprite { private var buttons:Array; private var bg:MovieClip; private var kongBtn:LangButton; private var butM:Array; private var garbBtn:MButton; private var filter2:ColorMatrix; private var password:Boolean; private var filter:ColorMatrix; public function LevelMenu(){ var _local2:MovieClip; var _local6:MovieClip; var _local7:MovieClip; var _local8:MovieClip; var _local12:String; var _local13:int; var _local14:MButton; var _local15:int; buttons = new Array(); butM = new Array(); filter = new ColorMatrix(); filter2 = new ColorMatrix(); super(); var _local1:Class = Lib.getItem("LevelMenu"); bg = new (_local1); addChild(bg); _local2 = bg["but1"]; kongBtn = new LangButton(bg["kongBtn"], "moreGamesSt"); kongBtn.addActionListener(onKongClick); garbBtn = new MButton(bg["garbBtn"]); addChild(garbBtn); garbBtn.x = garbBtn.content.x; garbBtn.y = garbBtn.content.y; garbBtn.content.x = 0; garbBtn.content.y = 0; garbBtn.addEventListener(MouseEvent.CLICK, onGarbClick); var _local3:Point = new Point(_local2["digits"]["pos1"].x, _local2["digits"]["pos1"].y); var _local4:Point = new Point(_local2["digits"]["pos2"].x, _local2["digits"]["pos2"].y); var _local5:Point = new Point(_local2["digits"]["pos3"].x, _local2["digits"]["pos3"].y); var _local9:Array = new Array(); var _local10:int; while (_local10 < bg.numChildren) { _local8 = (bg.getChildAt(_local10) as MovieClip); if (!_local8){ } else { if (_local8.name.substr(0, 3) != "but"){ } else { _local9.push(_local8); }; }; _local10++; }; _local10 = 0; while (_local10 < 50) { _local8 = _local9[_local10]; _local8["digits"].removeChild(_local8["digits"]["pos1"]); _local8["digits"].removeChild(_local8["digits"]["pos2"]); _local8["digits"].removeChild(_local8["digits"]["pos3"]); _local12 = _local8.name.substr(3); _local13 = _local12.length; if (_local13 > 1){ _local1 = Lib.getItem(("dig" + _local12.substr(1, 1))); _local6 = new (_local1); _local6.x = _local3.x; _local6.y = _local3.y; _local8["digits"].addChild(_local6); _local1 = Lib.getItem(("dig" + _local12.substr(0, 1))); _local7 = new (_local1); _local7.x = _local4.x; _local7.y = _local4.y; _local8["digits"].addChild(_local7); } else { _local1 = Lib.getItem(("dig" + _local12)); _local6 = new (_local1); _local6.x = _local5.x; _local6.y = _local5.y; _local8["digits"].addChild(_local6); }; _local8.parent.removeChild(_local8); _local14 = new MButton(_local8); _local15 = parseFloat(_local8.name.substr(3)); butM[("but" + _local15)] = _local14; _local14.x = _local8.x; _local14.y = _local8.y; _local14.name = _local12; bg.addChild(_local14); _local8.x = 0; _local8.y = 0; _local14.addActionListener(onPress); if (_local10 == 45){ Global.view.passwordWin.x = _local14.x; Global.view.passwordWin.y = _local14.y; }; _local10++; }; butM.sortOn("name"); var _local11:LangButton = new LangButton(bg["menuBtn"], "backSt"); _local11.addActionListener(onMenu); } private function onPress(_arg1:Event):void{ if ((((Number(_arg1.target.name) == 45)) && (password))){ Global.view.passwordWin.visible = true; Global.view.passwordWin.refresh(); return; }; if (Global.model.currentLevel){ new EndLevelCommand().execute(); }; Global.view.hideLevelMenu(); new StartLevelCommand(Number(_arg1.target.name)).execute(); } private function onMenu(_arg1:Event):void{ new ShowMainMenuCommans().execute(); } private function onKongClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Global.model.kongUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/LevelMenu_kongregate")); } private function onGarbClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Global.model.garnuzGamesUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/LevelMenu_garbuzgames")); } public function refresh():void{ var _local1 = 1; while (_local1 <= 50) { if (Global.model.userData.levelsPass[(_local1 - 1)]){ butM[("but" + _local1)].setEnabled(true); butM[("but" + _local1)].content["digits"].alpha = 1; butM[("but" + _local1)].content["digits"].filters = []; butM[("but" + _local1)].content["digits"].transform.colorTransform = new ColorTransform(0.2, 0.1, 0, 1, 152, 102, 0, 0); } else { butM[("but" + _local1)].content["digits"].transform.colorTransform = new ColorTransform(1, 1, 1, 1, 0, 0, 0, 0); butM[("but" + _local1)].setEnabled(false); }; if (_local1 == 45){ if (Global.model.userData.lastLevel < 45){ butM[("but" + _local1)].setEnabled(true); butM[("but" + _local1)].content["digits"].filters = []; butM[("but" + _local1)].content["digits"].transform.colorTransform = new ColorTransform(0.2, 0.1, 0, 1, 152, 102, 0, 0); password = true; } else { password = false; }; }; if (((!(LinksManager.isKongregate)) && ((_local1 >= 45)))){ butM[("but" + _local1)].visible = false; }; _local1++; }; } } }//package ui
Section 225
//MButton (ui.MButton) package ui { import flash.events.*; import flash.display.*; import flash.text.*; public class MButton extends Sprite { public var content:MovieClip; private var size:int;// = 20 private var _enabled:Boolean;// = true private var visible_Icon:Sprite; public var hint:String; private var unIcon:Sprite; private var state:int;// = 0 public var textFormat:TextFormat; private var actionFunc:Function;// = null private var pressed:Boolean;// = false private var disIcon:Sprite; private var overIcon:Sprite; private var hitSprite:Sprite; public var textF:TextField; private var downIcon:Sprite; public static const ACTION:String = "action"; public function MButton(_arg1:MovieClip, _arg2:String=""){ hitSprite = new Sprite(); super(); content = _arg1; addChild(content); content.gotoAndStop(1); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.ROLL_OVER, onMouseOver); addEventListener(MouseEvent.ROLL_OUT, onMouseOut); addEventListener(Event.ENTER_FRAME, onEnterFrame); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); if (_arg2){ textF = new TextField(); textF.selectable = false; textFormat = new TextFormat(null, 20, 73880, "true"); textF.autoSize = TextFieldAutoSize.LEFT; textF.antiAliasType = AntiAliasType.ADVANCED; textF.defaultTextFormat = textFormat; addChild(textF); textF.text = _arg2; textF.x = ((content.width - textF.width) / 2); textF.y = ((content.height - textF.height) / 2); }; } private function onEnterFrame(_arg1:Event):void{ if (!stage){ return; }; if (!_enabled){ return; }; if (((!(hitTestPoint(stage.mouseX, stage.mouseY, true))) && (!((state == 0))))){ content.gotoAndStop(1); }; } private function onMouseDown(_arg1:MouseEvent):void{ if (!_enabled){ return; }; content.gotoAndStop(3); pressed = true; state = 3; } private function onMouseUp(_arg1:MouseEvent):void{ if (!_enabled){ return; }; if (hitTestPoint(stage.mouseX, stage.mouseY)){ content.gotoAndStop(2); state = 1; if (pressed){ onMouseClick(); }; } else { state = 0; content.gotoAndStop(1); }; pressed = false; } public function addActionListener(_arg1:Function):void{ addEventListener(MButton.ACTION, _arg1); } private function onMouseOut(_arg1:MouseEvent):void{ if (!_enabled){ return; }; content.gotoAndStop(1); state = 0; } public function removeActionListener(_arg1:Function):void{ removeEventListener(MButton.ACTION, _arg1); } private function onMouseClick(_arg1:MouseEvent=null):void{ if (!_enabled){ return; }; dispatchEvent(new Event(MButton.ACTION)); } private function onMouseOver(_arg1:MouseEvent):void{ if (!_enabled){ return; }; state = 1; content.gotoAndStop(2); } public function setEnabled(_arg1:Boolean):void{ _enabled = _arg1; if (_arg1){ content.gotoAndStop(1); } else { content.gotoAndStop(4); }; } } }//package ui
Section 226
//MToggleButton (ui.MToggleButton) package ui { import flash.events.*; import flash.display.*; public class MToggleButton extends Sprite { private var content:MovieClip; private var size:Number;// = 20 private var _enabled:Boolean;// = true private var visible_Icon:Sprite; private var downIcon:Sprite; private var actionFunc:Function;// = null private var pressed:Boolean;// = false private var disIcon:Sprite; private var overIcon:Sprite; private var hitSprite:Sprite; private var unIcon:Sprite; private var _selected:Boolean;// = false public static const ACTION:String = "action"; public function MToggleButton(_arg1:MovieClip){ hitSprite = new Sprite(); super(); content = _arg1; addChild(content); content.gotoAndStop(1); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); addEventListener(MouseEvent.ROLL_OVER, onMouseOver); addEventListener(MouseEvent.ROLL_OUT, onMouseOut); addEventListener(MouseEvent.MOUSE_UP, onMouseUp); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(_arg1:Event):void{ if (!hitTestPoint(stage.mouseX, stage.mouseY, true)){ content.gotoAndStop((_selected) ? 4 : 1); }; } private function onMouseDown(_arg1:MouseEvent):void{ content.gotoAndStop((_selected) ? 2 : 4); pressed = true; } private function onMouseUp(_arg1:MouseEvent):void{ if (hitTestPoint(stage.mouseX, stage.mouseY)){ if (pressed){ onMouseClick(); }; } else { content.gotoAndStop(1); }; pressed = false; } private function onMouseOver(_arg1:MouseEvent):void{ if (_selected){ return; }; content.gotoAndStop(2); } public function get selected():Boolean{ return (_selected); } public function addActionListener(_arg1:Function):void{ addEventListener(_slot1.ACTION, _arg1); } private function onMouseOut(_arg1:MouseEvent):void{ content.gotoAndStop((_selected) ? 4 : 1); } private function onMouseClick(_arg1:MouseEvent=null):void{ _selected = !(_selected); content.gotoAndStop((_selected) ? 4 : 2); dispatchEvent(new Event(_slot1.ACTION)); } public function removeActionListener(_arg1:Function):void{ removeEventListener(_slot1.ACTION, _arg1); } public function set selected(_arg1:Boolean):void{ _selected = _arg1; content.gotoAndStop(4); } public function setEnabled(_arg1:Boolean):void{ _enabled = _arg1; } } }//package ui
Section 227
//ResultsWindow (ui.ResultsWindow) package ui { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.text.*; import gs.*; import flash.utils.*; import flash.net.*; import flash.ui.*; import commands.*; import flash.filters.*; import gs.easing.*; public class ResultsWindow extends Sprite { private var pointsWin:MovieClip; private var resBg:MovieClip; private var timeWinPos:Point; private var resBgPos:Point; private var kongBtn2:LangButton; public var adClip:MovieClip; private var currentAnim:MovieClip; private var readyForNext:Boolean;// = false private var pressMsgPos:Point; private var pressMsg:LangButton; private var anim1:MovieClip; private var anim2:MovieClip; private var anim3:MovieClip; private var anim4:MovieClip; private var anim5:MovieClip; private var bg:MovieClip; private var anim7:MovieClip; private var anim8:MovieClip; private var num2Pos:Point; private var anim6:MovieClip; private var anim9:MovieClip; private var kongBtn2Pos:Point; private var adClipPos:Point; private var levelMsg:LangButton; private var num1:MovieClip; private var num2:MovieClip; private var timeMsg:LangButton; public var preloader:MovieClip; private var content:MovieClip; private var levelWinPos:Point; private var anims:Array; private var bmp:Bitmap; private var playBtn:LangButton; public var adClipInter:MovieClip; private var menuBPos:Point; private var pointsWinPos:Point; private var pointsNum:Number; private var playBtnPos:Point; private var pointsMsg:LangButton; private var showAnimTimeOut:int; private var levelWin:MovieClip; private var menuB:LangButton; private var lastAnim:int;// = 0 private var time:TextField; private var bmpData:BitmapData; private var kongBtnPos:Point; private var tmpPoints:Number; private var timeWin:MovieClip; private var points:TextField; private var digits:MovieClip; private var num1Pos:Point; private var anim10:MovieClip; private var anim11:MovieClip; private var kongBtn:MovieClip; public function ResultsWindow(){ var _local2:MovieClip; adClipInter = new MovieClip(); super(); var _local1:Class = Lib.getItem("resultsWindow"); content = (new (_local1) as MovieClip); addChild(content); bg = content["background"]; resBg = content["resBg"]; levelWin = content["levelWin"]; timeWin = content["timeWin"]; pointsWin = content["pointsWin"]; digits = levelWin["digits"]; timeMsg = new LangButton(timeWin["msg"], "timeSt"); timeMsg.setEnabled(false, false); pointsMsg = new LangButton(pointsWin["msg"], "pointsSt"); pointsMsg.setEnabled(false, false); levelMsg = new LangButton(levelWin["msg"], "levelSt"); levelMsg.setEnabled(false, false); pressMsg = new LangButton(content["pressMsg"], "pressSpaceButtonSt"); pressMsg.setEnabled(false, false); playBtn = new LangButton(content["playBtn"], "nextLevelSt"); playBtn.addActionListener(onPlay); time = timeWin["timeTxt"]; points = pointsWin["pointsTxt"]; kongBtn = content["kongBtn"]; kongBtn.addEventListener(MouseEvent.CLICK, onKongBtnClick); kongBtn2 = new LangButton(content["kongBtn2"], "playWithBonusLevelsSt"); adClip = content["adClip"]; if (LinksManager.isKongregate){ kongBtn2.visible = false; adClip.visible = false; kongBtn.visible = true; kongBtn.alpha = 1; } else { kongBtn.visible = false; }; num1Pos = new Point(digits["pos1"].x, digits["pos1"].y); num2Pos = new Point(digits["pos2"].x, digits["pos2"].y); digits.removeChild(digits["pos1"]); digits.removeChild(digits["pos2"]); menuB = new LangButton(content["menuBtn"], "menuSt"); menuB.addActionListener(onMenu); Global.view.keyDownEvent.addListener(onKeyDown); levelWinPos = new Point(levelWin.x, levelWin.y); pointsWinPos = new Point(pointsWin.x, pointsWin.y); timeWinPos = new Point(timeWin.x, timeWin.y); kongBtnPos = new Point(kongBtn.x, kongBtn.y); kongBtn2Pos = new Point(kongBtn2.x, kongBtn2.y); adClipPos = new Point(adClip.x, adClip.y); pressMsgPos = new Point(pressMsg.x, pressMsg.y); resBgPos = new Point(resBg.x, resBg.y); playBtnPos = new Point(playBtn.x, playBtn.y); menuBPos = new Point(menuB.x, menuB.y); anim1 = adClip["anim1"]; anim2 = adClip["anim2"]; anim3 = adClip["anim3"]; anim4 = adClip["anim4"]; anim5 = adClip["anim5"]; anim6 = adClip["anim6"]; anim7 = adClip["anim7"]; anim8 = adClip["anim8"]; anim9 = adClip["anim9"]; anim10 = adClip["anim10"]; anim11 = adClip["anim11"]; anim11.buttonMode = true; anim11.addEventListener(MouseEvent.CLICK, onChobotsClick); preloader = adClip["preloader"]; anims = [anim1, anim2, anim3, anim4, anim5, anim6, anim7, anim8, anim9, anim10, anim11, anim11]; for each (_local2 in anims) { _local2.stop(); _local2.visible = false; }; preloader.stop(); preloader.visible = false; adClip.addEventListener(MouseEvent.CLICK, onAdClick); kongBtn2.addActionListener(onKongBtn2); } private function onPreloaderEnd():void{ preloader.visible = false; currentAnim.visible = true; currentAnim.play(); setReady(); } public function init():void{ readyForNext = false; preloader.visible = true; preloader.play(); bmpData = new BitmapData(Global.width, Global.height, false); if (Global.view.currentLevel){ bmpData.draw(Global.view.currentLevel); }; if (bmp){ bg.removeChild(bmp); }; bmp = new Bitmap(bmpData, "auto", true); var _local1:BlurFilter = new BlurFilter(10, 10); bmp.filters = [_local1]; bg.addChild(bmp); var _local2:Number = Math.floor((Global.model.timer.currentTime / 1000)); var _local3:Number = Math.floor((_local2 / 60)); var _local4:Number = (_local2 - (_local3 * 60)); var _local5:String = ((_local4)>=10) ? _local4 : ("0" + _local4).toString(); var _local6:String = ((_local3)>=10) ? _local3 : ("0" + _local3).toString(); time.text = ((_local6 + " : ") + _local5); points.text = ""; pointsNum = Global.model.userData.points; tmpPoints = 0; setNum(Global.model.currentLevelNum); } private function onKongBtn2(_arg1:Event):void{ navigateToURL(new URLRequest(Global.model.kongBubbleUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/Result_kongregate_moreLevels")); } public function set pointsTxt(_arg1:Number):void{ tmpPoints = _arg1; points.text = Math.floor(_arg1).toString(); } private function hide():void{ visible = false; if (currentAnim){ currentAnim.gotoAndStop(1); currentAnim.visible = false; }; preloader.stop(); if (showAnimTimeOut){ clearTimeout(showAnimTimeOut); showAnimTimeOut = 0; }; LinksManager.hideAdClip(); } private function onAdClick(_arg1:MouseEvent):void{ if (LinksManager.isAdShow){ LinksManager.saveClickStat("AD_inter", LinksManager.adType); }; } private function onKongBtnClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Global.model.kongUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/Result_kongregate")); } public function setReady():void{ readyForNext = true; TweenLite.to(menuB, 0.5, {x:menuBPos.x, y:menuBPos.y, ease:Back.easeOut}); TweenLite.to(pressMsg, 0.5, {x:pressMsgPos.x, y:pressMsgPos.y, ease:Back.easeOut}); TweenLite.to(playBtn, 0.5, {x:playBtnPos.x, y:playBtnPos.y, ease:Back.easeOut}); } private function onChobotsClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Global.model.chobotsUrl)); LinksManager.saveClickStat("ChobotsClick"); } private function checkReady():void{ if (LinksManager.adFinished){ setReady(); }; } public function get pointsTxt():Number{ return (tmpPoints); } public function showAnim():void{ trace("show anim"); LinksManager.adwasShoven = false; var _local1:int = int((Math.random() * anims.length)); while (_local1 == lastAnim) { _local1 = int((Math.random() * 10)); }; currentAnim = anims[_local1]; lastAnim = _local1; showAnimTimeOut = setTimeout(onPreloaderEnd, (2000 + int((Math.random() * 1000)))); } private function onKeyDown(_arg1:KeyboardEvent):void{ if (!readyForNext){ return; }; if (((this.visible) && ((((_arg1.keyCode == Keyboard.ENTER)) || ((_arg1.keyCode == Keyboard.SPACE)))))){ if ((((Global.model.currentLevelNum == 44)) && (!(LinksManager.isKongregate)))){ Global.view.bonusWin.visible = true; return; }; Global.model.nextLevel(); this.visible = false; hide(); }; } public function setNum(_arg1:int):void{ var _local2:Class; if (num1){ if (num1.parent){ digits.removeChild(num1); }; }; if (num2){ if (num2.parent){ digits.removeChild(num2); }; }; var _local3:String = _arg1.toString(); if (_local3.length > 1){ _local2 = Lib.getItem(("dig" + _local3.substr(1, 1))); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; digits.addChild(num1); _local2 = Lib.getItem(("dig" + _local3.substr(0, 1))); num2 = new (_local2); num2.x = num2Pos.x; num2.y = num2Pos.y; digits.addChild(num2); } else { _local2 = Lib.getItem(("dig" + _local3)); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; digits.addChild(num1); }; } private function onPlay(_arg1:Event):void{ if ((((Global.model.currentLevelNum == 44)) && (!(LinksManager.isKongregate)))){ Global.view.bonusWin.visible = true; return; }; Global.model.nextLevel(); hide(); } private function onShowComplete():void{ TweenLite.to(resBg, 1.5, {x:resBgPos.x, y:resBgPos.y, ease:Back.easeOut}); TweenLite.to(adClip, 1.5, {delay:0.2, x:adClipPos.x, y:adClipPos.y, ease:Back.easeOut}); TweenLite.to(levelWin, 1.5, {delay:0.4, x:levelWinPos.x, y:levelWinPos.y, ease:Back.easeOut}); TweenLite.to(kongBtn2, 2, {delay:0.7, x:kongBtn2Pos.x, y:kongBtn2Pos.y, ease:Back.easeOut}); TweenLite.to(kongBtn, 2, {delay:0.1, x:kongBtnPos.x, y:kongBtnPos.y, ease:Back.easeOut}); TweenLite.to(timeWin, 2, {delay:1, x:timeWinPos.x, y:timeWinPos.y, ease:Back.easeOut}); TweenLite.to(pointsWin, 2, {delay:1.5, x:pointsWinPos.x, y:pointsWinPos.y, ease:Back.easeOut, onComplete:onPointsComplete}); } private function onMenu(_arg1:Event):void{ hide(); new ShowLevelMenuCommand().execute(); TweenLite.to(this, 0.5, {y:-450, onComplete:hide}); } private function onPointsComplete():void{ TweenLite.to(this, 1.5, {pointsTxt:pointsNum, onComplete:checkReady}); } public function show():void{ TweenLite.to(this, 0.5, {y:0, onComplete:onShowComplete}); levelWin.y = -600; pointsWin.y = -200; timeWin.y = -600; kongBtn.y = -600; kongBtn2.y = -600; adClip.y = -600; pressMsg.x = -100; resBg.y = -600; playBtn.x = -100; menuB.x = -100; } } }//package ui
Section 228
//ColorMatrix (util.ColorMatrix) package util { public dynamic class ColorMatrix extends Array { private static const IDENTITY_MATRIX:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; private static const LENGTH:Number = IDENTITY_MATRIX.length; private static const DELTA_INDEX:Array = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10]; public function ColorMatrix(_arg1:Array=null){ _arg1 = fixMatrix(_arg1); copyMatrix(((_arg1.length)==LENGTH) ? _arg1 : IDENTITY_MATRIX); } public function adjustBrightness(_arg1:Number):void{ _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; multiplyMatrix([1, 0, 0, 0, _arg1, 0, 1, 0, 0, _arg1, 0, 0, 1, 0, _arg1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function adjustSaturation(_arg1:Number):void{ _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; var _local2:Number = (1 + ((_arg1)>0) ? ((3 * _arg1) / 100) : (_arg1 / 100)); var _local3:Number = 0.3086; var _local4:Number = 0.6094; var _local5:Number = 0.082; multiplyMatrix([((_local3 * (1 - _local2)) + _local2), (_local4 * (1 - _local2)), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), ((_local4 * (1 - _local2)) + _local2), (_local5 * (1 - _local2)), 0, 0, (_local3 * (1 - _local2)), (_local4 * (1 - _local2)), ((_local5 * (1 - _local2)) + _local2), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } protected function multiplyMatrix(_arg1:Array):void{ var _local4:uint; var _local5:Number; var _local6:Number; var _local2:Array = []; var _local3:uint; while (_local3 < 5) { _local4 = 0; while (_local4 < 5) { _local2[_local4] = this[(_local4 + (_local3 * 5))]; _local4++; }; _local4 = 0; while (_local4 < 5) { _local5 = 0; _local6 = 0; while (_local6 < 5) { _local5 = (_local5 + (_arg1[(_local4 + (_local6 * 5))] * _local2[_local6])); _local6++; }; this[(_local4 + (_local3 * 5))] = _local5; _local4++; }; _local3++; }; } protected function cleanValue(_arg1:Number, _arg2:Number):Number{ return (Math.min(_arg2, Math.max(-(_arg2), _arg1))); } public function adjustHue(_arg1:Number):void{ _arg1 = ((cleanValue(_arg1, 180) / 180) * Math.PI); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; var _local2:Number = Math.cos(_arg1); var _local3:Number = Math.sin(_arg1); var _local4:Number = 0.213; var _local5:Number = 0.715; var _local6:Number = 0.072; multiplyMatrix([((_local4 + (_local2 * (1 - _local4))) + (_local3 * -(_local4))), ((_local5 + (_local2 * -(_local5))) + (_local3 * -(_local5))), ((_local6 + (_local2 * -(_local6))) + (_local3 * (1 - _local6))), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * 0.143)), ((_local5 + (_local2 * (1 - _local5))) + (_local3 * 0.14)), ((_local6 + (_local2 * -(_local6))) + (_local3 * -0.283)), 0, 0, ((_local4 + (_local2 * -(_local4))) + (_local3 * -((1 - _local4)))), ((_local5 + (_local2 * -(_local5))) + (_local3 * _local5)), ((_local6 + (_local2 * (1 - _local6))) + (_local3 * _local6)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function toString():String{ return ((("ColorMatrix [ " + this.join(" , ")) + " ]")); } protected function fixMatrix(_arg1:Array=null):Array{ if (_arg1 == null){ return (IDENTITY_MATRIX); }; if ((_arg1 is ColorMatrix)){ _arg1 = _arg1.slice(0); }; if (_arg1.length < LENGTH){ _arg1 = _arg1.slice(0, _arg1.length).concat(IDENTITY_MATRIX.slice(_arg1.length, LENGTH)); } else { if (_arg1.length > LENGTH){ _arg1 = _arg1.slice(0, LENGTH); }; }; return (_arg1); } public function reset():void{ var _local1:uint; while (_local1 < LENGTH) { this[_local1] = IDENTITY_MATRIX[_local1]; _local1++; }; } public function adjustContrast(_arg1:Number):void{ var _local2:Number; _arg1 = cleanValue(_arg1, 100); if ((((_arg1 == 0)) || (isNaN(_arg1)))){ return; }; if (_arg1 < 0){ _local2 = (127 + ((_arg1 / 100) * 127)); } else { _local2 = (_arg1 % 1); if (_local2 == 0){ _local2 = DELTA_INDEX[_arg1]; } else { _local2 = ((DELTA_INDEX[(_arg1 << 0)] * (1 - _local2)) + (DELTA_INDEX[((_arg1 << 0) + 1)] * _local2)); }; _local2 = ((_local2 * 127) + 127); }; multiplyMatrix([(_local2 / 127), 0, 0, 0, (0.5 * (127 - _local2)), 0, (_local2 / 127), 0, 0, (0.5 * (127 - _local2)), 0, 0, (_local2 / 127), 0, (0.5 * (127 - _local2)), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]); } public function adjustColor(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ adjustHue(_arg4); adjustContrast(_arg2); adjustBrightness(_arg1); adjustSaturation(_arg3); } protected function copyMatrix(_arg1:Array):void{ var _local2:Number = LENGTH; var _local3:uint; while (_local3 < _local2) { this[_local3] = _arg1[_local3]; _local3++; }; } public function concat(_arg1:Array):void{ _arg1 = fixMatrix(_arg1); if (_arg1.length != LENGTH){ return; }; multiplyMatrix(_arg1); } public function clone():ColorMatrix{ return (new ColorMatrix(this)); } public function toArray():Array{ return (slice(0, 20)); } } }//package util
Section 229
//HashMap (util.HashMap) package util { import flash.utils.*; public class HashMap { private var length:int; private var content:Dictionary; public function HashMap(){ length = 0; content = new Dictionary(); } public function containsKey(_arg1):Boolean{ if (content[_arg1] != undefined){ return (true); }; return (false); } public function size():int{ return (length); } public function values():Array{ var _local3:*; var _local1:Array = new Array(length); var _local2:int; for each (_local3 in content) { _local1[_local2] = _local3; _local2++; }; return (_local1); } public function isEmpty():Boolean{ return ((length == 0)); } public function remove(_arg1){ var _local2:Boolean = containsKey(_arg1); if (!_local2){ return (null); }; var _local3:* = content[_arg1]; delete content[_arg1]; length--; return (_local3); } public function containsValue(_arg1):Boolean{ var _local2:*; for each (_local2 in content) { if (_local2 === _arg1){ return (true); }; }; return (false); } public function clear():void{ length = 0; content = new Dictionary(); } public function toString():String{ var _local1:Array = keys(); var _local2:Array = values(); var _local3 = "HashMap Content:\n"; var _local4:int; while (_local4 < _local1.length) { _local3 = (_local3 + (((_local1[_local4] + " -> ") + _local2[_local4]) + "\n")); _local4++; }; return (_local3); } public function put(_arg1, _arg2){ var _local3:Boolean; var _local4:*; if (_arg1 == null){ throw (new ArgumentError("cannot put a value with undefined or null key!")); }; if (_arg2 == null){ return (remove(_arg1)); }; _local3 = containsKey(_arg1); if (!_local3){ length++; }; _local4 = this.get(_arg1); content[_arg1] = _arg2; return (_local4); } public function eachValue(_arg1:Function):void{ var _local2:*; for each (_local2 in content) { _arg1(_local2); }; } public function keys():Array{ var _local3:*; var _local1:Array = new Array(length); var _local2:int; for (_local3 in content) { _local1[_local2] = _local3; _local2++; }; return (_local1); } public function get(_arg1){ var _local2:* = content[_arg1]; if (_local2 !== undefined){ return (_local2); }; return (null); } public function getValue(_arg1){ return (get(_arg1)); } public function clone():HashMap{ var _local2:*; var _local1:HashMap = new HashMap(); for (_local2 in content) { _local1.put(_local2, content[_local2]); }; return (_local1); } public function eachKey(_arg1:Function):void{ var _local2:*; for (_local2 in content) { _arg1(_local2); }; } } }//package util
Section 230
//List (util.List) package util { public interface List { function size():int; function shift(); function isEmpty():Boolean; function remove(_arg1); function replaceAt(_arg1:int, _arg2); function indexOf(_arg1):int; function clear():void; function appendAll(_arg1:Array, _arg2:int=-1):void; function first(); function pop(); function get(_arg1:int); function removeAt(_arg1:int); function appendList(_arg1:List, _arg2:int=-1):void; function removeRange(_arg1:int, _arg2:int):Array; function append(_arg1, _arg2:int=-1):void; function last(); function toArray():Array; function contains(_arg1):Boolean; } }//package util
Section 231
//VectorV (util.VectorV) package util { public class VectorV implements List { protected var _elements:Array; public static const CASEINSENSITIVE:int = 1; public static const NUMERIC:int = 16; public static const RETURNINDEXEDARRAY:int = 8; public static const DESCENDING:int = 2; public static const UNIQUESORT:int = 4; public function VectorV(){ _elements = new Array(); } public function sort(_arg1:Object, _arg2:int):Array{ return (_elements.sort(_arg1, _arg2)); } public function each(_arg1:Function):void{ var _local2:int; while (_local2 < _elements.length) { _arg1(_elements[_local2]); _local2++; }; } public function shift(){ if (size() > 0){ return (_elements.shift()); }; return (undefined); } public function remove(_arg1){ var _local2:int = indexOf(_arg1); if (_local2 >= 0){ return (removeAt(_local2)); }; return (null); } public function indexOf(_arg1):int{ var _local2:int; while (_local2 < _elements.length) { if (_elements[_local2] === _arg1){ return (_local2); }; _local2++; }; return (-1); } public function isEmpty():Boolean{ if (_elements.length > 0){ return (false); }; return (true); } public function setElementAt(_arg1:int, _arg2):void{ replaceAt(_arg1, _arg2); } public function eachWithout(_arg1:Object, _arg2:Function):void{ var _local3:int; while (_local3 < _elements.length) { if (_elements[_local3] != _arg1){ _arg2(_elements[_local3]); }; _local3++; }; } public function elementAt(_arg1:int){ return (get(_arg1)); } public function pop(){ if (size() > 0){ return (_elements.pop()); }; return (null); } public function lastIndexOf(_arg1):int{ var _local2:int = (_elements.length - 1); while (_local2 >= 0) { if (_elements[_local2] === _arg1){ return (_local2); }; _local2--; }; return (-1); } public function clear():void{ if (!isEmpty()){ _elements.splice(0); _elements = new Array(); }; } public function removeAt(_arg1:int){ var _local2:Object; if ((((_arg1 < 0)) || ((_arg1 >= size())))){ return (null); }; _local2 = _elements[_arg1]; _elements.splice(_arg1, 1); return (_local2); } public function appendList(_arg1:List, _arg2:int=-1):void{ appendAll(_arg1.toArray(), _arg2); } public function append(_arg1, _arg2:int=-1):void{ if (_arg2 == -1){ _elements.push(_arg1); } else { _elements.splice(_arg2, 0, _arg1); }; } public function replaceAt(_arg1:int, _arg2){ var _local3:Object; if ((((_arg1 < 0)) || ((_arg1 >= size())))){ return (null); }; _local3 = _elements[_arg1]; _elements[_arg1] = _arg2; return (_local3); } public function removeRange(_arg1:int, _arg2:int):Array{ _arg1 = Math.max(0, _arg1); _arg2 = Math.min(_arg2, (_elements.length - 1)); if (_arg1 > _arg2){ return ([]); }; return (_elements.splice(_arg1, ((_arg2 - _arg1) + 1))); } public function size():int{ return (_elements.length); } public function get(_arg1:int){ return (_elements[_arg1]); } public function contains(_arg1):Boolean{ return ((indexOf(_arg1) >= 0)); } public function toArray():Array{ return (_elements.concat()); } public function appendAll(_arg1:Array, _arg2:int=-1):void{ var _local3:Array; if ((((_arg1 == null)) || ((_arg1.length <= 0)))){ return; }; if ((((_arg2 == -1)) || ((_arg2 == _elements.length)))){ _elements = _elements.concat(_arg1); } else { if (_arg2 == 0){ _elements = _arg1.concat(_elements); } else { _local3 = _elements.splice(_arg2); _elements = _elements.concat(_arg1); _elements = _elements.concat(_local3); }; }; } public function sortOn(_arg1:Object, _arg2:int):Array{ return (_elements.sortOn(_arg1, _arg2)); } public function clone():VectorV{ var _local1:VectorV = new VectorV(); var _local2:int; while (_local2 < _elements.length) { _local1.append(_elements[_local2]); _local2++; }; return (_local1); } public function last(){ return (_elements[(_elements.length - 1)]); } public function subArray(_arg1:int, _arg2:int):Array{ return (_elements.slice(_arg1, Math.min((_arg1 + _arg2), size()))); } public function toString():String{ return (("Vector : " + _elements.toString())); } public function getSize():int{ return (size()); } public function first(){ return (_elements[0]); } } }//package util
Section 232
//CreditsWin (view.CreditsWin) package view { import flash.events.*; import flash.display.*; import gs.*; import flash.net.*; import ui.*; import commands.*; public class CreditsWin extends Sprite { private var bg:MovieClip; private var mc:MovieClip; public function CreditsWin(){ var _local1:Class = Lib.getItem("creditsWin"); bg = new (_local1); addChild(bg); var _local2:LangButton = new LangButton(bg["menuBtn"], "backSt"); mc = bg["mc"]; mc.stop(); _local2.addActionListener(onMenu); var _local3:MButton = new MButton(bg["garbBtn"]); _local3.x = _local3.content.x; _local3.y = _local3.content.y; _local3.content.x = 0; _local3.content.y = 0; bg.addChild(_local3); _local3.addActionListener(onGarbBtn); } private function playMc():void{ mc.gotoAndPlay(2); } private function start():void{ visible = false; } public function hide():void{ TweenLite.to(this, 0.5, {y:-460, onComplete:start}); } private function onGarbBtn(_arg1:Event):void{ navigateToURL(new URLRequest("http://garbuz-studio.com")); } public function show():void{ visible = true; y = -450; TweenLite.to(this, 0.5, {y:0, onComplete:playMc}); } private function onMenu(_arg1:Event):void{ mc.gotoAndStop(2); new ShowMainMenuCommans().execute(); hide(); } } }//package view
Section 233
//FinishIntro (view.FinishIntro) package view { import flash.events.*; import flash.display.*; import gs.*; import commands.*; public class FinishIntro extends Sprite { private var bg:MovieClip; private var intro:Array; private var currentMc:MovieClip; public function FinishIntro(){ var _local2:MovieClip; super(); var _local1:Class = Lib.getItem("finishIntro"); bg = new (_local1); intro = [bg["mc0"], bg["mc1"], bg["mc2"], bg["mc3"], bg["mc4"], bg["mc5"], bg["mc6"], bg["mc7"], bg["mc8"], bg["mc9"]]; for each (_local2 in intro) { _local2.stop(); _local2.visible = false; }; addChild(bg); } public function start():void{ currentMc = intro[Global.model.language]; currentMc.play(); currentMc.visible = true; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function hide():void{ if (currentMc){ currentMc.gotoAndStop(1); currentMc.visible = false; }; removeEventListener(Event.ENTER_FRAME, onEnterFrame); TweenLite.to(this, 0.5, {y:-450, onComplete:visibleH}); new ShowCreditsCommand().execute(); } private function onSkip(_arg1:Event):void{ hide(); } private function onEnterFrame(_arg1:Event):void{ if (currentMc.currentFrame == currentMc.totalFrames){ hide(); }; } private function visibleH():void{ if (currentMc){ currentMc.gotoAndStop(1); currentMc.visible = false; }; this.visible = false; } public function show():void{ visible = true; y = -450; TweenLite.to(this, 0.5, {y:0, onComplete:start}); } } }//package view
Section 234
//GarbuzIntro (view.GarbuzIntro) package view { import flash.events.*; import flash.display.*; import gs.*; import flash.net.*; import commands.*; public class GarbuzIntro extends Sprite { private var bg:MovieClip; private var intro:MovieClip; private var kongBtn:SimpleButton; public function GarbuzIntro(){ var _local1:Class = Lib.getItem("garbuzIntro"); bg = new (_local1); intro = bg["intro"]; kongBtn = intro["kongBtn"]; kongBtn.addEventListener(MouseEvent.CLICK, onKong); addChild(bg); intro.stop(); addEventListener(MouseEvent.CLICK, onMouseClick); } private function onMouseClick(_arg1:MouseEvent):void{ if (intro.currentFrame > 175){ onGarbuz(); }; } public function start():void{ intro.play(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onGarbuz(_arg1:MouseEvent=null):void{ navigateToURL(new URLRequest("http://garbuzgames.com")); Global.gAtracker.trackPageview((("/" + Preloader.gameDomain) + "/BubbleQuod/intro_garbuz")); } public function hide():void{ intro.stop(); removeEventListener(Event.ENTER_FRAME, onEnterFrame); TweenLite.to(this, 0.5, {y:-450, onComplete:visibleH}); new ShowMainMenuCommans().execute(); } private function onEnterFrame(_arg1:Event):void{ if (intro.currentFrame == intro.totalFrames){ hide(); }; } private function visibleH():void{ this.visible = false; } private function onKong(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.kongregate.com/?gamereferral=bubblequod")); Global.gAtracker.trackPageview((("/" + Preloader.gameDomain) + "/BubbleQuod/intro_kongregate")); } public function show():void{ visible = true; y = -450; TweenLite.to(this, 0.5, {y:0, onComplete:start}); } private function onSkip(_arg1:Event):void{ hide(); } } }//package view
Section 235
//InLevelMenu (view.InLevelMenu) package view { import flash.events.*; import model.*; import flash.display.*; import flash.geom.*; import ui.*; import commands.*; public class InLevelMenu extends Sprite { private var digits:MovieClip; private var num2Pos:Point; private var num1Pos:Point; private var num1:MovieClip; private var num2:MovieClip; public var content:MovieClip; private var levelMsg:LangButton; public function InLevelMenu(){ var _local1:Class = Lib.getItem("InLevelMenu"); content = new (_local1); addChild(content); digits = content["digits"]; num1Pos = new Point(digits["pos1"].x, digits["pos1"].y); num2Pos = new Point(digits["pos2"].x, digits["pos2"].y); digits.removeChild(digits["pos1"]); digits.removeChild(digits["pos2"]); this.x = 500; var _local2:LangButton = new LangButton(content["menuBtn"], "menuSt"); _local2.addActionListener(onMenuPress); _local2 = new LangButton(content["again"], "playAgainSt"); _local2.addActionListener(onAgain); levelMsg = new LangButton(content["levelMsg"], "levelSt"); levelMsg.setEnabled(false, false); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } private function onAgain(_arg1:Event):void{ if (Global.model.restarting){ return; }; var _local2:RestartLevelCommand = new RestartLevelCommand(); _local2.execute(); delete ??getglobalscope [[_local2]]; } private function onMenuPress(_arg1:Event):void{ new ShowLevelMenuCommand().execute(); } private function onAddedToStage(_arg1:Event):void{ stage.addEventListener(Messages.LANGUAGE_CHANGE, setLanguage); } public function refresh():void{ var _local1:String; var _local2:Class; _local1 = Global.model.currentLevelNum.toString(); if (num1){ if (num1.parent){ digits.removeChild(num1); }; }; if (num2){ if (num2.parent){ digits.removeChild(num2); }; }; if (_local1.length > 1){ _local2 = Lib.getItem(("dig" + _local1.substr(1, 1))); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; digits.addChild(num1); _local2 = Lib.getItem(("dig" + _local1.substr(0, 1))); num2 = new (_local2); num2.x = num2Pos.x; num2.y = num2Pos.y; digits.addChild(num2); } else { _local2 = Lib.getItem(("dig" + _local1)); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; digits.addChild(num1); }; } private function setLanguage(_arg1:Event):void{ } } }//package view
Section 236
//Intro (view.Intro) package view { import flash.events.*; import flash.display.*; import flash.text.*; import gs.*; import ui.*; import commands.*; public class Intro extends Sprite { private var textMc:Array; private var bg:MovieClip; private var textField:TextField; private var currentMc:MovieClip; public function Intro(){ var _local4:MovieClip; super(); var _local1:Class = Lib.getItem("IntroMc"); bg = new (_local1); var _local2:MovieClip = bg["skip"]; var _local3:LangButton = new LangButton(_local2, "skipSt"); textMc = [bg["mc0"], bg["mc1"], bg["mc2"], bg["mc3"], bg["mc4"], bg["mc5"], bg["mc6"], bg["mc7"], bg["mc8"], bg["mc9"]]; for each (_local4 in textMc) { _local4.stop(); _local4.visible = false; }; addChild(bg); _local3.addActionListener(onSkip); } public function start():void{ currentMc = textMc[Global.model.language]; currentMc.play(); currentMc.visible = true; addEventListener(Event.ENTER_FRAME, onEnterFrame); } public function hide():void{ if (currentMc){ currentMc.gotoAndStop(1); currentMc.visible = false; }; removeEventListener(Event.ENTER_FRAME, onEnterFrame); TweenLite.to(this, 0.5, {y:-450, onComplete:visibleH}); new ShowLevelMenuCommand().execute(); } private function visibleH():void{ if (currentMc){ currentMc.gotoAndStop(1); currentMc.visible = false; }; this.visible = false; } private function onEnterFrame(_arg1:Event):void{ if (currentMc.currentFrame == currentMc.totalFrames){ hide(); }; } private function onSkip(_arg1:Event):void{ hide(); } public function show():void{ visible = true; y = -450; TweenLite.to(this, 0.5, {y:0, onComplete:start}); } } }//package view
Section 237
//Level (view.Level) package view { import flash.events.*; import model.*; import flash.display.*; import flash.geom.*; import org.rje.glaze.engine.space.*; import elements.*; import org.rje.glaze.engine.collision.shapes.*; public class Level extends Sprite { public var freeElements:Array; public var backgrounds:Array; private var graphMc:Sprite; public var springs:Array; public var rotationShapes:Sprite; private var minWidth:Number;// = 640 private var space:Space; private var minHeight:Number;// = 420 private var leftBorder:Number;// = 150 public var levelElements:Array; public var metalElements:Array; private var upBorder:Number;// = 150 public var joints:Array; private var bottomBorder:Number;// = 320 private var levelLeftBorder:Number; public var num:Number; public var staticRects:Sprite; private var _boobleMan:BoobleManMan; private var vy:Number; public var borders:Array; private var vx:Number; private var levelUpBorder:Number; public var staticCirclesArr:Array; public var levelData:PhysicsData; public var staticCircles:Sprite; private var moving:Boolean;// = false public var staticRectsArr:Array; private var rightBorder:Number;// = 500 private var p:Point; public var endPoint:EndPoint; public var coolers:Sprite; public function Level(_arg1:int){ staticCirclesArr = new Array(); staticRectsArr = new Array(); backgrounds = new Array(); levelElements = new Array(); freeElements = new Array(); joints = new Array(); springs = new Array(); metalElements = new Array(); borders = new Array(); graphMc = new Sprite(); p = new Point(); super(); num = _arg1; addChild(graphMc); } public function set boobleMan(_arg1:BoobleManMan):void{ _boobleMan = _arg1; } override public function get graphics():Graphics{ return (graphMc.graphics); } public function init(_arg1:Space):void{ var _local2:GeometricShape; var _local3:int; space = _arg1; for each (_local2 in borders) { space.defaultStaticBody.addShape(_local2); }; _local3 = getChildIndex(_boobleMan); setChildIndex(graphMc, (_local3 - 1)); graphMc.alpha = 0.4; if (levelData){ if (levelData.width > minWidth){ addEventListener(Event.ENTER_FRAME, scrollControl); levelLeftBorder = ((-(levelData.width) + Global.width) + 13); levelUpBorder = (levelData.height - Global.height); }; }; } private function onMoveComplete():void{ moving = false; } public function get boobleMan():BoobleManMan{ return (_boobleMan); } private function scrollControl(_arg1:Event):void{ vx = Math.abs((_boobleMan.body.v.x * space.dt)); vy = Math.abs((_boobleMan.body.v.y * space.dt)); p.x = _boobleMan.x; p.y = _boobleMan.y; p = localToGlobal(p); if (p.x > rightBorder){ if (this.x > levelLeftBorder){ if ((this.x + vx) < levelLeftBorder){ this.x = levelLeftBorder; } else { this.x = (this.x - (((p.x - rightBorder))>50) ? 10 : vx); }; }; }; if (p.x < leftBorder){ if (this.x < 0){ if ((this.x + vx) > 0){ this.x = 0; } else { this.x = (this.x + (((leftBorder - p.x))>50) ? 10 : vx); }; }; }; if (p.y > bottomBorder){ if (this.y > 0){ if ((this.y - vy) < 0){ this.y = 0; } else { this.y = (this.y - (((p.y - bottomBorder))>50) ? 10 : vy); }; }; }; if (p.y < upBorder){ if (this.y < levelUpBorder){ if ((this.y + vy) > levelUpBorder){ this.y = levelUpBorder; } else { this.y = (this.y + (((upBorder - p.y))>50) ? 10 : vy); }; }; }; } public function removeElement(_arg1:ILevelElement):void{ removeChild((_arg1 as DisplayObject)); levelElements[_arg1["name"]] = null; _arg1.destroy(); } public function getTargetElement(_arg1:String):ILevelElement{ return (levelElements[_arg1]); } public function destroy():void{ var _local1:ILevelElement; removeEventListener(Event.ENTER_FRAME, scrollControl); for each (_local1 in staticRectsArr) { _local1.destroy(); }; for each (_local1 in staticCirclesArr) { _local1.destroy(); }; for each (_local1 in levelElements) { if (_local1){ _local1.destroy(); }; }; while (numChildren) { removeChildAt(0); }; boobleMan.destroy(); _boobleMan = null; levelElements = null; staticRectsArr = null; staticCirclesArr = null; backgrounds = null; boobleMan = null; space = null; joints = null; springs = null; metalElements = null; freeElements = null; metalElements = null; } } }//package view
Section 238
//LevelBeginMenu (view.LevelBeginMenu) package view { import flash.display.*; import flash.geom.*; public class LevelBeginMenu extends Sprite { private var bg:MovieClip; private var num2Pos:Point; private var num1Pos:Point; private var num1:MovieClip; private var num2:MovieClip; public function LevelBeginMenu(){ var _local1:Class = Lib.getItem("LevelBeginBG"); bg = new (_local1); addChild(bg); num1Pos = new Point(bg["pos1"].x, bg["pos1"].y); num2Pos = new Point(bg["pos2"].x, bg["pos2"].y); bg.removeChild(bg["pos1"]); bg.removeChild(bg["pos2"]); } public function setNum(_arg1:int):void{ var _local2:Class; if (num1){ if (num1.parent){ removeChild(num1); }; }; if (num2){ if (num2.parent){ removeChild(num2); }; }; var _local3:String = _arg1.toString(); if (_local3.length > 1){ _local2 = Lib.getItem(("dig" + _local3.substr(1, 1))); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; addChild(num1); _local2 = Lib.getItem(("dig" + _local3.substr(0, 1))); num2 = new (_local2); num2.x = num2Pos.x; num2.y = num2Pos.y; addChild(num2); } else { _local2 = Lib.getItem(("dig" + _local3)); num1 = new (_local2); num1.x = num1Pos.x; num1.y = num1Pos.y; addChild(num1); }; } } }//package view
Section 239
//LevelMenuTimer (view.LevelMenuTimer) package view { import flash.display.*; import flash.geom.*; import flash.utils.*; public class LevelMenuTimer { private var currentTime:int; private var digitsM:MovieClip; private var num2Pos:Point; private var num1Pos:Point; private var num1:MovieClip; private var num2:MovieClip; private var digitsS:MovieClip; private var tId:uint; public function LevelMenuTimer(_arg1:MovieClip){ digitsS = _arg1["digitsS"]; digitsM = _arg1["digitsM"]; num1Pos = new Point(digitsS["pos1"].x, digitsS["pos1"].y); num2Pos = new Point(digitsS["pos2"].x, digitsS["pos2"].y); digitsS.removeChild(digitsS["pos1"]); digitsS.removeChild(digitsS["pos2"]); digitsM.removeChild(digitsM["pos1"]); digitsM.removeChild(digitsM["pos2"]); setTime(digitsM, "00"); setTime(digitsS, "00"); } public function start():void{ tId = setInterval(refresh, 1000); } public function refresh():void{ currentTime = (Global.model.timer.currentTime / 1000); var _local1:Number = Math.floor(currentTime); var _local2:Number = Math.floor((_local1 / 60)); var _local3:Number = (_local1 - (_local2 * 60)); var _local4:String = ((_local3)>=10) ? _local3 : ("0" + _local3).toString(); var _local5:String = ((_local2)>=10) ? _local2 : ("0" + _local2).toString(); setTime(digitsM, _local5); setTime(digitsS, _local4); } public function stop():void{ clearInterval(tId); setTime(digitsM, "00"); setTime(digitsS, "00"); } private function setTime(_arg1:MovieClip, _arg2:String):void{ var _local3:Class; if (_arg1.num1){ if (_arg1.num1.parent){ _arg1.removeChild(_arg1.num1); }; }; if (_arg1.num2){ if (_arg1.num2.parent){ _arg1.removeChild(_arg1.num2); }; }; _local3 = Lib.getItem(("dig" + _arg2.substr(1, 1))); var _local4:MovieClip = new (_local3); _local4.x = num1Pos.x; _local4.y = num1Pos.y; _arg1.num1 = _arg1.addChild(_local4); _local3 = Lib.getItem(("dig" + _arg2.substr(0, 1))); var _local5:MovieClip = new (_local3); _local5.x = num2Pos.x; _local5.y = num2Pos.y; _arg1.num2 = _arg1.addChild(_local5); } } }//package view
Section 240
//MainMenu (view.MainMenu) package view { import flash.events.*; import flash.display.*; import org.rje.glaze.engine.space.*; import elements.*; import flash.net.*; import ui.*; import commands.*; public class MainMenu extends Sprite { private var boobleMan:BoobleManMan; private var level:Level; private var space:Space; private var moreBtn:LangButton; private var buttonPressed:int; private var newBtn:LangButton; private var modeMsg:LangButton; private var creditBtn:LangButton; private var hardBtn:LangButton; private var garbBtn:MButton; private var levelBtn:LangButton; private var easyBtn:LangButton; private var kongBtn:MovieClip; public function MainMenu(){ var _local4:DisplayObject; super(); level = LevelManager.createLevel(0); space = Global.engine.initLevel(level); addChild(level); var _local1:MovieClip = (level.getChildAt(0) as MovieClip); var _local2:MovieClip = _local1["newBtn"]; newBtn = new LangButton(_local2, "newGameSt"); _local2 = _local1["levelBtn"]; levelBtn = new LangButton(_local2, "continueSt"); _local1.addChild(levelBtn); _local2 = _local1["gameBtn"]; _local1.mouseChildren = true; _local1.mouseEnabled = true; garbBtn = new MButton(_local2); garbBtn.x = _local2.x; garbBtn.y = _local2.y; _local2.x = 0; _local2.y = 0; _local1.addChild(garbBtn); _local2 = _local1["creditsBtn"]; creditBtn = new LangButton(_local2, "creditsSt"); _local2 = _local1["moreBtn"]; moreBtn = new LangButton(_local2, "moreGamesSt"); modeMsg = new LangButton(_local1["modeMsg"], "modeSt"); modeMsg.setEnabled(false); easyBtn = new LangButton(_local1["easyBtn"], "easySt"); hardBtn = new LangButton(_local1["hardBtn"], "hardSt"); easyBtn.addActionListener(onEasy); hardBtn.addActionListener(onHard); kongBtn = _local1["kongBtn"]; kongBtn.buttonMode = true; kongBtn.addEventListener(MouseEvent.MOUSE_DOWN, onKongDown); newBtn.addActionListener(onNewBtn); levelBtn.addActionListener(onLevelBtn); garbBtn.addActionListener(onGarbBtn); creditBtn.addActionListener(onCredit); moreBtn.addActionListener(onMore); levelBtn.setEnabled(false); boobleMan = level.boobleMan; boobleMan.visible = false; var _local3:int; while (_local3 < _local1.numChildren) { _local4 = _local1.getChildAt(_local3); if ((_local4 is SimpleButton)){ _local4.addEventListener(MouseEvent.CLICK, setLang); }; _local3++; }; } private function secondButtonsVisible(_arg1:Boolean):void{ modeMsg.visible = _arg1; easyBtn.visible = _arg1; hardBtn.visible = _arg1; } private function beginButtonsVisible(_arg1:Boolean):void{ levelBtn.visible = _arg1; newBtn.visible = _arg1; creditBtn.visible = _arg1; moreBtn.visible = _arg1; } private function onLevelBtn(_arg1:Event):void{ buttonPressed = 1; secondButtonsVisible(true); beginButtonsVisible(false); } public function stop():void{ removeEventListener(Event.ENTER_FRAME, onEnterFrame); if (!boobleMan.paused){ boobleMan.pause(); }; } private function onGarbBtn(_arg1:Event):void{ navigateToURL(new URLRequest(Global.model.garnuzGamesUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/MainMenu_garbuzgames")); } private function onMore(_arg1:Event=null):void{ navigateToURL(new URLRequest(Global.model.kongUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/MainMenu_kongregate")); } private function onEasy(_arg1:Event):void{ Global.model.gameMode = true; newGame(); } private function onCredit(_arg1:Event):void{ new ShowCreditsCommand().execute(); } private function onNewBtn(_arg1:Event):void{ secondButtonsVisible(true); beginButtonsVisible(false); buttonPressed = 2; } private function onKongDown(_arg1:MouseEvent):void{ navigateToURL(new URLRequest(Global.model.kongUrl)); Global.gAtracker.trackPageview((((("/" + Global.model.gameDomain) + "/") + Global.model.gameName) + "/MainMenu_kongregateUP")); } public function start():void{ addEventListener(Event.ENTER_FRAME, onEnterFrame); if (boobleMan.paused){ boobleMan.pause(); }; } private function onHard(_arg1:Event):void{ Global.model.gameMode = false; newGame(); } private function setLang(_arg1:MouseEvent):void{ var _local2:SimpleButton = (_arg1.currentTarget as SimpleButton); var _local3:int = parseFloat(_local2.name.substr(3)); Global.model.language = _local3; } private function newGame():void{ LinksManager.saveClickStat("/language/", Global.model.language.toString()); if (buttonPressed == 1){ new ShowLevelMenuCommand().execute(); stop(); } else { Global.model.newGame(); stop(); if (Global.model.userData.lastLevel >= 1){ new ShowIntroCommand().execute(); return; }; }; new ShowLevelMenuCommand().execute(); } private function onEnterFrame(_arg1:Event):void{ level.graphics.clear(); space.step(); } public function refresh():void{ beginButtonsVisible(true); secondButtonsVisible(false); if (Global.model.userData.lastLevel > 1){ levelBtn.setEnabled(true); } else { levelBtn.setEnabled(false); }; } } }//package view
Section 241
//PasswordWin (view.PasswordWin) package view { import flash.events.*; import flash.display.*; import flash.text.*; import ui.*; import commands.*; public class PasswordWin extends Sprite { private var enterBtn:LangButton; private var enterMsg:LangButton; private var enterTxt:TextField; private var content:MovieClip; public function PasswordWin(){ var _local1:Class = Lib.getItem("PasswordWinMc"); content = (new (_local1) as MovieClip); addChild(content); addEventListener(Event.ADDED_TO_STAGE, init); enterTxt = content["enterTxt"]; enterBtn = new LangButton(content["enterBtn"], "enterSt"); enterBtn.buttonMode = true; enterMsg = new LangButton(content["enterMsg"], "enterLevelPasswordSt"); enterMsg.setEnabled(false, false); enterBtn.addEventListener(MouseEvent.CLICK, onEnterClick); addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownThis); } private function onMouseDown(_arg1:MouseEvent):void{ this.visible = false; } private function onMouseDownThis(_arg1:MouseEvent):void{ _arg1.stopPropagation(); } private function onEnterClick(_arg1:MouseEvent):void{ if (enterTxt.text.toLowerCase() == "gravitation"){ Global.model.userData.lastLevel = 45; Global.model.userData.levelsPass[44] = true; Global.view._levelMenu.refresh(); this.visible = false; if (Global.model.currentLevel){ new EndLevelCommand().execute(); }; Global.view.hideLevelMenu(); new StartLevelCommand(45).execute(); } else { enterTxt.text = ""; }; } private function init(_arg1:Event):void{ stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); } public function refresh():void{ enterTxt.text = ""; stage.focus = enterTxt; } } }//package view
Section 242
//PlayBonusWindow (view.PlayBonusWindow) package view { import flash.events.*; import flash.display.*; import flash.net.*; import ui.*; public class PlayBonusWindow extends Sprite { private var bg:MovieClip; private var enterMsg:LangButton; private var kongBtn:LangButton; public function PlayBonusWindow(){ var _local1:Class = Lib.getItem("PlayBonusWin"); bg = (new (_local1) as MovieClip); addChild(bg); kongBtn = new LangButton(bg["kongBtn"], "playWithBonusLevelsSt"); kongBtn.addActionListener(onKongBtn); enterMsg = new LangButton(bg["enterMsg"], "passwordFor45levelSt"); enterMsg.setEnabled(false, false); } private function onKongBtn(_arg1:Event):void{ navigateToURL(new URLRequest(Global.model.kongBubbleUrl)); LinksManager.saveClickStat("bonusWin", "kongBubbleQuod"); this.visible = false; } } }//package view
Section 243
//View (view.View) package view { import flash.events.*; import flash.display.*; import lib.events.*; import gs.*; import flash.ui.*; import ui.*; import commands.*; public class View extends Sprite { public var conMenu:ContextMenu; public var levelMenuTimer:LevelMenuTimer; public var _levelMenu:LevelMenu; public var resultsWindow:ResultsWindow; public var currentLevel:Level; private var popUpContainer:Sprite; public var finishIntro:FinishIntro; public var levelBeginMenu:LevelBeginMenu; private var hideCallback:Function; public var mainMenu:MainMenu; public var bonusWin:PlayBonusWindow; public var passwordWin:PasswordWin; public var soundBtn:MToggleButton; private var _keyDownEvent:EventSender; private var levelContainer:Sprite; public var inLevelMenu:InLevelMenu; private var menuContainer:Sprite; public var creditsWin:CreditsWin; public var intro:Intro; public var garbuzIntro:GarbuzIntro; private var _keyUpEvent:EventSender; public function View(){ _keyDownEvent = new EventSender(); _keyUpEvent = new EventSender(); popUpContainer = new Sprite(); menuContainer = new Sprite(); levelContainer = new Sprite(); super(); } public function showLevel(_arg1:Level):void{ levelContainer.addChild(_arg1); currentLevel = _arg1; hideLevelMenu(); inLevelMenu.visible = true; inLevelMenu.refresh(); } public function initialize():void{ Global.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); Global.stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); passwordWin = new PasswordWin(); _levelMenu = new LevelMenu(); inLevelMenu = new InLevelMenu(); mainMenu = new MainMenu(); levelBeginMenu = new LevelBeginMenu(); resultsWindow = new ResultsWindow(); intro = new Intro(); finishIntro = new FinishIntro(); garbuzIntro = new GarbuzIntro(); creditsWin = new CreditsWin(); bonusWin = new PlayBonusWindow(); levelMenuTimer = new LevelMenuTimer(inLevelMenu.content["timer"]); addChild(levelContainer); addChild(menuContainer); addChild(popUpContainer); levelContainer.addChild(Global.engine); menuContainer.addChild(inLevelMenu); menuContainer.addChild(levelBeginMenu); menuContainer.addChild(_levelMenu); menuContainer.addChild(mainMenu); menuContainer.addChild(resultsWindow); menuContainer.addChild(intro); menuContainer.addChild(finishIntro); menuContainer.addChild(garbuzIntro); menuContainer.addChild(creditsWin); menuContainer.addChild(bonusWin); popUpContainer.addChild(passwordWin); intro.visible = false; finishIntro.visible = false; garbuzIntro.visible = false; creditsWin.visible = false; passwordWin.visible = false; bonusWin.visible = false; _levelMenu.visible = false; _levelMenu.alpha = 0; mainMenu.visible = false; inLevelMenu.visible = false; levelBeginMenu.visible = false; resultsWindow.visible = false; var _local1:Class = Lib.getItem("soundBtn"); var _local2:MovieClip = new (_local1); soundBtn = new MToggleButton(_local2); soundBtn.x = 20; soundBtn.y = 20; addChild(soundBtn); soundBtn.addActionListener(onSound); bonusWin.x = (Global.width / 2); bonusWin.y = (Global.height / 2); Global.model.messages.setLanguage(Global.model.language); stage.scaleMode = StageScaleMode.SHOW_ALL; } private function onKeyUp(_arg1:KeyboardEvent):void{ _keyUpEvent.sendEvent(_arg1); } private function onKeyDown(_arg1:KeyboardEvent):void{ _keyDownEvent.sendEvent(_arg1); if ((((((((_arg1.keyCode == Keyboard.F3)) && (_arg1.shiftKey))) && (_arg1.ctrlKey))) && (_arg1.altKey))){ Global.model.createAllLevels(); Global.model.userData.lastLevel = 43; Global.view._levelMenu.refresh(); }; if ((((_arg1.charCode == 114)) && (Global.model.currentLevel))){ new RestartLevelCommand().execute(); }; } private function onLevelHide(_arg1:Event):void{ currentLevel.alpha = (currentLevel.alpha - 0.05); if (currentLevel.alpha < 0.1){ removeEventListener(Event.ENTER_FRAME, onLevelHide); removeLevel(currentLevel); if (hideCallback != null){ hideCallback(); }; }; } public function removeLevel(_arg1:Level):void{ if (currentLevel){ levelContainer.removeChild(_arg1); currentLevel = null; inLevelMenu.visible = false; }; } public function hideLevelMenu():void{ TweenLite.to(_levelMenu, 0.5, {y:-460, onComplete:function ():void{ _levelMenu.visible = false; }}); } public function get keyUpEvent():EventSender{ return (_keyUpEvent); } private function onSound(_arg1:Event):void{ Snd.mute(); } public function hideLevel(_arg1:Function=null):void{ inLevelMenu.visible = false; hideCallback = _arg1; if (currentLevel){ removeLevel(currentLevel); }; } public function get keyDownEvent():EventSender{ return (_keyDownEvent); } } }//package view
Section 244
//_activeButtonStyleStyle (_activeButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 245
//_activeTabStyleStyle (_activeTabStyleStyle) package { import mx.core.*; import mx.styles.*; public class _activeTabStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".activeTabStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".activeTabStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 246
//_alertButtonStyleStyle (_alertButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _alertButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".alertButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".alertButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 734012; }; }; } } }//package
Section 247
//_AlertStyle (_AlertStyle) package { import mx.core.*; import mx.styles.*; public class _AlertStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("Alert"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("Alert", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.borderColor = 8821927; this.roundedBottomCorners = true; this.color = 0xFFFFFF; this.buttonStyleName = "alertButtonStyle"; this.backgroundColor = 8821927; this.borderAlpha = 0.9; this.paddingLeft = 10; this.paddingBottom = 2; this.backgroundAlpha = 0.9; this.paddingRight = 10; }; }; } } }//package
Section 248
//_comboDropdownStyle (_comboDropdownStyle) package { import mx.core.*; import mx.styles.*; public class _comboDropdownStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".comboDropdown"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".comboDropdown", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.shadowDirection = "center"; this.fontWeight = "normal"; this.dropShadowEnabled = true; this.leading = 0; this.backgroundColor = 0xFFFFFF; this.shadowDistance = 1; this.cornerRadius = 0; this.borderThickness = 0; this.paddingLeft = 5; this.paddingRight = 5; }; }; } } }//package
Section 249
//_dataGridStylesStyle (_dataGridStylesStyle) package { import mx.core.*; import mx.styles.*; public class _dataGridStylesStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dataGridStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dataGridStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 250
//_dateFieldPopupStyle (_dateFieldPopupStyle) package { import mx.core.*; import mx.styles.*; public class _dateFieldPopupStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".dateFieldPopup"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".dateFieldPopup", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.dropShadowEnabled = true; this.backgroundColor = 0xFFFFFF; this.borderThickness = 0; }; }; } } }//package
Section 251
//_errorTipStyle (_errorTipStyle) package { import mx.core.*; import mx.styles.*; public class _errorTipStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".errorTip"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".errorTip", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.borderStyle = "errorTipRight"; this.paddingTop = 4; this.borderColor = 13510953; this.color = 0xFFFFFF; this.fontSize = 9; this.shadowColor = 0; this.paddingLeft = 4; this.paddingBottom = 4; this.paddingRight = 4; }; }; } } }//package
Section 252
//_globalStyle (_globalStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _globalStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("global"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("global", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fillColor = 0xFFFFFF; this.kerning = false; this.iconColor = 0x111111; this.textRollOverColor = 2831164; this.horizontalAlign = "left"; this.shadowCapColor = 14015965; this.backgroundAlpha = 1; this.filled = true; this.textDecoration = "none"; this.roundedBottomCorners = true; this.fontThickness = 0; this.focusBlendMode = "normal"; this.fillColors = [0xFFFFFF, 0xCCCCCC, 0xFFFFFF, 0xEEEEEE]; this.horizontalGap = 8; this.borderCapColor = 9542041; this.buttonColor = 7305079; this.indentation = 17; this.selectionDisabledColor = 0xDDDDDD; this.closeDuration = 250; this.embedFonts = false; this.paddingTop = 0; this.letterSpacing = 0; this.focusAlpha = 0.4; this.bevel = true; this.fontSize = 10; this.shadowColor = 0xEEEEEE; this.borderAlpha = 1; this.paddingLeft = 0; this.fontWeight = "normal"; this.indicatorGap = 14; this.focusSkin = HaloFocusRect; this.dropShadowEnabled = false; this.leading = 2; this.borderSkin = HaloBorder; this.fontSharpness = 0; this.modalTransparencyDuration = 100; this.borderThickness = 1; this.backgroundSize = "auto"; this.borderStyle = "inset"; this.borderColor = 12040892; this.fontAntiAliasType = "advanced"; this.errorColor = 0xFF0000; this.shadowDistance = 2; this.horizontalGridLineColor = 0xF7F7F7; this.stroked = false; this.modalTransparencyColor = 0xDDDDDD; this.cornerRadius = 0; this.verticalAlign = "top"; this.textIndent = 0; this.fillAlphas = [0.6, 0.4, 0.75, 0.65]; this.verticalGridLineColor = 14015965; this.themeColor = 40447; this.version = "3.0.0"; this.shadowDirection = "center"; this.modalTransparency = 0.5; this.repeatInterval = 35; this.openDuration = 250; this.textAlign = "left"; this.fontFamily = "Verdana"; this.textSelectedColor = 2831164; this.paddingBottom = 0; this.strokeWidth = 1; this.fontGridFitType = "pixel"; this.horizontalGridLines = false; this.useRollOver = true; this.verticalGridLines = true; this.repeatDelay = 500; this.fontStyle = "normal"; this.dropShadowColor = 0; this.focusThickness = 2; this.verticalGap = 6; this.disabledColor = 11187123; this.paddingRight = 0; this.focusRoundedCorners = "tl tr bl br"; this.borderSides = "left top right bottom"; this.disabledIconColor = 0x999999; this.modalTransparencyBlur = 3; this.color = 734012; this.selectionDuration = 250; this.highlightAlphas = [0.3, 0]; }; }; } } }//package
Section 253
//_headerDateTextStyle (_headerDateTextStyle) package { import mx.core.*; import mx.styles.*; public class _headerDateTextStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDateText"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDateText", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 254
//_headerDragProxyStyleStyle (_headerDragProxyStyleStyle) package { import mx.core.*; import mx.styles.*; public class _headerDragProxyStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".headerDragProxyStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".headerDragProxyStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 255
//_linkButtonStyleStyle (_linkButtonStyleStyle) package { import mx.core.*; import mx.styles.*; public class _linkButtonStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".linkButtonStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".linkButtonStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 2; this.paddingLeft = 2; this.paddingBottom = 2; this.paddingRight = 2; }; }; } } }//package
Section 256
//_opaquePanelStyle (_opaquePanelStyle) package { import mx.core.*; import mx.styles.*; public class _opaquePanelStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".opaquePanel"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".opaquePanel", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderColor = 0xFFFFFF; this.backgroundColor = 0xFFFFFF; this.headerColors = [0xE7E7E7, 0xD9D9D9]; this.footerColors = [0xE7E7E7, 0xC7C7C7]; this.borderAlpha = 1; }; }; } } }//package
Section 257
//_PanelStyle (_PanelStyle) package { import mx.core.*; import mx.styles.*; import mx.skins.halo.*; public class _PanelStyle { public static function init(_arg1:IFlexModuleFactory):void{ var effects:Array; var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration("Panel"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration("Panel", style, false); effects = style.mx_internal::effects; if (!effects){ effects = (style.mx_internal::effects = new Array()); }; effects.push("resizeEndEffect"); effects.push("resizeStartEffect"); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.statusStyleName = "windowStatus"; this.borderStyle = "default"; this.paddingTop = 0; this.borderColor = 0xE2E2E2; this.backgroundColor = 0xFFFFFF; this.cornerRadius = 4; this.titleBackgroundSkin = TitleBackground; this.borderAlpha = 0.4; this.borderThicknessTop = 2; this.paddingLeft = 0; this.resizeEndEffect = "Dissolve"; this.paddingRight = 0; this.titleStyleName = "windowStyles"; this.roundedBottomCorners = false; this.borderThicknessRight = 10; this.dropShadowEnabled = true; this.resizeStartEffect = "Dissolve"; this.borderSkin = PanelSkin; this.borderThickness = 0; this.borderThicknessLeft = 10; this.paddingBottom = 0; }; }; } } }//package
Section 258
//_plainStyle (_plainStyle) package { import mx.core.*; import mx.styles.*; public class _plainStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".plain"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".plain", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.paddingTop = 0; this.backgroundColor = 0xFFFFFF; this.backgroundImage = ""; this.horizontalAlign = "left"; this.paddingLeft = 0; this.paddingBottom = 0; this.paddingRight = 0; }; }; } } }//package
Section 259
//_popUpMenuStyle (_popUpMenuStyle) package { import mx.core.*; import mx.styles.*; public class _popUpMenuStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".popUpMenu"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".popUpMenu", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "normal"; this.textAlign = "left"; }; }; } } }//package
Section 260
//_richTextEditorTextAreaStyleStyle (_richTextEditorTextAreaStyleStyle) package { import mx.core.*; import mx.styles.*; public class _richTextEditorTextAreaStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".richTextEditorTextAreaStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".richTextEditorTextAreaStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 261
//_swatchPanelTextFieldStyle (_swatchPanelTextFieldStyle) package { import mx.core.*; import mx.styles.*; public class _swatchPanelTextFieldStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".swatchPanelTextField"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".swatchPanelTextField", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.borderStyle = "inset"; this.borderColor = 14015965; this.highlightColor = 12897484; this.backgroundColor = 0xFFFFFF; this.shadowCapColor = 14015965; this.shadowColor = 14015965; this.paddingLeft = 5; this.buttonColor = 7305079; this.borderCapColor = 9542041; this.paddingRight = 5; }; }; } } }//package
Section 262
//_textAreaHScrollBarStyleStyle (_textAreaHScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaHScrollBarStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaHScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaHScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 263
//_textAreaVScrollBarStyleStyle (_textAreaVScrollBarStyleStyle) package { import mx.core.*; import mx.styles.*; public class _textAreaVScrollBarStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".textAreaVScrollBarStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".textAreaVScrollBarStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ }; }; } } }//package
Section 264
//_todayStyleStyle (_todayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _todayStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".todayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".todayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0xFFFFFF; this.textAlign = "center"; }; }; } } }//package
Section 265
//_weekDayStyleStyle (_weekDayStyleStyle) package { import mx.core.*; import mx.styles.*; public class _weekDayStyleStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".weekDayStyle"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".weekDayStyle", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; this.textAlign = "center"; }; }; } } }//package
Section 266
//_windowStatusStyle (_windowStatusStyle) package { import mx.core.*; import mx.styles.*; public class _windowStatusStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStatus"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStatus", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.color = 0x666666; }; }; } } }//package
Section 267
//_windowStylesStyle (_windowStylesStyle) package { import mx.core.*; import mx.styles.*; public class _windowStylesStyle { public static function init(_arg1:IFlexModuleFactory):void{ var fbs = _arg1; var style:CSSStyleDeclaration = StyleManager.getStyleDeclaration(".windowStyles"); if (!style){ style = new CSSStyleDeclaration(); StyleManager.setStyleDeclaration(".windowStyles", style, false); }; if (style.defaultFactory == null){ style.defaultFactory = function ():void{ this.fontWeight = "bold"; }; }; } } }//package
Section 268
//Annifont (Annifont) package { import flash.text.*; public dynamic class Annifont extends Font { } }//package
Section 269
//bubleEnd (bubleEnd) package { import flash.media.*; public dynamic class bubleEnd extends Sound { } }//package
Section 270
//button (button) package { import flash.media.*; public dynamic class button extends Sound { } }//package
Section 271
//ComicFont (ComicFont) package { import flash.text.*; public dynamic class ComicFont extends Font { } }//package
Section 272
//Controler (Controler) package { public class Controler { public function initialize():void{ } } }//package
Section 273
//en_US$core_properties (en_US$core_properties) package { import mx.resources.*; public class en_US$core_properties extends ResourceBundle { public function en_US$core_properties(){ super("en_US", "core"); } override protected function getContent():Object{ var _local1:Object = {multipleChildSets_ClassAndInstance:"Multiple sets of visual children have been specified for this component (component definition and component instance).", truncationIndicator:"...", notExecuting:"Repeater is not executing.", versionAlreadyRead:"Compatibility version has already been read.", multipleChildSets_ClassAndSubclass:"Multiple sets of visual children have been specified for this component (base component definition and derived component definition).", viewSource:"View Source", badFile:"File does not exist.", stateUndefined:"Undefined state '{0}'.", versionAlreadySet:"Compatibility version has already been set."}; return (_local1); } } }//package
Section 274
//en_US$skins_properties (en_US$skins_properties) package { import mx.resources.*; public class en_US$skins_properties extends ResourceBundle { public function en_US$skins_properties(){ super("en_US", "skins"); } override protected function getContent():Object{ var _local1:Object = {notLoaded:"Unable to load '{0}'."}; return (_local1); } } }//package
Section 275
//en_US$styles_properties (en_US$styles_properties) package { import mx.resources.*; public class en_US$styles_properties extends ResourceBundle { public function en_US$styles_properties(){ super("en_US", "styles"); } override protected function getContent():Object{ var _local1:Object = {unableToLoad:"Unable to load style({0}): {1}."}; return (_local1); } } }//package
Section 276
//Engine (Engine) package { import flash.events.*; import view.*; import flash.display.*; import org.rje.glaze.engine.space.*; import org.rje.glaze.engine.math.*; import lib.events.*; import elements.*; import org.rje.glaze.engine.collision.shapes.*; import org.rje.glaze.engine.dynamics.joints.*; public class Engine extends Sprite { public var space:Space; public var drawGraphics:Boolean;// = false private var dt:Number; private var _changeGravitationEvent:EventSender; public function Engine(){ _changeGravitationEvent = new EventSender(); super(); } public function start():void{ Global.stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(_arg1:Event):void{ var _local2:GeometricShape; var _local3:Joint; Global.model.currentLevel.graphics.clear(); space.step(); if (drawGraphics){ _local2 = space.activeShapes; while (_local2) { _local2.draw(Global.model.currentLevel.graphics, false); _local2 = _local2.next; }; _local2 = space.staticShapes; while (_local2) { _local2.draw(Global.model.currentLevel.graphics, false); _local2 = _local2.next; }; _local3 = space.joints; while (_local3) { _local3.draw(Global.model.currentLevel.graphics, false); _local3 = _local3.next; }; }; } public function tryAgain(_arg1:Level):void{ Global.trace("tryAgain!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); _arg1.destroy(); destroySpace(); Global.model.currentLevel = LevelManager.createLevel(Global.model.currentLevelNum); } public function get changeGravitationEvent():EventSender{ return (_changeGravitationEvent); } public function setGravitation(_arg1:Vector2D):void{ space.masslessForce.setTo(_arg1.x, _arg1.y); _changeGravitationEvent.sendEvent(); } public function stop():void{ Global.stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); graphics.clear(); } public function initLevel(_arg1:Level):Space{ var _local2:StaticCircle; var _local3:StaticRect; var _local4:ILevelElement; var _local5:Boolean; var _local6:PinJointFree; var _local7:SpringFree; (dt == (1 / 31)); if (LevelManager.levelSpace[("level" + _arg1.num)]){ if (LevelManager.levelSpace[("level" + _arg1.num)] == "hash"){ space = (new SpacialHashSpace(30, 30, new AABB(0, _arg1.width, _arg1.height, 0)) as Space); } else { if (LevelManager.levelSpace[("level" + _arg1.num)] == "force"){ space = (new BruteForceSpace(30, 30, new AABB(0, _arg1.width, _arg1.height, 0)) as Space); } else { throw (new Error(("Space no found " + LevelManager.levelSpace[("level" + _arg1.num)]))); }; }; } else { space = (new SortAndSweepSpace(30, 30, new AABB(0, _arg1.width, _arg1.height, 0)) as Space); }; trace(space); space.iterations = 20; space.masslessForce.setTo(0, 300); space.defaultStaticBody.lock(); for each (_local2 in _arg1.staticCirclesArr) { space.defaultStaticBody.addShape(_local2.shape); }; for each (_local3 in _arg1.staticRectsArr) { space.addRigidBody(_local3.body); }; space.defaultStaticBody.unlock(); for each (_local4 in _arg1.levelElements) { if (!_local4.init(space, _arg1)){ tryAgain(_arg1); return (space); }; }; space.addRigidBody(_arg1.boobleMan.body); _arg1.boobleMan.init(space, _arg1); _arg1.init(space); space.sync(); space.step(); for each (_local6 in _arg1.joints) { _local5 = _local6.initJoint(); Global.trace(_local5); if (!_local5){ tryAgain(_arg1); return (space); }; }; for each (_local7 in _arg1.springs) { _local5 = _local7.initSpring(); Global.trace(("spring=" + _local5)); if (!_local5){ tryAgain(_arg1); return (space); }; }; return (space); } public function destroySpace():void{ space = null; } } }//package
Section 277
//Global (Global) package { import view.*; import model.*; import com.google.analytics.*; import com.kongregate.as3.client.*; import flash.system.*; import flash.display.*; import commands.*; public class Global { private static var _view:View = new View(); public static var stage:Stage; public static var width:Number = 670; private static var _controler:Controler = new Controler(); public static var app:Main; public static var height:Number = 450; private static var _engine:Engine = new Engine(); private static var _model:Model = new Model(); private static var _messages:Messages = new Messages(); private static var _keyManager:KeyboardManager = new KeyboardManager(); private static var _kongregate:KongregateAPI; private static var _gAtracker:GATracker; public static function get controler():Controler{ return (_controler); } public static function get gAtracker():GATracker{ return (_gAtracker); } public static function initialize(_arg1:Main):void{ app = _arg1; stage = app.stage; _gAtracker = Preloader.gaTracker; _kongregate = Preloader.kongregate; Lib.init(onLibInit); } public static function get engine():Engine{ return (_engine); } public static function get messages():Messages{ return (_messages); } public static function get keyManager():KeyboardManager{ return (_keyManager); } public static function get kongregate():KongregateAPI{ return (_kongregate); } private static function onLibInit():void{ _model.initialize(); _view.initialize(); _controler.initialize(); _keyManager.init(stage); Snd.init(); Security.allowDomain("*"); new ShowMainMenuCommans().execute(); } public static function get model():Model{ return (_model); } public static function get view():View{ return (_view); } public static function trace(_arg1):void{ app.$.console.trace(_arg1); } } }//package
Section 278
//gravitation (gravitation) package { import flash.media.*; public dynamic class gravitation extends Sound { } }//package
Section 279
//HansFont (HansFont) package { import flash.text.*; public dynamic class HansFont extends Font { } }//package
Section 280
//jump1 (jump1) package { import flash.media.*; public dynamic class jump1 extends Sound { } }//package
Section 281
//jump2 (jump2) package { import flash.media.*; public dynamic class jump2 extends Sound { } }//package
Section 282
//KeyboardManager (KeyboardManager) package { import flash.events.*; import flash.display.*; import util.*; import flash.ui.*; public class KeyboardManager extends EventDispatcher { protected var keySequence:VectorV; protected var enabled:Boolean; protected var keyJustActed:Boolean; protected var keymap:KeyMap; protected var inited:Boolean; protected var mnemonicModifier:Array; protected static var defaultMnemonicModifier:Array = [Keyboard.CONTROL, Keyboard.SHIFT]; public function KeyboardManager(){ enabled = true; inited = false; keyJustActed = false; keySequence = new VectorV(); keymap = new KeyMap(); mnemonicModifier = null; } public function isMnemonicModifierDown():Boolean{ var _local1:Array = getMnemonicModifier(); var _local2:int; while (_local2 < _local1.length) { if (!isKeyDown(_local1[_local2])){ return (false); }; _local2++; }; return ((_local1.length > 0)); } public function isKeyJustActed():Boolean{ return (keyJustActed); } public function registerKeyAction(_arg1:KeyType, _arg2:Function):void{ keymap.registerKeyAction(_arg1, _arg2); } public function init(_arg1:DisplayObjectContainer):void{ if (!inited){ inited = true; _arg1.addEventListener(KeyboardEvent.KEY_DOWN, __onKeyDown, false, 0, true); _arg1.addEventListener(KeyboardEvent.KEY_UP, __onKeyUp, false, 0, true); } else { throw (new Error("This KeyboardManager was already inited!")); }; } public function unregisterKeyAction(_arg1:KeyType):void{ keymap.unregisterKeyAction(_arg1); } private function __onKeyUp(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; var _local2:uint = _arg1.keyCode; keySequence.remove(_local2); if (!_arg1.ctrlKey){ keySequence.remove(Keyboard.CONTROL); }; if (!_arg1.shiftKey){ keySequence.remove(Keyboard.SHIFT); }; } public function isKeyDown(_arg1:uint):Boolean{ return (keySequence.contains(_arg1)); } private function __onKeyDown(_arg1:KeyboardEvent):void{ if (!enabled){ return; }; var _local2:uint = _arg1.keyCode; if (!keySequence.contains(_local2)){ keySequence.append(_local2); }; keyJustActed = false; if (keymap.fireKeyAction(keySequence.toArray())){ keyJustActed = true; }; } private function __deactived(_arg1:Event):void{ keySequence.clear(); } public function getKeyMap():KeyMap{ return (keymap); } public function getMnemonicModifier():Array{ if (mnemonicModifier == null){ return (getDefaultMnemonicModifier()); }; return (mnemonicModifier.concat()); } public function isEnabled():Boolean{ return (enabled); } public function setMnemonicModifier(_arg1:Array):void{ if (_arg1 == null){ _arg1 = null; } else { mnemonicModifier = _arg1.concat(); }; } public function setEnabled(_arg1:Boolean):void{ enabled = _arg1; if (!_arg1){ keySequence.clear(); }; } public static function setDefaultMnemonicModifier(_arg1:Array):void{ defaultMnemonicModifier = _arg1.concat(); } public static function getDefaultMnemonicModifier():Array{ return (defaultMnemonicModifier.concat()); } } }//package
Section 283
//KeyMap (KeyMap) package { import util.*; public class KeyMap { private var map:HashMap; public function KeyMap(){ map = new HashMap(); } public function containsKey(_arg1:KeyType):Boolean{ return (map.containsKey(getCodec(_arg1))); } private function getKeyActionWithCodec(_arg1:String):Function{ var _local2:KeyAction = map.get(_arg1); if (_local2 != null){ return (_local2.action); }; return (null); } public function registerKeyAction(_arg1:KeyType, _arg2:Function):void{ map.put(getCodec(_arg1), new KeyAction(_arg1, _arg2)); } public function fireKeyAction(_arg1:Array):Boolean{ var _local2:String = getCodecWithKeySequence(_arg1); var _local3:Function = getKeyActionWithCodec(_local2); if (_local3 != null){ _local3(); return (true); }; return (false); } public function unregisterKeyAction(_arg1:KeyType):void{ map.remove(getCodec(_arg1)); } public function getKeyAction(_arg1:KeyType):Function{ return (getKeyActionWithCodec(getCodec(_arg1))); } public static function getCodec(_arg1:KeyType):String{ return (getCodecWithKeySequence(_arg1.getCodeSequence())); } public static function getCodecWithKeySequence(_arg1:Array):String{ return (_arg1.join("|")); } } }//package class KeyAction { private var action:Function; private var key:KeyType; private function KeyAction(_arg1:KeyType, _arg2:Function){ this.key = _arg1; this.action = _arg2; } }
Section 284
//KeyType (KeyType) package { public interface KeyType { function getCodeSequence():Array; function getDescription():String; } }//package
Section 285
//LevelManager (LevelManager) package { import view.*; import model.*; import flash.display.*; import elements.*; import org.rje.glaze.engine.dynamics.*; public class LevelManager { private static const defaultMaterial:Array = new Array(); public static const endPointType:Array = new Array(); public static const levelSpace:Array = new Array(); public static var pinJointFree:String = "pinJointFree"; public static var currentLevel:Level; public static var springFree:String = "springFree"; public static var staticRectH:String = "staticRectH"; public static var moveDoor:String = "moveDoor"; public static var targetButton:String = "targetButton"; public static var staticRectV:String = "staticRectV"; public static var rotateDoor:String = "rotateDoor"; public static var door:String = "door"; private static var degToRad:Number = 0.0174532925199433; public static var cooler:String = "cooler"; public static var boobleMan:String = "boobleMan"; public static var gravitation:String = "gravitation"; public static var jumper:String = "jumper"; public static var staticCircle:String = "staticCircle"; public static var rotateRect:String = "rotateRect"; public static var magnit:String = "magnit"; public static var elevator:String = "elevator"; public static var freeElement:String = "free"; public static var staticRect:String = "staticRect"; public static var pinJoint:String = "pinJoint"; private static function addRotationShapes(_arg1:MovieClip, _arg2:Level, _arg3:Sprite):void{ var _local5:MovieClip; var _local6:PhysicsData; var _local7:RotateRect; var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); _local6 = (_local5["pdata"]) ? Utils.parsePhysicsData(_local5["pdata"].text) : null; _local7 = new RotateRect(_local5, _local6); _arg2.levelElements.push(_local7); _arg3.addChild(_local7); _local4++; }; } private static function addCoolers(_arg1:MovieClip, _arg2:Level, _arg3:Sprite):void{ var _local5:MovieClip; var _local6:Cooler; var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); _local6 = new Cooler(_local5); _arg2.levelElements.push(_local6); _arg3.addChild(_local6); _local4++; }; } private static function addLevelElement(_arg1:MovieClip, _arg2:Level):ILevelElement{ var _local3:PhysicsData = Utils.parsePhysicsData(_arg1["pdata"].text); var _local4:ILevelElement; switch (_local3.type){ case targetButton: _local4 = new TargetButton(_arg1, _local3); break; case rotateDoor: _local4 = new RotateDoor(_arg1, _local3); break; case pinJoint: _local4 = new PinJointElement(_arg1, _local3); break; case elevator: _local4 = new Elevator(_arg1, _local3); break; case jumper: _local4 = new Jumper(_arg1, _local3); break; case door: _local4 = new Door(_arg1, _local3); break; case gravitation: _local4 = new GravitationManager(_arg1, _local3); break; case cooler: _local4 = new Cooler(_arg1, _local3); break; case rotateRect: _local4 = new RotateRect(_arg1, _local3); break; case freeElement: _local4 = new FreeElement(_arg1, _local3); _arg2.freeElements.push(_local4); break; case pinJointFree: _local4 = new PinJointFree(_arg1, _local3); _arg2.joints.push(_local4); break; case springFree: _local4 = new SpringFree(_arg1, _local3); _arg2.springs.push(_local4); break; case magnit: _local4 = new Magnit(_arg1, _local3); break; }; if (!_local4){ throw (new Error(("element not found -" + _local3.type))); }; _arg2.levelElements[_arg1.name] = _local4; if (_local3.material){ switch (_local3.material){ case "metal": _arg2.metalElements.push(_local4); break; }; }; return (_local4); } private static function addStaticCircles(_arg1:MovieClip, _arg2:Level, _arg3:Sprite):void{ var _local5:MovieClip; var _local6:PhysicsData; var _local7:StaticCircle; var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); _local6 = (_local5["pdata"]) ? Utils.parsePhysicsData(_local5["pdata"].text) : null; _local7 = new StaticCircle(_local5, _local6); _arg2.staticCirclesArr.push(_local7); _arg3.addChild(_local7); _local4++; }; } public static function getEndPointType():String{ if (endPointType[("level" + Global.model.currentLevelNum)]){ return (endPointType[("level" + Global.model.currentLevelNum)]); }; return ("static"); } private static function addStaticShapes(_arg1:MovieClip, _arg2:Level, _arg3:Sprite):void{ var _local5:MovieClip; var _local6:PhysicsData; var _local7:StaticRect; var _local4:int; while (_local4 < _arg1.numChildren) { _local5 = (_arg1.getChildAt(_local4) as MovieClip); if (((!(_local5)) || ((_local5.name == "levelBorder")))){ } else { _local6 = (_local5["pdata"]) ? Utils.parsePhysicsData(_local5["pdata"].text) : null; _local7 = new StaticRect(_local5, _local6); _arg2.staticRectsArr.push(_local7); _arg3.addChild(_local7); }; _local4++; }; } public static function getDefaultMaterial(_arg1:String):Material{ var _local2:Array; if (defaultMaterial[("level" + Global.model.currentLevelNum)]){ _local2 = defaultMaterial[("level" + Global.model.currentLevelNum)][_arg1]; }; if (!_local2){ _local2 = defaultMaterial["default"][_arg1]; }; if (!_local2){ throw (new Error(("material not foud -" + _arg1))); }; return (new Material(_local2[0], _local2[1], _local2[2])); } public static function createLevel(_arg1:int):Level{ var _local14:MovieClip; var _local15:MovieClip; var _local16:String; var _local17:ILevelElement; var _local18:MovieClip; var _local19:Array; var _local20:MovieClip; var _local21:PhysicsData; var _local2:Level = new Level(_arg1); var _local3:Class = Lib.getItem(("Level" + _arg1.toString())); var _local4:MovieClip = new (_local3); var _local5:Array = new Array(); var _local6:MovieClip = _local4["rotationShapes"]; if (_local6){ _local2.rotationShapes = new Sprite(); addRotationShapes(_local6, _local2, _local2.rotationShapes); _local5.push({ch:_local2.rotationShapes, index:_local4.getChildIndex(_local6)}); }; var _local7:MovieClip = _local4["staticCircles"]; if (_local7){ _local2.staticCircles = new Sprite(); addStaticCircles(_local7, _local2, _local2.staticCircles); _local5.push({ch:_local2.staticCircles, index:_local4.getChildIndex(_local7)}); }; var _local8:MovieClip = _local4["staticShapes"]; if (_local8){ _local2.staticRects = new Sprite(); addStaticShapes(_local8, _local2, _local2.staticRects); _local5.push({ch:_local2.staticRects, index:_local4.getChildIndex(_local8)}); _local14 = _local8["levelBorder"]; if (_local14){ addStaticShapes(_local14, _local2, _local2.staticRects); }; }; var _local9:MovieClip = _local4["coolers"]; if (_local9){ _local2.coolers = new Sprite(); addCoolers(_local9, _local2, _local2.coolers); _local5.push({ch:_local2.coolers, index:_local4.getChildIndex(_local9)}); }; var _local10:EndPoint = new EndPoint(_local4["endPoint"]); var _local11:int; while (_local11 < _local4.numChildren) { _local15 = (_local4.getChildAt(_local11) as MovieClip); if (!_local15){ } else { _local16 = _local15.name.substr(0, 2); if (_local16 == "bg"){ _local15.y++; _local15.cacheAsBitmap = true; _local15.mouseEnabled = false; _local15.mouseChildren = false; _local2.backgrounds.push(_local15); _local5.push({ch:_local15, index:_local11}); }; }; _local11++; }; _local5.push({ch:_local10, index:_local4.getChildIndex(_local4["endPoint"])}); _local11 = 0; while (_local11 < _local4.numChildren) { _local15 = (_local4.getChildAt(_local11) as MovieClip); if (!_local15){ } else { if (_local15["pdata"]){ _local17 = addLevelElement(_local15, _local2); _local5.push({ch:_local17, index:_local11}); }; }; _local11++; }; if (_arg1 == 1){ _local18 = _local4["bg_help"]; _local19 = [_local18["mc0"], _local18["mc1"], _local18["mc2"], _local18["mc3"], _local18["mc4"], _local18["mc5"], _local18["mc6"], _local18["mc7"], _local18["mc8"], _local18["mc9"]]; for each (_local20 in _local19) { _local20.stop(); _local20.visible = false; }; _local19[Global.model.language].visible = true; }; _local2.levelElements.push(_local10); _local5.sortOn("index"); _local11 = 0; while (_local11 < _local5.length) { _local2.addChild(_local5[_local11].ch); _local11++; }; var _local12:MovieClip = _local4["startPosition"]; var _local13:BoobleManMan = new BoobleManMan(_local12); if (_local4["levelData"]){ _local21 = Utils.parsePhysicsData(_local4["levelData"].text); _local2.levelData = _local21; }; _local2.addChild(_local13); _local2.boobleMan = _local13; _local2.endPoint = _local10; _local2.num = _arg1; return (_local2); } defaultMaterial["default"] = {boobleMan:[0.4, 4, 2], rotateRect:[0.5, 6, 2], staticRect:[0.5, 4, 2], staticRectH:[0.5, 4, 2], staticRectV:[0.5, 4, 2], staticCircle:[0.5, 4, 2], targetButton:[0.5, 4, 2], staticCircle:[0.5, 4, 2], elevator:[0.5, 4, 2], jumper:[8, 4, 2], pinJoint:[0.5, 4, 2], free:[0.1, 1, 2], magnit:[0, 1, 2]}; defaultMaterial["level3"] = {rotateRect:[0.5, 4, 2], staticRectH:[0.5, 1, 2], rotateDoor:[0.5, 4, 2], staticCircle:[0.5, 4, 2]}; defaultMaterial["level14"] = {boobleMan:[0.7, 4, 2]}; defaultMaterial["level16"] = {free:[0.3, 0.5, 2], jumper:[6, 4, 2]}; defaultMaterial["level19"] = {jumper:[5, 4, 2]}; defaultMaterial["level21"] = {free:[0.1, 0.8, 2]}; defaultMaterial["level25"] = {jumper:[5, 4, 2]}; defaultMaterial["level27"] = {jumper:[4, 4, 2]}; defaultMaterial["level33"] = {staticRect:[0.5, 2, 2]}; defaultMaterial["level34"] = {rotateRect:[0.5, 4, 2], staticRectH:[0.5, 1, 2], rotateDoor:[0.5, 4, 2], staticCircle:[0.5, 4, 2]}; defaultMaterial["level35"] = {jumper:[4, 4, 2]}; defaultMaterial["level38"] = {jumper:[4, 4, 2]}; endPointType["level42"] = "dynamic"; defaultMaterial["level46"] = {jumper:[5, 4, 2]}; endPointType["level49"] = "dynamic"; defaultMaterial["level50"] = {free:[0.1, 1, 2]}; } }//package
Section 286
//Lib (Lib) package { import flash.events.*; import flash.display.*; import flash.text.*; public class Lib extends Sprite { private static var callBack:Function = null; public static var anifont:Class; public static var Resources:Class = Lib_Resources; private static var externalLoader:Loader = new Loader(); public static var aniFont:Font; public static var list:Array = new Array(); private static var libLoader:Loader = new Loader(); public static var Century2:Class; public static var Century3:Class; public function Lib():void{ } public static function init(_arg1:Function):void{ libLoader.contentLoaderInfo.addEventListener(Event.INIT, resourceInitHandler); libLoader.loadBytes(new Resources()); callBack = _arg1; } public static function getItem(_arg1:String):Class{ return ((libLoader.content.loaderInfo.applicationDomain.getDefinition(_arg1) as Class)); } private static function resourceInitHandler(_arg1:Event):void{ if (callBack != null){ callBack(); }; } } }//package
Section 287
//Lib_Resources (Lib_Resources) package { import mx.core.*; public class Lib_Resources extends ByteArrayAsset { } }//package
Section 288
//LinksManager (LinksManager) package { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.*; import com.google.analytics.*; import flash.utils.*; import CPMStar.*; public class LinksManager { public static const cpmStarPreID:String = "365Q8FB985B8"; public static const cpmStarInterId:String = "366Q1E2031D2"; public static const _mochiads_game_id:String = "88c8a05ae12fe347"; public static var mochiadShow:Boolean = false; public static var cpmTimer:Timer = new Timer(10000, 1); private static var readyFunc:Function; public static var isAdShow:Boolean = false; public static var showAdFlag:Boolean = true; private static var loader:Preloader; private static var mochiTimer:Timer = new Timer(((1000 * 60) * 6)); public static var isKongregate:Boolean = false; public static var adwasShoven:Boolean = false; public static var cpmStarShow:Boolean = false; private static var cpmadClip:DisplayObject; public static var adFinished:Boolean = false; private static var preloaderAd:Boolean; private static var cpmAdType:String; public static var gAtracker:GATracker; private static var canStar:Boolean = true; public static var domain:String; private static var canJacket:Boolean = true; public static var gamejackectShow:Boolean = false; private static var canMochi:Boolean = true; public static var cpmTimerInter:Timer = new Timer(((1000 * 60) * 4)); private static var lastAd:String; private static var preloaderClip:MovieClip; private static var currentAdClip:MovieClip; private static var animFunc:Function; public static var adType:String = "unknown"; public static function showAd(_arg1:MovieClip, _arg2:Boolean=false, _arg3:int=0):void{ var mochi:Boolean; var cpmstar:Boolean; var jacket:Boolean; var myOptions:Object; var adOptions:Object; var clip = _arg1; var pre = _arg2; var type = _arg3; currentAdClip = clip; preloaderAd = pre; adwasShoven = true; adFinished = false; var n:int = Math.floor((Math.random() * 100)); if (type == 0){ mochi = (n < 60); cpmstar = !(mochi); } else { mochi = (type == 1); cpmstar = (type == 2); }; if (!preloaderAd){ if (((((!(canMochi)) && (canJacket))) && (mochi))){ mochi = false; jacket = true; }; if (((((!(canJacket)) && (canJacket))) && (jacket))){ mochi = true; jacket = false; }; }; trace("ad type=", mochi, cpmstar, ("preloader=" + preloaderAd)); if (((((preloaderAd) && (mochi))) && (canMochi))){ trace("startShow Pre Mochi"); myOptions = {id:_mochiads_game_id, res:"336x280", clip:clip, color:26265, background:0x333333, outline:0xFFFFFF, no_progress_bar:true, ad_finished:function ():void{ Preloader.loader.adFinished = true; }, ad_failed:mochiPreFaild, ad_skipped:mochiPreSkipped}; MochiAd.showPreGameAd(myOptions); canMochi = false; mochiTimer.start(); adType = "mochi"; isAdShow = true; return; }; if (((((preloaderAd) && (cpmstar))) && (canStar))){ trace("start CMPSTAR PRELOADER"); cpmadClip = new AdLoader(cpmStarPreID, cpmStarPreFaild); clip.addChild(cpmadClip); canStar = false; cpmAdType = "preloader"; cpmTimer.delay = 15000; cpmTimer.start(); cpmTimerInter.start(); adType = "cpmStar"; isAdShow = true; return; }; if (((canMochi) && (mochi))){ trace("show interlevel"); myOptions = {id:_mochiads_game_id, res:"336x280", clip:clip, color:26265, background:0x333333, outline:0xFFFFFF, no_progress_bar:true, ad_finished:interMochiFinished, ad_failed:interMochiFaild, ad_skipped:interMochiSkipped}; MochiAd.showInterLevelAd(myOptions); canMochi = false; preloaderAd = false; mochiTimer.start(); adType = "mochi"; isAdShow = true; return; }; if (((cpmstar) && (canStar))){ trace("start inter CPM"); cpmadClip = new AdLoader(cpmStarInterId, cpmStarInterFaild); clip.addChild(cpmadClip); cpmadClip.x = 18; cpmadClip.y = 15; canStar = false; cpmAdType = "inter"; cpmTimer.delay = 9000; cpmTimer.start(); cpmTimerInter.start(); preloaderAd = false; adType = "cpmStar"; isAdShow = true; return; }; Preloader.loader.adFinished = true; animFunc(); } public static function hideAdClip():void{ if (cpmadClip){ if (cpmadClip.parent){ cpmadClip.parent.removeChild(cpmadClip); cpmadClip = null; }; }; } public static function init(_arg1:Preloader):void{ loader = _arg1; mochiTimer.addEventListener(TimerEvent.TIMER, onMochiTimer); cpmTimer.addEventListener(TimerEvent.TIMER, onCpmTimer); cpmTimerInter.addEventListener(TimerEvent.TIMER, onCpmInterTimer); isKongregate = (domain == "kongregate.com"); checkDomain(); if (isKongregate){ loader.kongregate = new KongregateAPI(); Preloader.kongregate = loader.kongregate; loader.addChild(Preloader.kongregate); showAdFlag = false; }; if (showAdFlag){ showAd(loader.adClip, true); loader.freeLogo.visible = false; loader.adLogo.visible = true; loader.adLogo.alpha = 1; } else { loader.adFinished = true; loader.adClip["bg"].visible = false; loader.adClip.visible = false; loader.adLogo.visible = false; loader.freeLogo.visible = true; loader.freeLogo.alpha = 1; }; } private static function interMochiSkipped():void{ trace("inter mochi skipped"); readyFunc(); preloaderClip.stop(); preloaderClip.visible = false; isAdShow = false; adFinished = true; } private static function mochiPreFaild():void{ showAd(currentAdClip, preloaderAd, 2); trace("mochiPreFaild"); isAdShow = false; adFinished = true; } private static function onCpmTimer(_arg1:TimerEvent):void{ isAdShow = false; adFinished = true; if (cpmAdType == "preloader"){ Preloader.loader.adFinished = true; adFinished = true; } else { trace("cmp finished"); adFinished = true; if (readyFunc != null){ readyFunc(); }; if (preloaderClip){ preloaderClip.stop(); preloaderClip.visible = false; }; if (currentAdClip){ currentAdClip.removeChild(cpmadClip); }; }; } private static function cpmStarInterFaild():void{ trace("cpm star inter faild"); readyFunc(); preloaderClip.stop(); preloaderClip.visible = false; cpmTimerInter.stop(); isAdShow = false; adFinished = true; } private static function cpmStarPreFaild():void{ showAd(currentAdClip, preloaderAd, 1); isAdShow = false; adFinished = true; } private static function interMochiFinished():void{ trace("inter Mochi Finished"); readyFunc(); preloaderClip.stop(); preloaderClip.visible = false; isAdShow = false; adFinished = true; } private static function interMochiFaild():void{ trace("interMochi Faild"); readyFunc(); preloaderClip.stop(); preloaderClip.visible = false; mochiTimer.stop(); isAdShow = false; adFinished = true; } private static function onMochiTimer(_arg1:TimerEvent):void{ canMochi = true; mochiTimer.stop(); trace("canMochi"); } private static function checkDomain():void{ if (domain == "kongregate.com"){ showAdFlag = false; }; } private static function mochiPreSkipped():void{ showAd(currentAdClip, preloaderAd, 2); trace("mochiPre Skipped"); isAdShow = false; adFinished = true; } public static function resultWindow(_arg1:MovieClip, _arg2:Function, _arg3:Number, _arg4:Function, _arg5:MovieClip):void{ animFunc = _arg2; preloaderClip = _arg5; readyFunc = _arg4; if (!showAdFlag){ animFunc(); return; }; if (_arg3 < 4){ animFunc(); } else { if (adwasShoven){ animFunc(); } else { showAd(_arg1); }; }; } private static function onCpmInterTimer(_arg1:TimerEvent):void{ canStar = true; trace("can starrr"); cpmTimerInter.stop(); } public static function saveClickStat(_arg1:String, _arg2:String=""):void{ if (_arg2 == "ad"){ gAtracker.trackPageview((("/AD/" + _arg1) + _arg2)); } else { gAtracker.trackPageview((("/BubbleQuod/" + _arg1) + _arg2)); }; } } }//package
Section 289
//Loading_mc (Loading_mc) package { import flash.display.*; import flash.text.*; public dynamic class Loading_mc extends MovieClip { public var bytesTxt:TextField; public var perTxt:TextField; public var adClip:MovieClip; public var bar:MovieClip; public var playMessage:MovieClip; public var freeLogo:MovieClip; public var adLogo:MovieClip; } }//package
Section 290
//Main (Main) package { import flash.events.*; import flash.display.*; import flash.geom.*; import flash.utils.*; import lt.uza.utils.*; public class Main extends Sprite { public var $:GlobalC; private var appFrameRate:int;// = 30 private var s:int; private var currentFrameRate:Number; private var t:int; public function Main():void{ if (stage){ init(); } else { addEventListener(Event.ADDED_TO_STAGE, init); }; } private function onEnterFrame(_arg1:Event):void{ s++; if (!(s = (s % stage.frameRate))){ currentFrameRate = Math.round(((stage.frameRate * 1000) / (getTimer() - t))); t = getTimer(); if ((((currentFrameRate < (appFrameRate - 1))) && ((stage.frameRate < 40)))){ stage.frameRate++; }; if (currentFrameRate > (appFrameRate + 1)){ stage.frameRate--; }; }; } override public function toString():String{ return ("\"BoobleQuad\" Martynuyk Sergey 902studio@gmail.com"); } private function frameRateControl():void{ t = getTimer(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function init(_arg1:Event=null):void{ $ = Preloader.$; removeEventListener(Event.ADDED_TO_STAGE, init); Global.initialize(this); addChild(Global.view); frameRateControl(); this.scrollRect = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight); Global.trace(stage.loaderInfo.url); Global.trace(stage.loaderInfo.loaderURL); } } }//package
Section 291
//MochiAd (MochiAd) package { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; import flash.utils.*; public class MochiAd { public static function getVersion():String{ return ("2.7"); } public static function showClickAwayAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; var sendHostProgress:Boolean; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String = _arg1.split("/")[2].split(":")[0]; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; var _local1:Object = this.parent._mochiad_ctr; var _local2:Number = (getTimer() - this.started); var _local3:Boolean; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; var _local3:Object = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!"); }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; var idx:Number = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var clip:Object; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; var DEFAULTS:Object = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; var depth:Number = options.depth; delete options.depth; var mc:MovieClip = createEmptyMovieClip(clip, "_mochiad", depth); var wh:Array = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; }; var lv:URLVariables = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local6:Array; var _local3:Object = _arg2.getBounds(_arg2.root); var _local4:Number = 0; var _local5:Number = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array = _arg2.split("."); var _local4:Number = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; default: trace(("[mochiads rpc] unknown rpc id: " + _arg3.id)); }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array = _arg2.split("."); var _local5:Number = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var clip:Object; var mc:MovieClip; var chk:MovieClip; var complete:Boolean; var unloaded:Boolean; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; var DEFAULTS:Object = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ trace("[MochiAd] Couldn't load an ad, make sure your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software"); }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; var ad_msec:Number = 11000; var ad_timeout:Number = options.ad_timeout; delete options.ad_timeout; var fadeout_time:Number = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); var fn:Function = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; var wh:Array = MochiAd._getRes(options, clip); var w:Number = wh[0]; var h:Number = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); var bar:MovieClip = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; var bar_color:Number = options.color; delete options.color; var bar_background:Number = options.background; delete options.background; var bar_outline:Number = options.outline; delete options.outline; var backing_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 1); var backing:Object = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); var inside_mc:MovieClip = createEmptyMovieClip(bar, "_inside", 2); var inside:Object = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; var outline_mc:MovieClip = createEmptyMovieClip(bar, "_outline", 3); var outline:Object = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; var f:Function = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ trace(("[MOCHIAD rpcTestFn] " + _arg1)); return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; var _local1:Object = this.parent.parent.root; var _local2:Object = this.parent._mochiad_ctr; var _local3:Number = (getTimer() - this.started); var _local4:Boolean; var _local5:Number = _local1.loaderInfo.bytesTotal; var _local6:Number = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; var _local7:Number = ((100 * _local6) / _local5); var _local8:Number = ((100 * _local3) / chk.ad_msec); var _local9:Object = this._mochiad_bar._inside; var _local10:Number = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0"); MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0"); MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var mc = _arg1; var f:Function = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package
Section 292
//MochiBot (MochiBot) package { import flash.events.*; import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ if (Security.sandboxType == "localWithFile"){ return (null); }; var _local3:MochiBot = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); var _local4 = "http://core.mochibot.com/my/core.swf"; var _local5:URLVariables = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; var _local6:String = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; var _local7:URLRequest = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; var _local8:Loader = new Loader(); _local3.addChild(_local8); _local8.load(_local7); _local8.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadError); return (_local3); } private static function onLoadError(_arg1:IOErrorEvent):void{ trace("MochiLoadError-----------------------------------------"); } } }//package
Section 293
//Model (Model) package { import view.*; import model.*; import flash.system.*; import flash.text.*; import flash.net.*; import commands.*; public class Model { private var sharedObject:SharedObject; public var mochiAd:Boolean;// = true public var lngGer:int;// = 8 public var currentLevel:Level; public var kongUrl:String;// = "http://www.kongregate.com/?gamereferral=bubblequod" public var userData:UserData; public var gameName:String;// = "BubbleQuod" public var lngPol:int;// = 6 public var isKongregate:Boolean;// = false public var kongBubbleUrl:String;// = "http://www.kongregate.com/games/garbuzgames/bubblequod/?gamereferral=bubblequod" private var finishing:Boolean;// = false public var lngRus:int;// = 7 public var lngJap:int;// = 2 public var gameMode:Boolean;// = true private var _language:int;// = 0 public var studioUrl:String;// = "http://garbuz-studio.com" public var lngUkr:int;// = 9 public var lngChi:int;// = 1 public var adShow:Boolean;// = true private var _messages:Messages; public var timer:LevelTimer; public var lngPort:int;// = 3 public var lngFra:int;// = 5 public var garnuzGamesUrl:String;// = "http://garbuzgames.com" public var aniFont:Annifont; public var lngSpa:int;// = 4 public var totalLevelCount:int;// = 50 public var comicFont:ComicFont; public var isGuest:Boolean;// = true public var version:String;// = "1.8" public var chobotsUrl:String;// = "http://www.chobots.com/?src=gar&cid=k1" public var gameDomain:String;// = "local" public var gameJacket:Boolean;// = true public var playerVersion:int; public var _mochiads_game_id:String; public var levelCounts:int;// = 2 public var comletedLevel:int; public var dataPath:String;// = "garbuz-studio.com" public var tectonFont:TectonFont; public var restarting:Boolean;// = false public var hansFont:HansFont; public var userName:String;// = "User" public var lngEng:int;// = 0 public var currentLevelNum:int;// = 1 public function Model(){ timer = new LevelTimer(); aniFont = new Annifont(); comicFont = new ComicFont(); hansFont = new HansFont(); tectonFont = new TectonFont(); super(); } public function initialize():void{ if (Global.kongregate){ isGuest = (Global.kongregate.user.getName() == "Guest"); Global.trace(("isGuest=" + isGuest)); } else { isGuest = true; }; sharedObject = SharedObject.getLocal(gameName); if (!sharedObject.data.userData){ userData = new UserData(); sharedObject.data.userData = userData; sharedObject.flush(); } else { userData = new UserData(sharedObject.data.userData); sharedObject.data.userData = userData; }; gameDomain = Preloader.gameDomain; _messages = new Messages(); _messages.init(Global.stage); switch (Capabilities.language){ case "en": language = lngEng; break; case "zh-CN": language = lngChi; break; case "zh-TW": language = lngChi; break; case "ja": language = lngJap; break; case "pt": language = lngPort; break; case "es": language = lngSpa; break; case "fr": language = lngFra; break; case "pl": language = lngPol; break; case "ru": language = lngRus; break; case "de": language = lngGer; break; default: language = lngEng; break; }; Font.registerFont(HansFont); Font.registerFont(Annifont); Font.registerFont(ComicFont); Font.registerFont(TectonFont); var _local1:String = Capabilities.version; playerVersion = int(_local1.substring(_local1.indexOf(" "), _local1.indexOf(","))); } public function finishLevel():void{ if (finishing){ return; }; finishing = true; if (userData.lastLevel <= currentLevelNum){ userData.lastLevel = (currentLevelNum + 1); }; userData.levelTimes[currentLevelNum] = timer.currentTime; sharedObject.flush(); userData.levelPoints[currentLevelNum] = Math.floor(((1 / timer.currentTime) * 100000)); userData.levelsPass[currentLevelNum] = true; userData.points = 0; var _local1:int; while (_local1 < userData.levelPoints.length) { if (userData.levelPoints[_local1]){ userData.points = (userData.points + userData.levelPoints[_local1]); }; _local1++; }; if (!isGuest){ if (LinksManager.isKongregate){ if (gameMode){ Global.trace(userData.points); Global.kongregate.scores.submit(userData.points, "Score_"); } else { Global.kongregate.scores.submit(userData.points, "Score_hard"); }; Global.kongregate.scores.submit(currentLevelNum, "Level_"); }; }; onEndLevel(); } private function onEndLevel():void{ new ShowResultsWindowCommand(nextLevel).execute(); new EndLevelCommand().execute(); Global.gAtracker.trackPageview(((Global.model.gameName + "/level") + currentLevelNum)); finishing = false; } public function newGame():void{ userData = new UserData(); sharedObject.data.userData = userData; sharedObject.flush(); } public function set language(_arg1:int):void{ _language = _arg1; _messages.setLanguage(_arg1); } public function get messages():Messages{ return (_messages); } public function createAllLevels():void{ var _local1:int; while (_local1 < 44) { userData.levelsPass[_local1] = true; _local1++; }; } public function get language():int{ return (_language); } public function nextLevel():void{ if (currentLevelNum < totalLevelCount){ new StartLevelCommand((currentLevelNum + 1)).execute(); } else { new ShowFinishCommand().execute(); }; } } }//package
Section 294
//new_sound_21 (new_sound_21) package { import flash.media.*; public dynamic class new_sound_21 extends Sound { } }//package
Section 295
//new_sound_22 (new_sound_22) package { import flash.media.*; public dynamic class new_sound_22 extends Sound { } }//package
Section 296
//new_sound_23 (new_sound_23) package { import flash.media.*; public dynamic class new_sound_23 extends Sound { } }//package
Section 297
//new_sound_24 (new_sound_24) package { import flash.media.*; public dynamic class new_sound_24 extends Sound { } }//package
Section 298
//new_sound_25 (new_sound_25) package { import flash.media.*; public dynamic class new_sound_25 extends Sound { } }//package
Section 299
//obryv_1 (obryv_1) package { import flash.media.*; public dynamic class obryv_1 extends Sound { } }//package
Section 300
//obryv_2 (obryv_2) package { import flash.media.*; public dynamic class obryv_2 extends Sound { } }//package
Section 301
//obryv_3 (obryv_3) package { import flash.media.*; public dynamic class obryv_3 extends Sound { } }//package
Section 302
//obryv_4 (obryv_4) package { import flash.media.*; public dynamic class obryv_4 extends Sound { } }//package
Section 303
//open_close_door (open_close_door) package { import flash.media.*; public dynamic class open_close_door extends Sound { } }//package
Section 304
//perepony4_up (perepony4_up) package { import flash.media.*; public dynamic class perepony4_up extends Sound { } }//package
Section 305
//perepony6 (perepony6) package { import flash.media.*; public dynamic class perepony6 extends Sound { } }//package
Section 306
//perepony6_1 (perepony6_1) package { import flash.media.*; public dynamic class perepony6_1 extends Sound { } }//package
Section 307
//perepony6_2 (perepony6_2) package { import flash.media.*; public dynamic class perepony6_2 extends Sound { } }//package
Section 308
//perepony6_6 (perepony6_6) package { import flash.media.*; public dynamic class perepony6_6 extends Sound { } }//package
Section 309
//perepony7_1 (perepony7_1) package { import flash.media.*; public dynamic class perepony7_1 extends Sound { } }//package
Section 310
//perepony7_10 (perepony7_10) package { import flash.media.*; public dynamic class perepony7_10 extends Sound { } }//package
Section 311
//perepony7_15 (perepony7_15) package { import flash.media.*; public dynamic class perepony7_15 extends Sound { } }//package
Section 312
//perepony7_4 (perepony7_4) package { import flash.media.*; public dynamic class perepony7_4 extends Sound { } }//package
Section 313
//perepony7_9 (perepony7_9) package { import flash.media.*; public dynamic class perepony7_9 extends Sound { } }//package
Section 314
//Preloader (Preloader) package { import flash.events.*; import flash.display.*; import com.kongregate.as3.client.*; import lt.uza.utils.*; import flash.net.*; import com.google.analytics.*; import flash.text.*; import flash.utils.*; import flash.geom.*; import flash.external.*; import flash.ui.*; public class Preloader extends MovieClip { private var bytesTxt:TextField; public var adLogo:MovieClip; public var adSkipped:Boolean;// = false public var perTxt:TextField; public var adClip:MovieClip; public var $:GlobalC; private var percentLoaded:Number; public var playMessage:MovieClip; public var progresBar:MovieClip; public var freeLogo:MovieClip; public var garbuzBtn:MovieClip; public var adFailed:Boolean;// = false public var domain:String;// = "" private var bg:MovieClip; public var adFinished:Boolean;// = false public var kongregate:KongregateAPI; private var libLoader:Loader; public var gaTracker:GATracker; public var kongBtn:MovieClip; public static var $:GlobalC; public static var gameDomain:String; public static var loader:Preloader; public static var kongregate:KongregateAPI; public static var gaTracker:GATracker; public function Preloader(){ libLoader = new Loader(); bg = new Loading_mc(); $ = GlobalC.init(); super(); this.scrollRect = new Rectangle(0, 0, 670, 450); addEventListener(Event.ADDED_TO_STAGE, init); Preloader.loader = this; } private function init(_arg1:Event=null):void{ var e = _arg1; addEventListener(Event.ENTER_FRAME, checkFrame); $.stage = this.stage; $.console = new Console(); Preloader.$ = $; Preloader.gaTracker = new GATracker(this.stage, "UA-6882297-1", "AS3", false); gaTracker = Preloader.gaTracker; addChild(bg); bg.visible = false; var url:String = stage.loaderInfo.loaderURL; var urlStart:int = (url.indexOf("://") + 3); var urlEnd:int = url.indexOf("/", urlStart); domain = url.substring(urlStart, urlEnd); var LastDot:int = (domain.lastIndexOf(".") - 1); var domEnd:int = (domain.lastIndexOf(".", LastDot) + 1); domain = domain.substring(domEnd, domain.length); print(("domainloaderUrl=" + domain)); try { url = String(ExternalInterface.call("function(){ var afk = document.location.href; return afk; }")); urlStart = (url.indexOf("://") + 3); urlEnd = url.indexOf("/", urlStart); domain = url.substring(urlStart, urlEnd); LastDot = (domain.lastIndexOf(".") - 1); domEnd = (domain.lastIndexOf(".", LastDot) + 1); domain = domain.substring(domEnd, domain.length); print(("domainExternal=" + domain)); } catch(e:Error) { print(e); }; Preloader.gameDomain = ((domain.length)>0) ? domain : "local"; Preloader.gaTracker.trackPageview("/BubbleQuod/start"); LinksManager.domain = Preloader.gameDomain; LinksManager.gAtracker = Preloader.gaTracker; MochiBot.track(this, "09563f05"); progresBar = bg["bar"]["bar"]; progresBar.scaleX = 0; perTxt = bg["perTxt"]; perTxt.text = "00%"; playMessage = bg["playMessage"]; bytesTxt = bg["bytesTxt"]; bytesTxt.text = "0"; kongBtn = bg["adLogo"]["kongBtn"]; garbuzBtn = bg["adLogo"]["garbBtn"]; adClip = bg["adClip"]; adClip["bg"].visible = false; freeLogo = bg["freeLogo"]; adLogo = bg["adLogo"]; kongBtn.useHandCursor = true; garbuzBtn.useHandCursor = true; kongBtn.buttonMode = true; garbuzBtn.buttonMode = true; kongBtn.addEventListener(MouseEvent.MOUSE_DOWN, onKong); garbuzBtn.addEventListener(MouseEvent.MOUSE_DOWN, onGarbuz); adClip.addEventListener(MouseEvent.MOUSE_DOWN, onAddClick); freeLogo.visible = false; adLogo.visible = false; LinksManager.init(this); bg.visible = true; var conMenu:ContextMenu = new ContextMenu(); conMenu.hideBuiltInItems(); var defaultItems:ContextMenuBuiltInItems = conMenu.builtInItems; defaultItems.print = true; defaultItems.quality = true; var item:ContextMenuItem = new ContextMenuItem("http://garbuz-studio.com"); conMenu.customItems.push(item); item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuItemSelectHandler); this.contextMenu = conMenu; this.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onPreIoError); } private function onKong(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.kongregate.com/games/garbuzgames/bubblequod/?gamereferral=bubblequod")); LinksManager.saveClickStat("Preloader_", "kongregate"); } private function onPreIoError(_arg1:IOErrorEvent):void{ } private function print(_arg1):void{ $.console.trace(_arg1); } private function menuItemSelectHandler(_arg1:ContextMenuEvent):void{ navigateToURL(new URLRequest("http://garbuz-studio.com")); LinksManager.saveClickStat("contexMenu_", "garbuz_studio"); } private function onMessageClick(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://www.kongregate.com/games/garbuzgames/bubblequod/?gamereferral=bubblequod")); LinksManager.saveClickStat("Preloader_", "kongregate"); } public function showMessage():void{ playMessage.alpha = 1; playMessage.visible = true; playMessage.buttonMode = true; playMessage.addEventListener(MouseEvent.MOUSE_DOWN, onMessageClick); } private function checkAd():void{ if (((((adFinished) || (adSkipped))) || (adFailed))){ removeEventListener(Event.ENTER_FRAME, checkFrame); startup(); }; } private function checkFrame(_arg1:Event):void{ var _local2:Number = Math.floor(((loaderInfo.bytesLoaded / loaderInfo.bytesTotal) * 100)); if (percentLoaded != _local2){ percentLoaded = _local2; refresh(); }; if (currentFrame == totalFrames){ checkAd(); }; } public function refresh():void{ if (percentLoaded == 100){ return; }; var _local1:String = percentLoaded.toString(); progresBar.scaleX = (percentLoaded / 100); perTxt.text = ((percentLoaded.toString().length)<2) ? (("0" + percentLoaded) + "%") : (percentLoaded + "%"); bytesTxt.text = ((loaderInfo.bytesTotal + "/") + loaderInfo.bytesLoaded); } private function onAddClick(_arg1:MouseEvent):void{ LinksManager.saveClickStat("AD_Preloader", LinksManager.adType); } private function onGarbuz(_arg1:MouseEvent):void{ navigateToURL(new URLRequest("http://garbuzgames.com")); LinksManager.saveClickStat("Preloader_", "garbuzgames"); } private function startup():void{ removeEventListener(Event.ENTER_FRAME, checkFrame); stop(); adClip.visible = false; while (adClip.numChildren) { adClip.removeChildAt(0); }; trace(adFinished, adFailed, adSkipped); if (this.parent != this.stage){ showMessage(); }; if ((((((domain == "crazymonkeygames.com")) || ((domain == "armorgames.com")))) || ((domain == "addictinggames.com")))){ showMessage(); }; var _local1:Class = (getDefinitionByName("Main") as Class); addChild((new (_local1) as DisplayObject)); bg.visible = false; } } }//package
Section 315
//Snd (Snd) package { import flash.events.*; import flash.media.*; import flash.utils.*; public class Snd { public static var _ventyljator:ventyljator = new ventyljator(); public static var _bubleEnd:bubleEnd = new bubleEnd(); private static var musicPlayFlag:Boolean = false; private static var obryvChannel:SoundChannel; public static var _gravitation:gravitation = new gravitation(); private static var waitTimeOut:Array = new Array(); public static var perep:Array = [new perepony4_up(), new perepony6(), new perepony6_1(), new perepony6_2(), new perepony6_6(), new perepony7_1(), new perepony7_10(), new perepony7_15(), new perepony7_4(), new perepony7_9()]; private static var soundTransform:SoundTransform; private static var rotateChannel:SoundChannel; public static var obryvy:Array = [new obryv_1(), new obryv_2(), new obryv_3(), new obryv_4()]; private static var waitEndFlag:Boolean = false; private static var currentMusic:Array = []; private static var currentMusicChannel:SoundChannel; private static var _volume:Number = 0.6; public static var _jump1:jump1 = new jump1(); public static var _jump2:jump2 = new jump2(); public static var _music1:new_sound_21 = new new_sound_21(); public static var _music2:new_sound_22 = new new_sound_22(); public static var _music3:new_sound_23 = new new_sound_23(); public static var _music4:new_sound_24 = new new_sound_24(); public static var _music5:new_sound_25 = new new_sound_25(); public static var _button:button = new button(); private static var startMusicTime:int; private static var _musicVolume:Number = 1; public static var _open_close_door:open_close_door = new open_close_door(); private static var musics:Array = [_music1, _music2, _music3, _music4, _music5]; private static var musicTimeOut:uint; private static var _mute:Boolean = false; private static function createMusic():Array{ var _local4:int; var _local1:int = (1 + Math.floor((Math.random() * 5))); var _local2:Array = new Array(); var _local3:int = Math.floor((Math.random() * musics.length)); while (_local1 > 0) { _local2.push(musics[_local3]); while (_local3 == _local4) { _local4 = Math.floor((Math.random() * musics.length)); }; _local3 = _local4; _local1--; }; return (_local2); } public static function init():void{ setMusic(); } public static function mute():void{ _mute = !(_mute); if (_mute){ clearTimeout(musicTimeOut); if (currentMusicChannel){ currentMusicChannel.stop(); }; while (waitTimeOut.length > 0) { clearInterval(waitTimeOut.shift()); }; } else { setMusic(); }; } private static function addVolume(_arg1:SoundChannel, _arg2:Number, _arg3:Number, _arg4:Object):void{ _arg1.soundTransform = new SoundTransform((_arg1.soundTransform.volume + _arg2)); if (_arg1.soundTransform.volume >= _arg3){ clearInterval(_arg4.interval); }; } private static function startVolumeControl(_arg1:Boolean, _arg2:Number=0):void{ var _local4:uint; var _local3:Object = {}; if (_arg1){ _local4 = setInterval(addVolume, 30, currentMusicChannel, (_musicVolume / 30), _musicVolume, _local3); _local3.interval = _local4; } else { _local4 = setInterval(waitEnd, 50, currentMusicChannel, _local3, _arg2); _local3.interval = _local4; waitTimeOut.push(_local4); }; } private static function waitEnd(_arg1:SoundChannel, _arg2:Object, _arg3:Number):void{ var _local4:Object; var _local5:uint; if (_arg1.position >= (_arg3 - 600)){ _local4 = {}; _local5 = setInterval(subVolume, 30, _arg1, (_musicVolume / 30), _musicVolume, _local4); _local4.interval = _local5; clearInterval(_arg2.interval); waitEndFlag = false; waitTimeOut.slice(waitTimeOut.indexOf(_arg2.interval)); }; } public static function play(_arg1:String):void{ var snd:Sound; var channel:SoundChannel; var str = _arg1; if (_mute){ return; }; try { snd = Snd[("_" + str)]; channel = snd.play(); channel.soundTransform = new SoundTransform(volume); } catch(e:Error) { }; } public static function set volume(_arg1:Number):void{ _volume = _arg1; } public static function get volume():Number{ return (_volume); } public static function obryv():void{ var snd:Sound; var channel:SoundChannel; if (_mute){ return; }; try { snd = obryvy[Math.floor((Math.random() * obryvy.length))]; channel = snd.play(); channel.soundTransform = new SoundTransform(volume); } catch(e:Error) { Global.trace(e.message); }; } public static function rotateRect():void{ var snd:Sound; if (((_mute) || (rotateChannel))){ return; }; try { snd = perep[Math.floor((Math.random() * perep.length))]; rotateChannel = snd.play(); rotateChannel.soundTransform = new SoundTransform(volume); rotateChannel.addEventListener(Event.SOUND_COMPLETE, onRotateComplete); } catch(e:Error) { Global.trace(e.message); }; } private static function onMusicComplete(_arg1:Event):void{ if (currentMusic.length > 0){ startMusic(); } else { setMusic(); }; } private static function setMusic():void{ startMusicTime = (1000 + Math.floor((Math.random() * 5000))); currentMusic = createMusic(); musicTimeOut = setTimeout(startMusic, startMusicTime, true); } private static function onRotateComplete(_arg1:Event):void{ rotateChannel = null; } private static function subVolume(_arg1:SoundChannel, _arg2:Number, _arg3:Number, _arg4:Object):void{ _arg1.soundTransform = new SoundTransform((_arg1.soundTransform.volume - _arg2)); if (_arg1.soundTransform.volume <= 0){ clearInterval(_arg4.interval); }; } private static function startMusic(_arg1:Boolean=false):void{ var snd:Sound; var first = _arg1; try { snd = currentMusic.shift(); currentMusicChannel = snd.play(); currentMusicChannel.addEventListener(Event.SOUND_COMPLETE, onMusicComplete); if (first){ currentMusicChannel.soundTransform = new SoundTransform(0); startVolumeControl(true); } else { if (currentMusic.length == 0){ currentMusicChannel.soundTransform = new SoundTransform(_musicVolume); startVolumeControl(false, snd.length); } else { currentMusicChannel.soundTransform = new SoundTransform(_musicVolume); }; }; } catch(e:Error) { Global.trace(e.message); }; } } }//package
Section 316
//TectonFont (TectonFont) package { import flash.text.*; public dynamic class TectonFont extends Font { } }//package
Section 317
//Utils (Utils) package { import model.*; import lib.utils.*; public class Utils { public static function randomInt(_arg1:int):int{ return (Math.floor((Math.random() * _arg1))); } public static function distanceQuad(_arg1:Object, _arg2:Object):Number{ return ((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y)))); } public static function distance(_arg1:Object, _arg2:Object):Number{ return (Math.sqrt((((_arg1.x - _arg2.x) * (_arg1.x - _arg2.x)) + ((_arg1.y - _arg2.y) * (_arg1.y - _arg2.y))))); } public static function parsePhysicsData(_arg1:String):PhysicsData{ var _local4:String; var _local5:int; var _local6:String; var _local7:String; var _local2:PhysicsData = new PhysicsData(); var _local3:Array = _arg1.split(","); for each (_local4 in _local3) { _local5 = _local4.indexOf("="); _local6 = StringUtil.trim(_local4.substring(0, _local5)); _local7 = StringUtil.trim(_local4.substr((_local5 + 1))); switch (_local6){ case "type": _local2.type = _local7; break; case "force": _local2.force = parseFloat(_local7); break; case "rotationSpeed": _local2.rotationSpeed = parseFloat(_local7); break; case "friction": _local2.friction = parseFloat(_local7); break; case "restitution": _local2.restitution = parseFloat(_local7); break; case "density": _local2.density = parseFloat(_local7); break; case "windSpeed": _local2.windSpeed = parseFloat(_local7); break; case "target": _local2.target = _local7; break; case "endPos": _local2.endPos = parseFloat(_local7); break; case "buttonType": _local2.buttonType = _local7; break; case "gravitation": _local2.gravitation = parseFloat(_local7); break; case "isActive": _local2.isActive = (_local7 == "true"); case "delayTime": _local2.delayTime = parseFloat(_local7); break; case "width": _local2.width = parseFloat(_local7); break; case "height": _local2.height = parseFloat(_local7); break; case "maxMass": _local2.maxMass = parseFloat(_local7); break; case "maxImpulse": _local2.maxImpulse = parseFloat(_local7); break; case "material": _local2.material = _local7; break; case "stiffness": _local2.stiffness = parseFloat(_local7); break; case "restLength": _local2.restLength = parseFloat(_local7); break; case "damping": _local2.damping = parseFloat(_local7); break; case "moment": if (_local7 == "infinity"){ _local2.moment = Number.POSITIVE_INFINITY; } else { _local2.moment = parseFloat(_local7); }; break; case "bodyType": _local2.bodyType = _local7; break; case "maxForce": _local2.maxForce = parseFloat(_local7); break; }; }; return (_local2); } } }//package
Section 318
//ventyljator (ventyljator) package { import flash.media.*; public dynamic class ventyljator extends Sound { } }//package

Library Items

Symbol 1 GraphicUsed by:51
Symbol 2 GraphicUsed by:5
Symbol 3 FontUsed by:4
Symbol 4 TextUses:3Used by:5
Symbol 5 MovieClipUses:2 4Used by:51
Symbol 6 GraphicUsed by:9
Symbol 7 GraphicUsed by:8
Symbol 8 MovieClipUses:7Used by:9
Symbol 9 MovieClip {preloader_lib_fla.bar_3} [preloader_lib_fla.bar_3]Uses:6 8Used by:51
Symbol 10 FontUsed by:11 12
Symbol 11 EditableTextUses:10Used by:51
Symbol 12 EditableTextUses:10Used by:51
Symbol 13 GraphicUsed by:27 48
Symbol 14 GraphicUsed by:15
Symbol 15 MovieClipUses:14Used by:27 48
Symbol 16 GraphicUsed by:17
Symbol 17 MovieClipUses:16Used by:26
Symbol 18 GraphicUsed by:19
Symbol 19 MovieClipUses:18Used by:26 27 48
Symbol 20 GraphicUsed by:21
Symbol 21 MovieClipUses:20Used by:26 27 48
Symbol 22 GraphicUsed by:23
Symbol 23 MovieClipUses:22Used by:26 27 48
Symbol 24 GraphicUsed by:25
Symbol 25 MovieClipUses:24Used by:26 27 48
Symbol 26 MovieClipUses:17 19 21 23 25Used by:27 48
Symbol 27 MovieClipUses:13 15 26 19 21 23 25Used by:42
Symbol 28 GraphicUsed by:29
Symbol 29 MovieClipUses:28Used by:42 49
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClipUses:30Used by:42 49
Symbol 32 GraphicUsed by:33
Symbol 33 MovieClipUses:32Used by:42 49
Symbol 34 GraphicUsed by:35
Symbol 35 MovieClipUses:34Used by:42 49
Symbol 36 GraphicUsed by:37
Symbol 37 MovieClipUses:36Used by:42 49
Symbol 38 GraphicUsed by:39
Symbol 39 MovieClipUses:38Used by:42 49
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42 49
Symbol 42 MovieClipUses:27 29 31 33 35 37 39 41Used by:51
Symbol 43 GraphicUsed by:44
Symbol 44 MovieClipUses:43Used by:45
Symbol 45 MovieClip {preloader_lib_fla.AddClip_21} [preloader_lib_fla.AddClip_21]Uses:44Used by:51
Symbol 46 FontUsed by:47
Symbol 47 TextUses:46Used by:48
Symbol 48 MovieClipUses:13 15 26 19 21 23 25 47Used by:50
Symbol 49 MovieClipUses:29 31 33 35 37 39 41Used by:50
Symbol 50 MovieClip {preloader_lib_fla.adLogoPre_23} [preloader_lib_fla.adLogoPre_23]Uses:48 49Used by:51
Symbol 51 MovieClip {Loading_mc} [Loading_mc]Uses:1 5 9 11 12 42 45 50
Symbol 52 MovieClip {com.kongregate.as3.client.KongregateAPI} [com.kongregate.as3.client.KongregateAPI]
Symbol 53 Sound {new_sound_22} [new_sound_22]
Symbol 54 Sound {new_sound_21} [new_sound_21]
Symbol 55 Sound {perepony4_up} [perepony4_up]
Symbol 56 Sound {obryv_3} [obryv_3]
Symbol 57 Sound {obryv_4} [obryv_4]
Symbol 58 Sound {perepony7_9} [perepony7_9]
Symbol 59 Sound {obryv_2} [obryv_2]
Symbol 60 Sound {obryv_1} [obryv_1]
Symbol 61 Sound {perepony7_4} [perepony7_4]
Symbol 62 Sound {button} [button]
Symbol 63 Sound {perepony7_1} [perepony7_1]
Symbol 64 Sound {jump2} [jump2]
Symbol 65 Sound {open_close_door} [open_close_door]
Symbol 66 Sound {new_sound_25} [new_sound_25]
Symbol 67 Sound {jump1} [jump1]
Symbol 68 Sound {new_sound_23} [new_sound_23]
Symbol 69 Sound {new_sound_24} [new_sound_24]
Symbol 70 Sound {perepony6} [perepony6]
Symbol 71 Sound {perepony6_6} [perepony6_6]
Symbol 72 Sound {ventyljator} [ventyljator]
Symbol 73 Sound {perepony6_1} [perepony6_1]
Symbol 74 Sound {perepony6_2} [perepony6_2]
Symbol 75 Sound {perepony7_10} [perepony7_10]
Symbol 76 Sound {perepony7_15} [perepony7_15]
Symbol 77 Sound {gravitation} [gravitation]
Symbol 78 Sound {bubleEnd} [bubleEnd]
Symbol 79 Font {Annifont} [Annifont]
Symbol 80 Font {HansFont} [HansFont]
Symbol 81 Font {TectonFont} [TectonFont]
Symbol 82 Font {ComicFont} [ComicFont]
Symbol 83 BinaryData {Lib_Resources}

Instance Names

"bar"Symbol 9 MovieClip {preloader_lib_fla.bar_3} [preloader_lib_fla.bar_3] Frame 1Symbol 8 MovieClip
"bg"Symbol 45 MovieClip {preloader_lib_fla.AddClip_21} [preloader_lib_fla.AddClip_21] Frame 1Symbol 44 MovieClip
"kongBtn"Symbol 50 MovieClip {preloader_lib_fla.adLogoPre_23} [preloader_lib_fla.adLogoPre_23] Frame 1Symbol 48 MovieClip
"garbBtn"Symbol 50 MovieClip {preloader_lib_fla.adLogoPre_23} [preloader_lib_fla.adLogoPre_23] Frame 1Symbol 49 MovieClip
"playMessage"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 5 MovieClip
"bar"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 9 MovieClip {preloader_lib_fla.bar_3} [preloader_lib_fla.bar_3]
"perTxt"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 11 EditableText
"bytesTxt"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 12 EditableText
"freeLogo"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 42 MovieClip
"adClip"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 45 MovieClip {preloader_lib_fla.AddClip_21} [preloader_lib_fla.AddClip_21]
"adLogo"Symbol 51 MovieClip {Loading_mc} [Loading_mc] Frame 1Symbol 50 MovieClip {preloader_lib_fla.adLogoPre_23} [preloader_lib_fla.adLogoPre_23]

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1458 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 51 as "Loading_mc"
ExportAssets (56)Timeline Frame 1Symbol 52 as "com.kongregate.as3.client.KongregateAPI"
ExportAssets (56)Timeline Frame 1Symbol 9 as "preloader_lib_fla.bar_3"
ExportAssets (56)Timeline Frame 1Symbol 45 as "preloader_lib_fla.AddClip_21"
ExportAssets (56)Timeline Frame 1Symbol 50 as "preloader_lib_fla.adLogoPre_23"
ExportAssets (56)Timeline Frame 2Symbol 53 as "new_sound_22"
ExportAssets (56)Timeline Frame 2Symbol 54 as "new_sound_21"
ExportAssets (56)Timeline Frame 2Symbol 55 as "perepony4_up"
ExportAssets (56)Timeline Frame 2Symbol 56 as "obryv_3"
ExportAssets (56)Timeline Frame 2Symbol 57 as "obryv_4"
ExportAssets (56)Timeline Frame 2Symbol 58 as "perepony7_9"
ExportAssets (56)Timeline Frame 2Symbol 59 as "obryv_2"
ExportAssets (56)Timeline Frame 2Symbol 60 as "obryv_1"
ExportAssets (56)Timeline Frame 2Symbol 61 as "perepony7_4"
ExportAssets (56)Timeline Frame 2Symbol 62 as "button"
ExportAssets (56)Timeline Frame 2Symbol 63 as "perepony7_1"
ExportAssets (56)Timeline Frame 2Symbol 64 as "jump2"
ExportAssets (56)Timeline Frame 2Symbol 65 as "open_close_door"
ExportAssets (56)Timeline Frame 2Symbol 66 as "new_sound_25"
ExportAssets (56)Timeline Frame 2Symbol 67 as "jump1"
ExportAssets (56)Timeline Frame 2Symbol 68 as "new_sound_23"
ExportAssets (56)Timeline Frame 2Symbol 69 as "new_sound_24"
ExportAssets (56)Timeline Frame 2Symbol 70 as "perepony6"
ExportAssets (56)Timeline Frame 2Symbol 71 as "perepony6_6"
ExportAssets (56)Timeline Frame 2Symbol 72 as "ventyljator"
ExportAssets (56)Timeline Frame 2Symbol 73 as "perepony6_1"
ExportAssets (56)Timeline Frame 2Symbol 74 as "perepony6_2"
ExportAssets (56)Timeline Frame 2Symbol 75 as "perepony7_10"
ExportAssets (56)Timeline Frame 2Symbol 76 as "perepony7_15"
ExportAssets (56)Timeline Frame 2Symbol 77 as "gravitation"
ExportAssets (56)Timeline Frame 2Symbol 78 as "bubleEnd"
ExportAssets (56)Timeline Frame 2Symbol 79 as "Annifont"
ExportAssets (56)Timeline Frame 2Symbol 80 as "HansFont"
ExportAssets (56)Timeline Frame 2Symbol 81 as "TectonFont"
ExportAssets (56)Timeline Frame 2Symbol 82 as "ComicFont"
SerialNumber (41)Timeline Frame 1

Labels

"Preloader"Frame 1
"Main"Frame 2
"start"Frame 3




http://swfchan.com/11/54513/info.shtml
Created: 21/4 -2019 17:04:03 Last modified: 21/4 -2019 17:04:03 Server time: 04/05 -2024 16:28:59