Section 1
//MochiAd (com.mochiads.MochiAd)
package com.mochiads {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.net.*;
import flash.utils.*;
public class MochiAd {
public static function getVersion():String{
return ("2.1");
}
public static function showTimedAd(_arg1:Object):void{
MochiAd.showInterLevelAd(_arg1);
}
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 load(_arg1:Object):MovieClip{
var clip:Object;
var mc:MovieClip;
var k:String;
var server:String;
var hostname:String;
var lc:LocalConnection;
var name:String;
var loader:Loader;
var f:Function;
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);
};
if (clip._mochiad_loaded){
return (null);
};
var depth:Number = options.depth;
delete options.depth;
mc = 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;
lv.lc = name;
lv.st = getTimer();
loader = new Loader();
f = function (_arg1:Object):void{
mc._mochiad_ctr_failed = true;
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f);
g = function (_arg1:Object):void{
MochiAd.unload(clip);
};
loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g);
req = new URLRequest((server + ".swf"));
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 sendHighScore(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["sendHighScore", _arg1], _arg2, _arg3);
return (true);
}
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];
};
};
_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++;
};
};
return (_local3);
}
public static function _isNetworkAvailable():Boolean{
return (!((Security.sandboxType == "localWithFile")));
}
public static function unload(_arg1:Object):Boolean{
if (((_arg1.clip) && (_arg1.clip._mochiad))){
_arg1 = _arg1.clip;
};
if (!_arg1._mochiad){
return (false);
};
if (_arg1._mochiad.onUnload){
_arg1._mochiad.onUnload();
};
_arg1.removeChild(_arg1._mochiad);
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{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
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_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
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{
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.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = (_arg1 - 250);
};
chk["onEnterFrame"] = function ():void{
var _local4:Number;
var _local1:Object = this.parent._mochiad_ctr;
var _local2:Number = (getTimer() - this.started);
var _local3:Boolean;
if (!chk.showing){
_local4 = _local1.loaderInfo.bytesTotal;
if ((((_local4 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local2 > chk.ad_timeout){
_local3 = true;
};
};
};
if ((((_local2 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_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 _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 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 _loadCommunicator(_arg1:Object):MovieClip{
var mc:MovieClip;
var k:String;
var lc:LocalConnection;
var name:String;
var req:URLRequest;
var loader:Loader;
var options = _arg1;
var DEFAULTS:Object = {com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = MochiAd._parseOptions(options, DEFAULTS);
options.swfv = 9;
options.mav = MochiAd.getVersion();
var clip:Object = options.clip;
var clipname:String = ("_mochiad_com_" + options.id);
if (!MochiAd._isNetworkAvailable()){
return (null);
};
if (clip[clipname]){
return (clip[clipname]);
};
var server:String = (options.com_server + options.id);
MochiAd._allowDomains(server);
delete options.id;
delete options.com_server;
var depth:Number = options.depth;
delete options.depth;
mc = createEmptyMovieClip(clip, clipname, depth);
var lv:URLVariables = new URLVariables();
for (k in options) {
lv[k] = options[k];
};
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.name = name;
mc.lc = lc;
lv.lc = name;
mc._id = 0;
mc._queue = [];
mc.rpcResult = function (_arg1:Object):void{
_arg1 = parseInt(_arg1.toString());
var _local3:Array = mc._callbacks[_arg1];
if (typeof(_local3) == "undefined"){
return;
};
delete mc._callbacks[_arg1];
var _local4:Array = [];
var _local5:Number = 2;
while (_local5 < _local3.length) {
_local4.push(_local3[_local5]);
_local5++;
};
_local5 = 1;
while (_local5 < arguments.length) {
_local4.push(arguments[_local5]);
_local5++;
};
var _local6:Object = _local3[1];
var _local7:Object = _local3[0];
if (((_local7) && ((typeof(_local6) == "string")))){
_local6 = _local7[_local6];
};
if (typeof(_local6) == "function"){
_local6.apply(_local7, _local4);
};
};
mc._didConnect = function (_arg1:String):void{
var _local5:Array;
mc._endpoint = _arg1;
var _local2:Array = mc._queue;
delete mc._queue;
var _local3:Function = mc.doSend;
var _local4:Number = 0;
while (_local4 < _local2.length) {
_local5 = _local2[_local4];
_local3.apply(this, _local5);
_local4++;
};
};
mc.doSend = function (_arg1:Array, _arg2:Object, _arg3:Object):void{
var _local7:Array;
var _local8:Number;
if (mc._endpoint == null){
_local7 = [];
_local8 = 0;
while (_local8 < arguments.length) {
_local7.push(arguments[_local8]);
_local8++;
};
mc._queue.push(_local7);
return;
};
mc._id = (mc._id + 1);
var _local5:Number = mc._id;
mc._callbacks[_local5] = [_arg2, ((_arg3) || (_arg2))];
var _local6:LocalConnection = new LocalConnection();
_local6.send(mc._endpoint, "rpc", _local5, _arg1);
};
mc._callbacks = {};
mc._callbacks[0] = [mc, "_didConnect"];
lv.st = getTimer();
req = new URLRequest((server + ".swf"));
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
loader = new Loader();
loader.load(req);
mc.addChild(loader);
mc._mochiad_com = loader;
return (mc);
}
public static function showPreGameAd(_arg1:Object):void{
var clip:Object;
var mc:MovieClip;
var chk:MovieClip;
var complete:Boolean;
var unloaded:Boolean;
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, ad_started:function ():void{
this.clip.stop();
}, ad_finished:function ():void{
this.clip.play();
}};
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_finished();
return;
};
options.ad_started();
mc = clip._mochiad;
mc["onUnload"] = function ():void{
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);
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{
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.adjustProgress = function (_arg1:Number):void{
var _local2:Object = mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = _arg1;
};
chk["onEnterFrame"] = function ():void{
var _local11:Number;
if (!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;
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);
if (!chk.showing){
_local11 = _local2.loaderInfo.bytesTotal;
if ((((_local11 > 0)) || (("number" == "undefined")))){
chk.showing = true;
chk.started = getTimer();
} else {
if (_local3 > chk.ad_timeout){
_local4 = true;
};
};
};
if ((((_local3 > chk.ad_msec)) || (this.parent._mochiad_ctr_failed))){
_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{
MochiAd.showPreGameAd(_arg1);
}
public static function fetchHighScores(_arg1:Object, _arg2:Object, _arg3:Object=null):Boolean{
var _local4:MovieClip = MochiAd._loadCommunicator({clip:_arg1.clip, id:_arg1.id});
if (!_local4){
return (false);
};
_local4.doSend(["fetchHighScores", _arg1], _arg2, _arg3);
return (true);
}
public static function doOnEnterFrame(_arg1:MovieClip):void{
var f:Function;
var mc = _arg1;
f = function (_arg1:Object):void{
if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){
mc.onEnterFrame();
} else {
mc.removeEventListener(Event.ENTER_FRAME, f);
};
};
mc.addEventListener(Event.ENTER_FRAME, f);
}
}
}//package com.mochiads
Section 2
//MochiBot (com.mochibot.MochiBot)
package com.mochibot {
import flash.events.*;
import flash.display.*;
import flash.system.*;
import flash.net.*;
public dynamic class MochiBot extends Sprite {
public static function track(_arg1:Sprite, _arg2:String):MochiBot{
var parent = _arg1;
var tag = _arg2;
var self:MochiBot = new (MochiBot);
parent.addChild(self);
Security.allowDomain("*");
Security.allowDomain("mochibot.com");
Security.allowInsecureDomain("*");
Security.allowInsecureDomain("mochibot.com");
var server = "http://core.mochibot.com/my/core.swf";
var lv:URLVariables = new URLVariables();
lv["sb"] = Security.sandboxType;
lv["v"] = Capabilities.version;
lv["swfid"] = tag;
lv["mv"] = "8";
lv["fv"] = "9";
var url:String = self.root.loaderInfo.loaderURL;
if (url.indexOf("http") == 0){
lv["url"] = url;
} else {
lv["url"] = "local";
};
var req:URLRequest = new URLRequest(server);
req.contentType = "application/x-www-form-urlencoded";
req.method = URLRequestMethod.POST;
req.data = lv;
var loader:Loader = new Loader();
var f:Function = function (_arg1:Object):void{
};
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f, false, 0, true);
self.addChild(loader);
loader.load(req);
return (self);
}
}
}//package com.mochibot
Section 3
//ProgressBar (com.vidroid.ui.ProgressBar)
package com.vidroid.ui {
import flash.display.*;
import flash.geom.*;
public class ProgressBar extends Sprite {
public var barRatios:Array;
public var highlightColors:Array;
public var cornerRadius:int;// = 2
public var barAlphas:Array;
private var barHeight:int;
public var backgroundShadowRatios:Array;
public var barShadowAlphas:Array;
private var min:Number;
public var backgroundColour:uint;// = 0xCCCCCC
public var highlightRatios:Array;
public var barColors:Array;
public var backgroundBorderColour:uint;// = 0xB2B2B2
public var highlightAlphas:Array;
public var backgroundShadowAlphas:Array;
private var max:Number;
private var progress:Number;
public var barShadowColors:Array;
private var barWidth:int;
public var borderWidth:int;// = 1
public var barShadowRatios:Array;
public var backgroundShadowColors:Array;
public function ProgressBar(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number=0, _arg6:Number=100){
backgroundShadowColors = [0x444444, 0x444444, 0x444444, 0x444444];
backgroundShadowAlphas = [0.2, 0, 0, 0.2];
backgroundShadowRatios = [0, 7, 247, 0xFF];
barColors = [0x666666, 0x444444, 0, 0x222222];
barAlphas = [1, 1, 1, 1];
barRatios = [0, 111, 128, 0xFF];
barShadowColors = [0x444444, 0x444444, 0x444444, 0x444444];
barShadowAlphas = [0.2, 0, 0, 0.2];
barShadowRatios = [0, 7, 247, 0xFF];
highlightColors = [0xFFFFFF, 0xFFFFFF, 0xFFFFFF, 0xFFFFFF];
highlightAlphas = [0.7, 0.1, 0, 0];
highlightRatios = [0, 48, 63, 0xFF];
super();
this.min = _arg5;
this.max = _arg6;
this.x = _arg1;
this.y = _arg2;
this.barWidth = _arg3;
this.barHeight = _arg4;
}
public function Update(_arg1:Number=NaN):void{
if (!isNaN(_arg1)){
this.progress = _arg1;
};
var _local2:Matrix = new Matrix();
graphics.clear();
graphics.beginFill(backgroundColour, 1);
graphics.lineStyle(borderWidth, backgroundBorderColour, 1);
graphics.drawRoundRect(0, 0, barWidth, barHeight, cornerRadius, cornerRadius);
graphics.endFill();
graphics.lineStyle(0, 0, 0);
_local2.createGradientBox(barWidth, barHeight, ((0 / 180) * Math.PI), 0, 0);
graphics.beginGradientFill(GradientType.LINEAR, backgroundShadowColors, backgroundShadowAlphas, backgroundShadowRatios, _local2, SpreadMethod.PAD);
graphics.drawRect(1, 1, (barWidth - 2), (barHeight - 2));
graphics.endFill();
graphics.lineStyle(1, 0xFFFFFF, 0.5);
graphics.drawRect(1, 1, (barWidth - 2), (barHeight - 2));
var _local3:int = Math.min((((barWidth - 2) / (max - min)) * this.progress), barWidth);
_local2.createGradientBox(barWidth, barHeight, ((90 / 180) * Math.PI), 0, 0);
graphics.lineStyle(0, 0, 0);
graphics.beginGradientFill(GradientType.LINEAR, barColors, barAlphas, barRatios, _local2, SpreadMethod.PAD);
graphics.drawRect(1, 1, _local3, (barHeight - 2));
graphics.endFill();
graphics.lineStyle(0, 0, 0);
_local2.createGradientBox(_local3, barHeight, ((0 / 180) * Math.PI), 0, 0);
graphics.beginGradientFill(GradientType.LINEAR, barShadowColors, barShadowAlphas, barRatios, _local2, SpreadMethod.PAD);
graphics.drawRect(1, 1, _local3, (barHeight - 2));
graphics.endFill();
graphics.lineStyle(0, 0, 0);
_local2.createGradientBox(barWidth, barHeight, ((90 / 180) * Math.PI), 0, 0);
graphics.beginGradientFill(GradientType.LINEAR, highlightColors, highlightAlphas, highlightRatios, _local2, SpreadMethod.PAD);
graphics.drawRect(1, 1, (barWidth - 2), (barHeight - 2));
graphics.endFill();
}
}
}//package com.vidroid.ui
Section 4
//ADInjector (com.vidroid.utils.ADInjector)
package com.vidroid.utils {
import flash.events.*;
import flash.display.*;
import com.mochiads.*;
public dynamic class ADInjector extends Sprite {
private var adOptions:Object;
public static const AD_FINISHED:String = "adFinished";
public function ADInjector(_arg1:Object){
var _local2:String;
adOptions = {};
super();
addEventListener(Event.ADDED_TO_STAGE, addedToStageListener, false, 0, true);
addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageListener, false, 0, true);
adOptions = {};
adOptions["clip"] = this;
adOptions["ad_started"] = this.ADStarted;
adOptions["ad_finished"] = this.ADFinished;
adOptions["no_bg"] = true;
if (_arg1){
for (_local2 in _arg1) {
adOptions[_local2] = _arg1[_local2];
};
};
}
private function ADFinished():void{
dispatchEvent(new Event(AD_FINISHED, false, false));
}
private function addedToStageListener(_arg1:Event):void{
MochiAd.showInterLevelAd(adOptions);
}
private function removedFromStageListener(_arg1:Event):void{
}
private function ADStarted():void{
}
}
}//package com.vidroid.utils
Section 5
//Preloader (com.vidroid.utils.Preloader)
package com.vidroid.utils {
import flash.events.*;
import com.mochibot.*;
import flash.display.*;
import com.vidroid.ui.*;
public class Preloader extends MovieClip {
protected var domainsAllowed:Array;
private var className:String;
private var progressBar:ProgressBar;
private var mochiAdsDefaults:Object;
private var adCompleted:Boolean;
private var mochiBotID:String;
private var adsprite:ADInjector;
private var state:int;// = 0
private var frameLoaded:Boolean;
private static const STATE_AD:int = 1;
private static const STATE_WAITINGFORFRAME:int = 3;
private static const STATE_BOT:int = 2;
public function Preloader(_arg1:Object, _arg2:String, _arg3:String, _arg4:Array){
domainsAllowed = [];
super();
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
progressBar = new ProgressBar(_arg4[0], _arg4[1], _arg4[2], _arg4[3]);
addChild(progressBar);
this.className = _arg3;
this.mochiAdsDefaults = _arg1;
this.mochiBotID = _arg2;
root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadingProgress);
root.loaderInfo.addEventListener(Event.COMPLETE, onLoadingCompleted);
adCompleted = false;
frameLoaded = false;
state = STATE_AD;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function adFinishedListener(_arg1:Event):void{
if (mochiAdsDefaults){
adsprite.removeEventListener(ADInjector.AD_FINISHED, adFinishedListener);
removeChild(adsprite);
};
adsprite = null;
adCompleted = true;
}
private function onLoadingProgress(_arg1:Event):void{
var _local2:Number = ((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 100);
progressBar.Update(_local2);
}
private function onLoadingCompleted(_arg1:Event):void{
root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadingProgress);
root.loaderInfo.removeEventListener(Event.COMPLETE, onLoadingCompleted);
removeChild(progressBar);
progressBar = null;
nextFrame();
frameLoaded = true;
}
public function onEnterFrame(_arg1:Event):void{
var _local2:Class;
var _local3:DisplayObject;
var _local4:Boolean;
var _local5:String;
var _local6:String;
var _local7:int;
graphics.clear();
switch (state){
case STATE_AD:
if (mochiAdsDefaults){
adsprite = new ADInjector(mochiAdsDefaults);
adsprite.addEventListener(ADInjector.AD_FINISHED, adFinishedListener);
this.addChild(adsprite);
} else {
adFinishedListener(null);
};
state = STATE_BOT;
break;
case STATE_BOT:
if (mochiBotID){
MochiBot.track(this, mochiBotID);
};
state = STATE_WAITINGFORFRAME;
break;
case STATE_WAITINGFORFRAME:
if (((adCompleted) && (frameLoaded))){
_local2 = Class(loaderInfo.applicationDomain.getDefinition(className));
if (_local2){
_local3 = DisplayObject(new (_local2));
if (_local3){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
_local4 = true;
if (domainsAllowed.length > 0){
_local4 = false;
_local5 = stage.loaderInfo.url.split("/")[2];
for (_local6 in domainsAllowed) {
_local7 = _local5.indexOf(domainsAllowed[_local6]);
if ((((_local7 > -1)) && ((_local7 == (_local5.length - domainsAllowed[_local6].length))))){
_local4 = true;
break;
};
};
};
trace(("3:Locked:" + !(_local4)));
if (_local4){
stage.addChild(_local3);
stage.removeChild(this);
} else {
stage.addChild(new VDLocked());
};
};
};
};
break;
};
}
}
}//package com.vidroid.utils
Section 6
//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 7
//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 8
//FlexMovieClip (mx.core.FlexMovieClip)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexMovieClip extends MovieClip {
mx_internal static const VERSION:String = "3.2.0.3958";
public function FlexMovieClip(){
super();
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 9
//IBorder (mx.core.IBorder)
package mx.core {
public interface IBorder {
function get borderMetrics():EdgeMetrics;
}
}//package mx.core
Section 10
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 11
//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 12
//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 13
//MovieClipAsset (mx.core.MovieClipAsset)
package mx.core {
public class MovieClipAsset extends FlexMovieClip implements IFlexAsset, IFlexDisplayObject, IBorder {
private var _measuredHeight:Number;
private var _measuredWidth:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public function MovieClipAsset(){
_measuredWidth = width;
_measuredHeight = height;
}
public function get measuredWidth():Number{
return (_measuredWidth);
}
public function get measuredHeight():Number{
return (_measuredHeight);
}
public function setActualSize(_arg1:Number, _arg2:Number):void{
width = _arg1;
height = _arg2;
}
public function move(_arg1:Number, _arg2:Number):void{
this.x = _arg1;
this.y = _arg2;
}
public function get borderMetrics():EdgeMetrics{
if (scale9Grid == null){
return (EdgeMetrics.EMPTY);
};
return (new EdgeMetrics(scale9Grid.left, scale9Grid.top, Math.ceil((measuredWidth - scale9Grid.right)), Math.ceil((measuredHeight - scale9Grid.bottom))));
}
}
}//package mx.core
Section 14
//MovieClipLoaderAsset (mx.core.MovieClipLoaderAsset)
package mx.core {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import flash.system.*;
public class MovieClipLoaderAsset extends MovieClipAsset implements IFlexAsset, IFlexDisplayObject {
protected var initialHeight:Number;// = 0
private var loader:Loader;// = null
private var initialized:Boolean;// = false
protected var initialWidth:Number;// = 0
private var requestedHeight:Number;
private var requestedWidth:Number;
mx_internal static const VERSION:String = "3.2.0.3958";
public function MovieClipLoaderAsset(){
var _local1:LoaderContext = new LoaderContext();
_local1.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
if (("allowLoadBytesCodeExecution" in _local1)){
_local1["allowLoadBytesCodeExecution"] = true;
};
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.loadBytes(movieClipData, _local1);
addChild(loader);
}
override public function get width():Number{
if (!initialized){
return (initialWidth);
};
return (super.width);
}
override public function set width(_arg1:Number):void{
if (!initialized){
requestedWidth = _arg1;
} else {
loader.width = _arg1;
};
}
override public function get measuredHeight():Number{
return (initialHeight);
}
private function completeHandler(_arg1:Event):void{
initialized = true;
initialWidth = loader.width;
initialHeight = loader.height;
if (!isNaN(requestedWidth)){
loader.width = requestedWidth;
};
if (!isNaN(requestedHeight)){
loader.height = requestedHeight;
};
dispatchEvent(_arg1);
}
override public function set height(_arg1:Number):void{
if (!initialized){
requestedHeight = _arg1;
} else {
loader.height = _arg1;
};
}
override public function get measuredWidth():Number{
return (initialWidth);
}
override public function get height():Number{
if (!initialized){
return (initialHeight);
};
return (super.height);
}
public function get movieClipData():ByteArray{
return (null);
}
}
}//package mx.core
Section 15
//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 16
//NameUtil (mx.utils.NameUtil)
package mx.utils {
import flash.display.*;
import mx.core.*;
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 17
//VDGameFactory (VDGameFactory)
package {
import com.vidroid.utils.*;
public class VDGameFactory extends Preloader {
public function VDGameFactory(){
trace("2:VDGameMain");
super({id:"41ef1d18f1c0f59b", res:"700x450", background:9737353, color:6775646, outline:0, no_bg:false}, "86384598", "VDGameMain", [((700 - 400) / 2), 200, 400, 30]);
}
}
}//package
Section 18
//VDGameMain (VDGameMain)
package {
import flash.events.*;
import flash.display.*;
public class VDGameMain extends Sprite {
private var mainClass:Class;
public function VDGameMain(){
mainClass = VDGameMain_mainClass;
super();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler);
}
private function onAddedToStageHandler(_arg1:Event):void{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler);
addChild(new mainClass());
}
}
}//package
Section 19
//VDGameMain_mainClass (VDGameMain_mainClass)
package {
import mx.core.*;
import flash.utils.*;
public class VDGameMain_mainClass extends MovieClipLoaderAsset {
public var dataClass:Class;
private static var bytes:ByteArray = null;
public function VDGameMain_mainClass(){
dataClass = VDGameMain_mainClass_dataClass;
super();
initialWidth = (14000 / 20);
initialHeight = (9000 / 20);
}
override public function get movieClipData():ByteArray{
if (bytes == null){
bytes = ByteArray(new dataClass());
};
return (bytes);
}
}
}//package
Section 20
//VDGameMain_mainClass_dataClass (VDGameMain_mainClass_dataClass)
package {
import mx.core.*;
public class VDGameMain_mainClass_dataClass extends ByteArrayAsset {
}
}//package
Section 21
//VDLocked (VDLocked)
package {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.text.*;
public class VDLocked extends Sprite {
private var _lockLogoUrl:String;// = "http://www.cube-games.co.uk/"
public function VDLocked(){
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler);
}
private function onAddedToStageHandler(_arg1:Event):void{
this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStageHandler);
this.stage.addEventListener(MouseEvent.CLICK, onLockedClickHandler);
this.buttonMode = true;
var _local2:TextField = new TextField();
_local2.autoSize = TextFieldAutoSize.LEFT;
_local2.text = "Visit to www.cube-games.co.uk or www.andkon.com for full version";
_local2.selectable = false;
var _local3:TextFormat = _local2.defaultTextFormat;
_local3.align = "center";
_local3.color = 0xFFFFFF;
_local3.bold = true;
_local3.size = 24;
_local2.setTextFormat(_local3);
_local2.x = ((stage.stageWidth - _local2.width) / 2);
_local2.y = ((stage.stageHeight - _local2.height) / 2);
addChild(_local2);
}
private function onLockedClickHandler(_arg1:MouseEvent):void{
navigateToURL(new URLRequest(_lockLogoUrl));
}
}
}//package