Section 1
//Tracker (com.memecounter.Tracker)
package com.memecounter {
import flash.display.*;
import flash.events.*;
import flash.system.*;
import flash.net.*;
import flash.utils.*;
public class Tracker {
public static const ORI_DOM:String = "ori_dom";
public static const LOCALHOST:String = "localhost";
private static const MAX_ATTEMPTS:int = 3;
public static const LOCAL:String = "Local";
private static const ERROR_URL:String = "http://error.distralytics.com/comms/";
public static const TRACKER_PATH:String = "/node/tracking/trackerAS3.swf";
private static var ori_dom:String;
private static var lurl:String;
private static var _isReady:Boolean = false;
private static var _isInited:Boolean = false;
public static var c:uint;
public static var d:String = "";
public static var a:uint = 0;
public static var root:DisplayObject;
public static var mcEvent:Function;
public static var fpv:String = "";
private static var l:Loader;
public static var da:Array = ["distralytics.com", "distralytics.co.uk"];
private static var tracker:MovieClip;
private static function loadComplete(_arg1:Event):void{
var e = _arg1;
try {
tracker = e.target.content;
tracker.init(Tracker, root);
_isReady = true;
} catch(e:Error) {
trace("Memecounter error: unable to access tracker object due to security sandbox.");
};
}
public static function init(_arg1:uint, _arg2:DisplayObject):void{
var _local3:uint;
if (!_isInited){
_isInited = true;
c = _arg1;
root = _arg2;
_local3 = 0;
while (_local3 < da.length) {
Security.allowDomain(("*" + da[_local3]));
Security.allowDomain(da[_local3]);
Security.allowDomain(((c + ".c.") + da[_local3]));
Security.allowDomain(("*." + da[_local3]));
_local3++;
};
ori_dom = (root.loaderInfo.parameters.hasOwnProperty(ORI_DOM)) ? root.loaderInfo.parameters[ORI_DOM] : "";
d = ((ori_dom)!="") ? ori_dom : ((new LocalConnection().domain.indexOf(LOCALHOST))==-1) ? new LocalConnection().domain : LOCAL;
fpv = Capabilities.version.split(" ")[1].split(",")[0];
lurl = (((((((((TRACKER_PATH + "?c=") + c) + "&r=") + Math.floor((Math.random() * 10000000000))) + "&d=") + d) + "&p=") + fpv) + "&as=3");
l = new Loader();
l.contentLoaderInfo.addEventListener(Event.INIT, loadComplete);
l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError);
lc();
mcEvent = kvEvent;
};
}
private static function loadError(_arg1:Event):void{
var _local2:URLLoader;
var _local3:URLRequest;
var _local4:URLVariables;
a++;
if (a < MAX_ATTEMPTS){
lc();
} else {
_local2 = new URLLoader();
_local3 = new URLRequest(ERROR_URL);
_local4 = new URLVariables();
_local3.method = URLRequestMethod.GET;
_local3.data = _local4;
_local4.error = "Unable to load SWF";
_local4.c = c;
_local4.fd = root.loaderInfo.loaderURL;
_local4.p = fpv;
_local4.mv = "3.3.x";
_local4.r = Math.random();
_local2.load(_local3);
};
}
public static function get isReady():Boolean{
return (_isReady);
}
public static function mcClick(_arg1:String, _arg2:String=null):void{
if (_isReady){
tracker.mcClick(_arg1, _arg2);
};
}
public static function kvEvent(_arg1):void{
if (_isReady){
tracker.kvEvent(_arg1);
};
}
public static function kvCountry():String{
if (_isReady){
return (tracker.kvCountry());
};
return ("");
}
public static function kvClick(_arg1:uint):void{
if (_isReady){
tracker.kvClick(_arg1);
};
}
private static function lc():void{
var _local1:String;
var _local2:String = da[(a % da.length)];
if (_local2.charAt(0) === "."){
_local1 = (("http://" + _local2.substr(1, (_local2.length - 1))) + lurl);
} else {
_local1 = (((("http://" + c) + ".c.") + _local2) + lurl);
};
Security.allowDomain(_local1);
l.load(new URLRequest(_local1));
}
}
}//package com.memecounter
Section 2
//GameEvent (com.netlog.gameapi.GameEvent)
package com.netlog.gameapi {
import flash.events.*;
public class GameEvent extends Event {
public var data;
public static const MULTIPLAYER_END_GAME_RESULT:String = "response.wrapper.endGame.Result";
public static const GET_PLAYERINFO_RESULT:String = "response.Player.Info.Result";
public static const MULTIPLAYER_JOIN_LOBBY:String = "request.game.Lobby.Room";
public static const MULTIPLAYER_JOIN_AWESOME_ROOM:String = "request.game.Awesome.Room";
public static const MULTIPLAYER_START_GAME_FAIL:String = "response.wrapper.startGame.Fail";
public static const WRAPPER_PAUSE:String = "request.game.Pause";
public static const SINGLEPLAYER_UPDATE_HIGHSCORE_FAIL:String = "response.game.Update.Fail";
public static const MULTIPLAYER_END_GAME_FAIL:String = "response.wrapper.endGame.Fail";
public static const MULTIPLAYER_GIVE_SMARTFOXCLIENT:String = "request.game.SmartFoxClient";
public static const GET_OPENSOCIAL_FAIL:String = "response.opensocial.Fail";
public static const MULTIPLAYER_PLAY_AGAIN:String = "request.game.play.again";
public static const MULTIPLAYER_SMARTFOX_CLIENT_RESULT:String = "response.smartfox.Client.Result";
public static const WRAPPER_LOG_THIS:String = "request.game.Log";
public static const GET_CREDITS_RESULT:String = "response.Credits.Result";
public static const SINGLEPLAYER_START_GAME:String = "request.game.Start";
public static const SINGLEPLAYER_END_GAME_FAIL:String = "response.game.End.Fail";
public static const MULTIPLAYER_CREATE_ROOM:String = "request.game.Create.Room";
public static const GET_PLAYERINFO:String = "request.game.PlayerInfo";
public static const MULTIPLAYER_START_GAME_RESULT:String = "response.wrapper.startGame.Result";
public static const SINGLEPLAYER_END_GAME:String = "request.game.End";
public static const SINGLEPLAYER_UPDATE_HIGHSCORE_RESULT:String = "response.game.UpdateSore";
public static const MULTIPLAYER_JOIN_AWESOME_ROOM_RESULT:String = "response.joinAwesomeRoom.Result";
public static const WRAPPER_UNPAUSED:String = "response.game.UnPaused";
public static const WRAPPER_SHOW_INSTRUCTIONS:String = "request.game.Instructions";
public static const GET_OPENSOCIAL_RESULT:String = "response.opensocial.Result";
public static const MULTIPLAYER_JOIN_AWESOME_ROOM_FAIL:String = "response.joinAwesomeRoom.Fail";
public static const GET_OPENSOCIAL:String = "request.game.OpenSocial";
public static const MULTIPLAYER_END_GAME:String = "request.game.end.game";
public static const GET_CREDITS:String = "request.game.Credits";
public static const SINGLEPLAYER_END_GAME_RESULT:String = "response.game.End";
public static const SINGLEPLAYER_START_GAME_FAIL:String = "response.game.Start.Fail";
public static const WRAPPER_PAUSED:String = "response.game.Paused";
public static const SINGLEPLAYER_START_GAME_RESULT:String = "response.game.Start";
public static const SINGLEPLAYER_UPDATE_HIGHSCORE:String = "request.game.UpdateHighScore";
public function GameEvent(_arg1:String, _arg2=null, _arg3:Boolean=true, _arg4:Boolean=false){
super(_arg1, _arg3, _arg4);
this.data = _arg2;
}
override public function clone():Event{
return (new GameEvent(type, data, bubbles, cancelable));
}
override public function toString():String{
return (formatToString("GameEvent", "type", "data", "bubbles", "cancelable", "eventPhase"));
}
}
}//package com.netlog.gameapi
Section 3
//LoaderBr (LoaderBr)
package {
import flash.display.*;
public dynamic class LoaderBr extends MovieClip {
}
}//package
Section 4
//LoaderMain (LoaderMain)
package {
import flash.display.*;
import flash.events.*;
import com.memecounter.*;
import com.netlog.gameapi.*;
import flash.system.*;
import flash.net.*;
public class LoaderMain extends MovieClip {
var _menuFramework:MovieClip;
var _loaderBr:LoaderBr;
public static const FULLGAME:String = "fullgame";
public static const START:String = "start";
public static const ONE:String = "one";
public static const TWO:String = "two";
public static const SWF_PATH:String = ("http://www.mobil1globalchallenge.com/Test_Driver/mobiloneminigame.swf?SessionID=" + String((Math.random() * 1000000)));
public static const END:String = "end";
public static const RESULT:String = "result";
public static const THREE:String = "three";
public function LoaderMain(){
_loaderBr = new LoaderBr();
super();
trace("SWFMain Version 0.01");
MovieClip(root).stage.scaleMode = StageScaleMode.NO_SCALE;
Security.allowDomain("*");
Tracker.init(920, root);
addEventListener(Event.ADDED_TO_STAGE, onAddedToDisplay);
}
private function levelTwoHandler(_arg1:Event){
trace("LOADER: level two start triggered");
Tracker.kvEvent(26580);
}
public function onAddedToDisplay(_arg1:Event){
_loaderBr.x = 150;
_loaderBr.y = 194;
_loaderBr.visible = false;
_loaderBr.gotoAndStop(1);
addChild(_loaderBr);
var _local2:Loader = new Loader();
_local2.contentLoaderInfo.addEventListener(Event.COMPLETE, ProcessSWF);
_local2.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, LoadProgress);
_local2.load(new URLRequest(SWF_PATH));
}
private function levelOneHandler(_arg1:Event){
trace("LOADER: level one start triggered");
Tracker.kvEvent(26579);
}
private function LoadProgress(_arg1:Event){
_loaderBr.visible = true;
_loaderBr.gotoAndStop(Math.max(1, Math.floor(((_arg1.target.bytesLoaded / _arg1.target.bytesTotal) * 100))));
}
private function resultHandler(_arg1:Event){
trace("LOADER: testSWF result triggered");
var _local2:int = _menuFramework.getScore();
dispatchEvent(new GameEvent(GameEvent.SINGLEPLAYER_UPDATE_HIGHSCORE, _local2));
}
private function startHandler(_arg1:Event){
trace("LOADER: testSWF start triggered");
dispatchEvent(new GameEvent(GameEvent.SINGLEPLAYER_START_GAME));
}
private function fullGameHandler(_arg1:Event){
trace("LOADER: full game triggered");
Tracker.kvEvent(26578);
}
private function endHandler(_arg1:Event){
trace("LOADER: testSWF end triggered");
dispatchEvent(new GameEvent(GameEvent.SINGLEPLAYER_END_GAME));
}
private function levelThreeHandler(_arg1:Event){
trace("LOADER: level three start triggered");
Tracker.kvEvent(26581);
}
public function ProcessSWF(_arg1:Event):void{
this.removeChild(_loaderBr);
_arg1.target.removeEventListener(Event.COMPLETE, ProcessSWF);
_arg1.target.removeEventListener(Event.ENTER_FRAME, LoadProgress);
_menuFramework = MovieClip(_arg1.currentTarget.content);
_menuFramework.addEventListener(START, startHandler);
_menuFramework.addEventListener(RESULT, resultHandler);
_menuFramework.addEventListener(END, endHandler);
_menuFramework.addEventListener(FULLGAME, fullGameHandler);
_menuFramework.addEventListener(ONE, levelOneHandler);
_menuFramework.addEventListener(TWO, levelTwoHandler);
_menuFramework.addEventListener(THREE, levelThreeHandler);
addChild(_menuFramework);
}
}
}//package