Frame 1
function __com_mochibot__(swfid, mc, lv, trk) {
var x;
var g;
var s;
var fv;
var sb;
var u;
var res;
var mb;
var mbc;
mb = "__mochibot__";
mbc = "mochibot.com";
g = (_global ? (_global) : (_level0._root));
if (g[mb + swfid]) {
return(g[mb + swfid]);
}
s = System.security;
x = mc._root.getSWFVersion;
fv = (x ? (mc.getSWFVersion()) : ((_global ? 6 : 5)));
if (!s) {
s = {};
}
sb = s.sandboxType;
if (sb == "localWithFile") {
return(null);
}
x = s.allowDomain;
if (x) {
s.allowDomain(mbc);
}
x = s.allowInsecureDomain;
if (x) {
s.allowInsecureDomain(mbc);
}
u = (((((((((((("http://" + mbc) + "/my/core.swf?mv=7&fv=") + fv) + "&v=") + escape(getVersion())) + "&swfid=") + escape(swfid)) + "&l=") + lv) + "&f=") + mc) + (sb ? ("&sb=" + sb) : "")) + (trk ? "&t=1" : "");
lv = ((fv > 6) ? (mc.getNextHighestDepth()) : ((g[mb + "level"] ? (g[mb + "level"] + 1) : (lv))));
g[mb + "level"] = lv;
if (fv == 5) {
res = "_level" + lv;
if (!eval (res)) {
loadMovieNum (u, lv);
}
} else {
res = mc.createEmptyMovieClip(mb + swfid, lv);
res.loadMovie(u);
}
return(res);
}
MochiAd.showPreGameAd({id:"166ad30321435a0f", res:"550x400", background:0, color:16777215, outline:9211020, no_bg:true});
mochi.MochiServices.connect("166ad30321435a0f");
__com_mochibot__("33e312c0", this, 10301, true);
Frame 2
var playerName = "";
var s = new Sound();
s.attachSound("music");
s.start(0, 1000);
s.setVolume(0);
onEnterFrame = function () {
if (s.getVolume() < 100) {
s.setVolume(s.getVolume() + 2);
} else {
s.setVolume(100);
delete onEnterFrame;
}
};
Instance of Symbol 9 MovieClip "goButton" in Frame 2
on (release) {
_root.play();
}
onClipEvent (load) {
stop();
}
Frame 26
stop();
nameInput.onSetFocus = function () {
nameInput.text = "";
};
nameInput.onChanged = function (field) {
if (nameInput.text != "") {
playerName = field.text;
if (goButton._currentframe == 1) {
goButton.play();
}
}
};
Frame 52
function addScore(n, x, y, c) {
var _local2 = _root.textBoxes.createTextField("t" + _root.textBoxes.getNextHighestDepth(), _root.textBoxes.getNextHighestDepth(), x, y, 100, 50);
_local2.textColor = c;
a = new TextFormat();
a.size = 20;
a.font = "Impact";
_local2.selectable = false;
_local2.antiAliasType = "advanced";
_local2.text = n.toString();
_local2._x = _local2._x - (_local2.textWidth / 2);
_local2.setTextFormat(a);
tbmp.draw(_local2, new flash.geom.Matrix(1, 0, 0, 1, x, y));
_local2.removeTextField();
score = score + n;
}
function spawnEnemy(x, y) {
var _local3 = _root.enemies.createEmptyMovieClip("e" + _root.enemies.getNextHighestDepth(), _root.enemies.getNextHighestDepth());
_local3.x = (_local3.oldX = x);
_local3.y = (_local3.oldY = y);
_local3.r = random(360);
_local3.spd = 4;
_local3.co = random(16777215);
_local3.rv = 0;
_local3.onUnload = function () {
addScore(100, this.x, this.y, this.co);
if (!atMenu) {
spawnEnemy(random(550), random(400));
spawnEnemy(random(550), random(400));
}
};
_local3.onEnterFrame = function () {
_root.draw.lineStyle(8, this.co);
_root.draw.moveTo(this.oldX, this.oldY);
this.x = this.x + (Math.cos((this.r * Math.PI) / 180) * this.spd);
this.y = this.y + (Math.sin((this.r * Math.PI) / 180) * this.spd);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
var _local3 = random(3);
if (_local3 == 0) {
if (this.rv > -8) {
this.rv--;
}
} else if (_local3 == 2) {
if (this.rv < 8) {
this.rv++;
}
} else {
this.rv = this.rv * 0.9;
}
if (this.x > 550) {
this.x = 550;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.x < 0) {
this.x = 0;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.y > 400) {
this.y = 400;
this.r = this.r * -1;
}
if (this.y < 0) {
this.y = 0;
this.r = this.r * -1;
}
this.r = this.r + this.rv;
if (this.a == 0) {
this.removeMovieClip();
}
};
}
function createVein(x, y, r, t, c, a) {
var _local3 = _root.veins.createEmptyMovieClip("v" + _root.veins.getNextHighestDepth(), _root.veins.getNextHighestDepth());
_local3.x = (_local3.oldX = x);
_local3.y = (_local3.oldY = y);
_local3.r = r;
_local3.t = t;
_local3.spd = (random(4) + t) / 4;
if (a == undefined) {
_local3.a = 100;
} else {
_local3.a = a;
}
if (c == undefined) {
_local3.co = rgbToHex(myColorObj);
} else {
_local3.co = c;
}
_local3.onEnterFrame = function () {
_root.draw.lineStyle(this.t, this.co, this.a);
_root.draw.moveTo(this.oldX, this.oldY);
this.x = this.x + (Math.cos((this.r * Math.PI) / 180) * this.spd);
this.y = this.y + (Math.sin((this.r * Math.PI) / 180) * this.spd);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
this.r = this.r + (random(30) - random(30));
this.a = this.a - 4;
this.spd = this.spd * 0.999;
if ((random(100) > 90) && (this.t > 1)) {
createVein(this.x, this.y, this.r, this.t - 1, this.co, this.a);
}
if (this.a < 0) {
this.removeMovieClip();
}
};
}
function particle(x, y, n, co, b) {
i = 0;
while (i < n) {
var _local3 = _root.particles.createEmptyMovieClip("p" + _root.particles.getNextHighestDepth(), _root.particles.getNextHighestDepth());
_local3.x = (_local3.oldX = x);
_local3.y = (_local3.oldY = y);
if (b == true) {
randomizeColor(myColorObj, minColorChannelVary, maxColorChannelVary);
_local3.co = rgbToHex(myColorObj);
} else {
_local3.co = co;
}
_local3.r = random(360);
_local3.spd = random(8) + 3;
_local3.onEnterFrame = function () {
_root.draw.lineStyle(2, this.co);
_root.draw.moveTo(this.oldX, this.oldY);
this.x = this.x + (Math.cos((this.r * Math.PI) / 180) * this.spd);
this.y = this.y + (Math.sin((this.r * Math.PI) / 180) * this.spd);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
this.spd = this.spd * 0.9;
if (this.x > 550) {
this.x = 550;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.x < 0) {
this.x = 0;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.y > 400) {
this.y = 400;
this.r = this.r * -1;
}
if (this.y < 0) {
this.y = 0;
this.r = this.r * -1;
}
if (this.spd < 0.5) {
this.removeMovieClip();
}
};
i++;
}
}
function randomizeColor(colorObj, min, max) {
for (var _local6 in colorObj) {
var _local2 = colorObj[_local6];
var _local1 = min + (Math.random() * (max - min));
_local2 = _local2 + (Math.round(Math.random()) ? (_local1) : (-_local1));
colorObj[_local6] = Math.max(0, Math.min(_local2, 255));
}
return(colorObj);
}
function rgbToHex(colorObj) {
return(((colorObj.r << 16) | (colorObj.g << 8)) | colorObj.b);
}
stop();
var ship = _root.createEmptyMovieClip("ship", 1);
var lasers = _root.createEmptyMovieClip("lasers", 2);
var graphic = _root.createEmptyMovieClip("graphic", 3);
var tgraphic = _root.createEmptyMovieClip("tgraphic", 10);
var tbmp = (new flash.display.BitmapData(550, 400, true, 0));
var draw = _root.createEmptyMovieClip("draw", 4);
var particles = _root.createEmptyMovieClip("particles", 5);
var veins = _root.createEmptyMovieClip("veins", 6);
var enemies = _root.createEmptyMovieClip("enemies", 7);
var textBoxes = _root.createEmptyMovieClip("textBoxes", 9);
var bmp = (new flash.display.BitmapData(550, 400, true, 0));
var blur = (new flash.filters.BlurFilter(2, 2, 2));
var tblur = (new flash.filters.BlurFilter(2, 2, 1));
var tcount = 0;
var balls = _root.createEmptyMovieClip("balls", 8);
var menu = _root.createEmptyMovieClip("menu", 11);
var atMenu = true;
var target = "";
var mA = 1;
var oldEn = 0;
var score = 0;
var launched = false;
var addScores = false;
var submitted = false;
var died = false;
tgraphic.attachBitmap(tbmp, 0);
i = 0;
while (i < 6) {
var ba = _root.balls.createEmptyMovieClip("b" + i, i);
ba.xv = 0;
ba.yv = 0;
ba.x = (ba.oldX = (275 + random(5)) - random(5));
ba.y = (ba.oldY = (200 + random(5)) - random(5));
ba.r = random(360);
ba.rspd = 9;
ba.l = random(15) + 7;
ba.onEnterFrame = function () {
this.x = _root.ship.x + (Math.cos((this.r * Math.PI) / 180) * this.l);
this.y = _root.ship.y + (Math.sin((this.r * Math.PI) / 180) * this.l);
if (Key.isDown(39)) {
this.rspd--;
} else if (Key.isDown(37)) {
this.rspd++;
} else if (Math.abs(this.rspd) > 9) {
this.rspd = this.rspd * 0.9;
} else if (Math.abs(this.rspd) < 8) {
this.rspd = this.rspd * 1.1;
}
this.rspd = Math.max(-15, Math.min(this.rspd, 15));
this.r = this.r + this.rspd;
_root.draw.lineStyle(1, rgbToHex(_root.myColorObj));
_root.draw.moveTo(this.oldX, this.oldY);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
};
i++;
}
i = 0;
while (i < 10) {
var ba = _root.menu.createEmptyMovieClip("b" + i, i);
ba.xv = 0;
ba.yv = 0;
ba.r = random(360);
ba.rspd = 4;
ba.l = random(25) + 60;
ba.x = (ba.oldX = 120 + (Math.cos((ba.r * Math.PI) / 180) * ba.l));
ba.y = (ba.oldY = 120 + (Math.sin((ba.r * Math.PI) / 180) * ba.l));
ba.onEnterFrame = function () {
this.x = 120 + (Math.cos((this.r * Math.PI) / 180) * this.l);
this.y = 120 + (Math.sin((this.r * Math.PI) / 180) * this.l);
this.r = this.r + this.rspd;
_root.draw.lineStyle(1, rgbToHex(_root.myColorObj), mA);
_root.draw.moveTo(this.oldX, this.oldY);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
};
i++;
}
i = 10;
while (i < 20) {
var ba = _root.menu.createEmptyMovieClip("b" + i, i);
ba.xv = 0;
ba.yv = 0;
ba.r = random(360);
ba.rspd = 4;
ba.l = random(25) + 60;
ba.x = (ba.oldX = 430 + (Math.cos((ba.r * Math.PI) / 180) * ba.l));
ba.y = (ba.oldY = 120 + (Math.sin((ba.r * Math.PI) / 180) * ba.l));
ba.onEnterFrame = function () {
this.x = 430 + (Math.cos((this.r * Math.PI) / 180) * this.l);
this.y = 120 + (Math.sin((this.r * Math.PI) / 180) * this.l);
this.r = this.r + this.rspd;
_root.draw.lineStyle(1, rgbToHex(_root.myColorObj), mA);
_root.draw.moveTo(this.oldX, this.oldY);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
};
i++;
}
var a = new TextFormat();
a.size = 25;
a.font = "Impact";
a.align = "center";
var play = _root.createTextField("play", -10, 100, 100, 100, 100);
play.textColor = rgbToHex(myColorObj);
play.text = "PLAY";
play.selectable = false;
play.setTextFormat(a);
play._x = 70;
var playmg = _root.createTextField("playmg", -11, 100, 100, 100, 100);
playmg.textColor = rgbToHex(myColorObj);
playmg.text = "UBER\nFUN\nGAMES";
playmg.selectable = false;
playmg.setTextFormat(a);
playmg._x = 380;
playmg._y = 70;
var title = _root.createTextField("title", -13, 0, 25, 550, 40);
title.text = "SERPENTUM";
title.selectable = false;
title.setTextFormat(a);
graphic.attachBitmap(bmp, 1);
blendMode = "add";
trace(playerName);
(ship.x = 275);
(ship.y = 200);
(ship.oldX = 275);
(ship.oldY = 200);
(ship.r = -90);
(ship.rv = 0);
(ship.v = 0);
(ship.co = random(16777215));
(ship.dDown = false);
ship.onEnterFrame = function () {
if (atMenu) {
if (!died) {
if ((Math.abs(this.x - 120) < 55) && (Math.abs(this.y - 120) < 55)) {
mA = mA - 4;
target = "play";
} else if ((Math.abs(this.x - 430) < 55) && (Math.abs(this.y - 120) < 55)) {
mA = mA - 4;
target = "more games";
} else if ((((Math.abs(this.x - 275) < 55) && (Math.abs(this.y - 300) < 55)) && (addScores)) && (!submitted)) {
mA = mA - 4;
target = "submit";
} else if (mA < 100) {
mA = mA + 8;
}
} else {
mA = mA + 4;
target = "";
if (mA >= 100) {
mA = 100;
died = false;
}
}
}
if ((random(100) > 55) && (this.v > 4)) {
}
if (Key.isDown(32)) {
if (!this.dDown) {
this.dDown = true;
var l = _root.lasers.createEmptyMovieClip("l" + _root.lasers.getNextHighestDepth(), _root.lasers.getNextHighestDepth());
l.x = (l.oldX = this.x);
l.y = (l.oldY = this.y);
l.r = this.r;
l.co = rgbToHex(myColorObj);
l.spd = 15;
l.onEnterFrame = function () {
_root.draw.lineStyle(2, this.co);
_root.draw.moveTo(this.oldX, this.oldY);
this.x = this.x + (Math.cos((this.r * Math.PI) / 180) * this.spd);
this.y = this.y + (Math.sin((this.r * Math.PI) / 180) * this.spd);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
if ((((this.x > 550) || (this.x < 0)) || (this.y > 400)) || (this.y < 0)) {
particle(this.x, this.y, 8, this.co);
this.removeMovieClip();
}
for (i in _root.enemies) {
if (flash.geom.Point.distance(new flash.geom.Point(this.x, this.y), new flash.geom.Point(_root.enemies[i].x, _root.enemies[i].y)) < 20) {
_root.enemies[i].removeMovieClip();
_root.enemies[i].a = 0;
particle(this.x, this.y, 15, _root.enemies[i].co);
particle(this.x, this.y, 15, this.co);
this.removeMovieClip();
}
}
};
}
} else {
this.dDown = false;
}
randomizeColor(myColorObj, minColorChannelVary, maxColorChannelVary);
_root.draw.lineStyle(8, rgbToHex(myColorObj));
_root.draw.moveTo(this.oldX, this.oldY);
if (Key.isDown(38)) {
if (this.v < 10) {
this.v++;
}
} else {
this.v = this.v * 0.9;
}
if (Key.isDown(37)) {
if (this.rv > -8) {
this.rv--;
}
} else if (Key.isDown(39)) {
if (this.rv < 8) {
this.rv++;
}
} else {
this.rv = this.rv * 0.9;
}
this.r = this.r + this.rv;
this.x = this.x + ((Math.cos((this.r * Math.PI) / 180) * this.v) / 2);
this.y = this.y + ((Math.sin((this.r * Math.PI) / 180) * this.v) / 2);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
if (this.x > 550) {
this.x = 550;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.x < 0) {
this.x = 0;
this.r = this.r * -1;
this.r = this.r + 180;
}
if (this.y > 400) {
this.y = 400;
this.r = this.r * -1;
}
if (this.y < 0) {
this.y = 0;
this.r = this.r * -1;
}
for (i in _root.enemies) {
if (flash.geom.Point.distance(new flash.geom.Point(this.x, this.y), new flash.geom.Point(_root.enemies[i].x, _root.enemies[i].y)) < 20) {
b = 0;
while (b < 15) {
randomizeColor(myColorObj, minColorChannelVary, maxColorChannelVary);
particle(this.x, this.y, 20, rgbToHex(myColorObj), true);
b++;
}
atMenu = true;
died = true;
if (addScores == false) {
i = 20;
while (i < 30) {
var _local3 = _root.menu.createEmptyMovieClip("b" + i, i);
_local3.xv = 0;
_local3.yv = 0;
_local3.r = random(360);
_local3.rspd = 4;
_local3.l = random(25) + 60;
_local3.x = (_local3.oldX = 275 + (Math.cos((_local3.r * Math.PI) / 180) * _local3.l));
_local3.y = (_local3.oldY = 300 + (Math.sin((_local3.r * Math.PI) / 180) * _local3.l));
_local3.onEnterFrame = function () {
this.x = 275 + (Math.cos((this.r * Math.PI) / 180) * this.l);
this.y = 300 + (Math.sin((this.r * Math.PI) / 180) * this.l);
this.r = this.r + this.rspd;
_root.draw.lineStyle(1, rgbToHex(_root.myColorObj), mA);
_root.draw.moveTo(this.oldX, this.oldY);
_root.draw.lineTo(this.x, this.y);
this.oldX = this.x;
this.oldY = this.y;
};
i++;
}
var _local4 = new TextFormat();
_local4.size = 25;
_local4.font = "Impact";
_local4.align = "center";
var _local5 = _root.createTextField("submit", -12, 100, 100, 100, 100);
_local5.setNewTextFormat(_local4);
_local5.textColor = rgbToHex(myColorObj);
_local5.text = "SUBMIT\nSCORE";
_local5.selectable = false;
_local5._x = 225;
_local5._y = 270;
addScores = true;
}
for (var _local4 in _root) {
if (_root[_local4].x != undefined) {
} else {
for (c in _root[_local4]) {
if ((((_root[_local4][c].x != undefined) && (_root[_local4] != particles)) && (_root[_local4] != balls)) && (_root[_local4] != menu)) {
_root[_local4][c].removeMovieClip();
}
}
}
}
}
}
};
onEnterFrame = function () {
if (atMenu) {
play.textColor = rgbToHex(myColorObj);
play._alpha = mA;
play.filters = [new flash.filters.GlowFilter(rgbToHex(myColorObj), 0.6, 4, 4)];
playmg.textColor = rgbToHex(myColorObj);
playmg._alpha = mA;
playmg.filters = [new flash.filters.GlowFilter(rgbToHex(myColorObj), 0.6, 4, 4)];
submit.textColor = rgbToHex(myColorObj);
submit._alpha = mA;
submit.filters = [new flash.filters.GlowFilter(rgbToHex(myColorObj), 0.6, 4, 4)];
title.textColor = rgbToHex(myColorObj);
title._alpha = mA;
title.filters = [new flash.filters.GlowFilter(rgbToHex(myColorObj), 0.6, 4, 4)];
if (mA < 0) {
if (target == "play") {
atMenu = false;
mA = 1;
score = 0;
submitted = false;
submit.text = "SUBMIT\nSCORE";
spawnEnemy(random(550), random(400));
}
if (target == "more games") {
if (!launched) {
getURL ("http://www.uberfungames.com", "_blank");
launched = true;
}
}
if (target == "submit") {
if (submitted == false) {
var _local3 = new LoadVars();
_local3.userName = playerName;
_local3.myScore = score;
_local3.send("http://www.uberfungames.com/scores/serpentum/post.php", "_blank", "POST");
submitted = true;
trace((playerName + ":") + score);
submit.text = "THANK\nYOU";
}
}
}
if ((mA >= 100) && (launched == true)) {
launched = false;
}
}
var _local2 = 0;
for (i in _root.enemies) {
_local2++;
}
if ((oldEn - _local2) == 1) {
}
if ((tcount % 15) == 0) {
score = score + (_local2 * _local2);
}
oldEn = _local2;
bmp.draw(draw);
bmp.applyFilter(bmp, bmp.rectangle, new flash.geom.Point(0, 0), blur);
draw.clear();
if (((++tcount) % 4) == 0) {
tbmp.applyFilter(tbmp, tbmp.rectangle, new flash.geom.Point(0, -1), tblur);
} else {
tbmp.applyFilter(tbmp, tbmp.rectangle, new flash.geom.Point(0, -1), new flash.filters.BlurFilter(0, 0, 0));
}
};
var myColorObj = {};
var num = 6290566;
myColorObj.r = 95;
myColorObj.g = 252;
myColorObj.b = 134;
var minColorChannelVary = 3;
var maxColorChannelVary = 5;
Instance of Symbol 14 MovieClip in Frame 52
onClipEvent (load) {
_alpha = 200;
}
onClipEvent (enterFrame) {
if (_alpha > 0) {
_alpha = (_alpha-1);
}
}
Symbol 15 MovieClip [__Packages.mochi.MochiServices] Frame 0
class mochi.MochiServices
{
static var _id, _container, _clip, _sendChannelName, _rcvChannelName, __get__comChannelName, onError, _listenChannel, _rcvChannel, _loader, _loaderListener, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("1.31");
}
static function allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
_rcvChannelName = val;
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.MochiServices.onError = onError;
} else if (mochi.MochiServices.onError == undefined) {
mochi.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
_rcvChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local2 = "_mochiservices_com_" + id;
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
allowDomains(_gatewayURL);
_clip = clip.createEmptyMovieClip(_local2, 10336, false);
_loader = new MovieClipLoader();
if (_loaderListener.waitInterval != null) {
clearInterval(_loaderListener.waitInterval);
}
_loaderListener = {};
_loaderListener.onLoadError = function (target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, [errorCode]);
};
_loaderListener.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_loaderListener.startTime = getTimer();
_loaderListener.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.MochiServices.disconnect();
mochi.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_loaderListener.waitInterval = setInterval(_loaderListener, "wait", 1000);
_loader.addListener(_loaderListener);
_loader.loadClip(_gatewayURL, _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
_rcvChannel = new LocalConnection();
_rcvChannel.allowDomain = function (d) {
return(true);
};
_rcvChannel.allowInsecureDomain = _rcvChannel.allowDomain;
_rcvChannel._nextcallbackID = 0;
_rcvChannel._callbacks = {};
listen();
return(_clip);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_clip, version:getVersion()});
_rcvChannel.onStatus = function (infoObject) {
mochi.MochiServices.onStatus(infoObject);
};
_rcvChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_rcvChannel.onError = function () {
mochi.MochiServices.onError.apply(null, ["IOError"]);
};
_rcvChannel.connect(_rcvChannelName);
trace("connected!");
_connecting = false;
_connected = true;
_listenChannel.close();
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _rcvChannel._callbacks[_local1.callbackID];
}
delete _rcvChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
onError.apply(null, ["NotConnected"]);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_rcvChannel._nextcallbackID});
}
_rcvChannel._callbacks[_rcvChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_rcvChannel._nextcallbackID++;
}
static var _gatewayURL = "http://www.mochiads.com/static/lib/services/services.swf";
static var _listenChannelName = "__mochiservices";
static var _connecting = false;
static var _connected = false;
}
Symbol 16 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.2");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
}
Symbol 9 MovieClip Frame 25
stop();
Symbol 14 MovieClip Frame 50
stop();