Section 1
//MochiAd (mochi.as3.MochiAd)
package mochi.as3 {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.system.*;
public class MochiAd {
public static function getVersion():String{
return ("3.0 as3");
}
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];
if (Security.sandboxType == "application"){
return (_local2);
};
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;
} else {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
};
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.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{
trace("[MochiAds] Blocked URL");
});
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 mochi.as3
Section 2
//BitmapAsset (mx.core.BitmapAsset)
package mx.core {
import flash.display.*;
public class BitmapAsset extends FlexBitmap implements IFlexAsset, IFlexDisplayObject {
mx_internal static const VERSION:String = "3.2.0.3958";
public function BitmapAsset(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
super(_arg1, _arg2, _arg3);
}
public function get measuredWidth():Number{
if (bitmapData){
return (bitmapData.width);
};
return (0);
}
public function get measuredHeight():Number{
if (bitmapData){
return (bitmapData.height);
};
return (0);
}
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;
}
}
}//package mx.core
Section 3
//FlexBitmap (mx.core.FlexBitmap)
package mx.core {
import flash.display.*;
import mx.utils.*;
public class FlexBitmap extends Bitmap {
mx_internal static const VERSION:String = "3.2.0.3958";
public function FlexBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){
var bitmapData = _arg1;
var pixelSnapping = _arg2;
var smoothing = _arg3;
super(bitmapData, pixelSnapping, smoothing);
try {
name = NameUtil.createUniqueName(this);
} catch(e:Error) {
};
}
override public function toString():String{
return (NameUtil.displayObjectToString(this));
}
}
}//package mx.core
Section 4
//FontAsset (mx.core.FontAsset)
package mx.core {
import flash.text.*;
public class FontAsset extends Font implements IFlexAsset {
mx_internal static const VERSION:String = "3.2.0.3958";
}
}//package mx.core
Section 5
//IFlexAsset (mx.core.IFlexAsset)
package mx.core {
public interface IFlexAsset {
}
}//package mx.core
Section 6
//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 7
//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 8
//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 9
//SoundAsset (mx.core.SoundAsset)
package mx.core {
import flash.media.*;
public class SoundAsset extends Sound implements IFlexAsset {
mx_internal static const VERSION:String = "3.2.0.3958";
}
}//package mx.core
Section 10
//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 11
//Block (Obs.Block)
package Obs {
import mx.core.*;
import flash.media.*;
public class Block {
public var y:uint;
private var GF1:Class;
private var S1:Class;
public var type:uint;
public var GFX:BitmapAsset;
public var SFX2:Sound;
public var SFX1:Sound;
private var GF3:Class;
private var GF4:Class;
private var GF5:Class;
public var x:uint;
private var GF2:Class;
private var S2:Class;
public static var count:uint = 0;
public function Block(_arg1:uint, _arg2:uint, _arg3:uint){
GF1 = Block_GF1;
GF2 = Block_GF2;
GF3 = Block_GF3;
GF4 = Block_GF4;
GF5 = Block_GF5;
S1 = Block_S1;
S2 = Block_S2;
super();
SFX1 = new S1();
SFX2 = new S2();
x = _arg1;
y = _arg2;
type = _arg3;
switch (type){
case 0:
GFX = new GF1();
count++;
break;
case 1:
GFX = new GF2();
count++;
break;
case 2:
GFX = new GF3();
count++;
break;
case 3:
GFX = new GF4();
break;
case 4:
GFX = new GF5();
break;
};
GFX.x = (x * 30);
GFX.y = (y * 30);
Game.layerblos.addChild(GFX);
}
public function CheckSides():void{
var _local1:Block;
_local1 = Game.At(x, (y - 1));
if (_local1 != null){
_local1.Damage();
};
_local1 = Game.At((x - 1), y);
if (_local1 != null){
_local1.Damage();
};
_local1 = Game.At((x + 1), y);
if (_local1 != null){
_local1.Damage();
};
_local1 = Game.At(x, (y + 1));
if (_local1 != null){
_local1.Damage();
};
}
public function Hit():void{
switch (type){
case 0:
CheckSides();
Drop();
break;
case 1:
removeGFX();
GFX = new GF1();
Game.layerblos.addChild(GFX);
GFX.x = (x * 30);
GFX.y = (y * 30);
type = 0;
if (Sounder.on){
SFX2.play();
};
break;
};
}
public function Drop():void{
if (Sounder.on){
SFX1.play();
};
if (type < 3){
count--;
};
Game.level[x][y] = null;
removeGFX();
new BloEff((x * 30), (y * 30), new GF1());
}
public function removeGFX():void{
if (removeGFX != null){
Game.layerblos.removeChild(GFX);
GFX = null;
};
}
public function Damage():void{
if (Sounder.on){
SFX2.play();
};
if (type == 2){
removeGFX();
GFX = new GF1();
Game.layerblos.addChild(GFX);
GFX.x = (x * 30);
GFX.y = (y * 30);
type = 0;
};
}
}
}//package Obs
Section 12
//Block_GF1 (Obs.Block_GF1)
package Obs {
import mx.core.*;
public class Block_GF1 extends BitmapAsset {
}
}//package Obs
Section 13
//Block_GF2 (Obs.Block_GF2)
package Obs {
import mx.core.*;
public class Block_GF2 extends BitmapAsset {
}
}//package Obs
Section 14
//Block_GF3 (Obs.Block_GF3)
package Obs {
import mx.core.*;
public class Block_GF3 extends BitmapAsset {
}
}//package Obs
Section 15
//Block_GF4 (Obs.Block_GF4)
package Obs {
import mx.core.*;
public class Block_GF4 extends BitmapAsset {
}
}//package Obs
Section 16
//Block_GF5 (Obs.Block_GF5)
package Obs {
import mx.core.*;
public class Block_GF5 extends BitmapAsset {
}
}//package Obs
Section 17
//Block_S1 (Obs.Block_S1)
package Obs {
import mx.core.*;
public class Block_S1 extends SoundAsset {
}
}//package Obs
Section 18
//Block_S2 (Obs.Block_S2)
package Obs {
import mx.core.*;
public class Block_S2 extends SoundAsset {
}
}//package Obs
Section 19
//BloEff (Obs.BloEff)
package Obs {
import mx.core.*;
import flash.display.*;
public class BloEff {
public var GFX:Sprite;
public var rot:Number;
public function BloEff(_arg1:uint, _arg2:uint, _arg3:BitmapAsset){
GFX = new Sprite();
super();
GFX.x = (_arg1 + 15);
GFX.y = (_arg2 + 15);
GFX.addChild(_arg3);
_arg3.x = -15;
_arg3.y = -15;
rot = ((Math.random() - 0.5) * 20);
Game.layerback.addChild(GFX);
Game.effects.push(this);
}
public function Update():void{
var _local1:uint;
GFX.rotation = (GFX.rotation + rot);
GFX.alpha = (GFX.alpha - 0.04);
GFX.scaleX = (GFX.scaleX - 0.04);
GFX.scaleY = (GFX.scaleY - 0.04);
if (GFX.alpha <= 0){
_local1 = Game.effects.indexOf(this);
Game.effects.splice(_local1, 1);
Game.layerback.removeChild(GFX);
};
}
}
}//package Obs
Section 20
//LevStr (Obs.LevStr)
package Obs {
import mx.core.*;
import flash.display.*;
import flash.text.*;
public class LevStr {
private var GFC:Class;
public static var txt:TextField = new TextField();
public static var backer:Sprite = new Sprite();
public static var gfx:BitmapAsset;
public function LevStr(){
GFC = LevStr_GFC;
super();
txt.embedFonts = true;
txt.htmlText = "<p align='center'><font face='Fonter' color='#FFFFFF' size='20'>Congratulations. You have managed to succesfully complete the Trapdoorer. For more freeware games visit: \n http://www.mauft.com</font></p>";
txt.autoSize = TextFieldAutoSize.CENTER;
gfx = new GFC();
backer.graphics.beginFill(0, 0.4);
backer.graphics.drawRect(30, 370, 540, 120);
backer.graphics.endFill();
}
public static function Get(_arg1:uint):String{
switch (_arg1){
case 0:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005500550000000000000055115500000000000000010010000000000000000100100000000000000055115500000000000000550054000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 1:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000001111110000000000000010110100000000000004115511000000000000001155114000000000000010110100000000000000111111000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 2:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005555555555000000000050000000050000000000501111110500000000005011100105000000000550111001154000000004511001110550000000005010011105000000000050111111050000000000500000000500000000005555555555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 3:
return ("0000000000000000000000000000000000000000000000000000000000000000000005400000000000005555555555550000000050000010000500000000501110111005000000005010011101050000000050111101100500000004511110010005500000055011100111154000000050101110110500000000501011010105000000005001110111050000000050000100000500000000555555555555000000000000045000000000000000000000000000000000000000000000000000000000000000000000");
case 4:
return ("0000000000000000000000000000001111000000000001111111010000000000010000101100000000111111101001000000001001110111111000000010011111000011110000100001010000100100001000010100001001000010000105511111110000111111154000010000000010001001100100000000100010000111000000001000111101110000000011111001111100000000000100010000000000000001000100000000000000011111000000000000000000000000000000000000000000000000");
case 5:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000020000000000000000000200000000000000000005422100000000000012255000000000000000000020000000000000000000200000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 6:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000001111000000000000000211112000000000000010002001000000000501100110011050000045111101121111550000550000211011115400000511110000111050000000001101101100000000000001011011000000000000002112100000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 7:
return ("0000000000000000000000000000000000000000000000000000000000000011115511111511110000100100102010020100001111001020101011000010010012021002010000111100102010101100001001001202100201000510010010001010115005111100120210020150001001001020101011000011110012021002010000100100102010101100001111001202100201000010010010001010110000111155111115111100000000000000000000000000000000000000000000000000000000000000");
case 8:
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001300000000000000000003000000000000000000031000000000000000000300300000000000020004531300000000002322255030000000000002000030000000000000000003300000000000000000003000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
case 9:
return ("0000000000000000000000000000000000000000000000011111100000000000001000000100000000000100000000100000000001000000001000000000010000000010000000000411111111400000000001100000011000000000010100001010000000000100100100100000000001000110001000000000010001100010000000000100100100100000000001010000101000000000011000000110000000000411111111400000000000000000000000000000000000000000000000000000000000000000");
case 10:
return ("0000000000000000000000000000005000000000000000000050000000000000005555555550000000000020001000020000000111100050001110000001110000313331200000011100005000112000000030000010003000000030303313000011100000111300050000113000000111000100001110000000300000313313200000012300005000000000001330000010000000000001021113000000000000000012050000000000000000000500000000000000000004000000000000000000000000000000");
case 11:
return ("0000000000000000000000000111111100000000000111000001000000000001000010010000000000010011111100000000000101100001110000000001110000010110000001110100000100110000100001000011000111001000010001100011010010000100110000100100100001011050001011000100001100000011110001000011040000010100001000111000000110000011011003333330100000011100000011110000000001100111000000000000000110000000000000000000000000000000");
case 12:
Player.GFX.alpha = 0;
Player.state = 6;
Pointer.GFX.alpha = 0;
Game.layertop.addChild(gfx);
Game.layertop.addChild(backer);
Game.layertop.addChild(txt);
txt.x = 50;
txt.y = 400;
txt.wordWrap = true;
txt.width = 500;
return ("0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");
};
return ("");
}
}
}//package Obs
Section 21
//LevStr_GFC (Obs.LevStr_GFC)
package Obs {
import mx.core.*;
public class LevStr_GFC extends BitmapAsset {
}
}//package Obs
Section 22
//Loader (Obs.Loader)
package Obs {
import flash.events.*;
import flash.display.*;
import mx.core.*;
import flash.text.*;
import mochi.as3.*;
import flash.net.*;
import flash.utils.*;
public dynamic class Loader extends MovieClip {
public var app:Object;
public var loaded:Boolean;// = false
public var logo:BitmapAsset;
public var txt:TextField;
private var GLOGO:Class;
public var gfx:Sprite;
private var fonter:Class;
public function Loader(){
var lox:Sprite;
var vox:Sprite;
fonter = Loader_fonter;
GLOGO = Loader_GLOGO;
gfx = new Sprite();
txt = new TextField();
super();
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
logo = new GLOGO();
logo.x = 0;
logo.y = 0;
txt.y = 400;
txt.embedFonts = true;
txt.autoSize = TextFieldAutoSize.CENTER;
gfx.addChild(logo);
gfx.addChild(txt);
addChild(gfx);
txt.textColor = 0xFFFFFF;
txt.scaleX = 1;
txt.scaleY = 1;
var percent:Number = (Math.floor(((root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal) * 100)) / 100);
txt.htmlText = (("<font face='Fonter' size='30'>" + (Math.floor((percent * 100)) / 100)) + "%</font>");
txt.x = (300 - (txt.width / 2));
gfx.visible = false;
lox = new Sprite();
lox.graphics.beginFill(0xFFFFFF, 0.2);
lox.graphics.drawRect(0, 465, 156, 141);
lox.buttonMode = true;
lox.alpha = 0;
lox.addEventListener(MouseEvent.MOUSE_OVER, function ():void{
lox.alpha = 1;
});
lox.addEventListener(MouseEvent.MOUSE_OUT, function ():void{
lox.alpha = 0;
});
lox.addEventListener(MouseEvent.CLICK, function ():void{
openWindow("http://mauft.com", "_blank");
});
vox = new Sprite();
vox.graphics.beginFill(0xFFFFFF, 0.2);
vox.graphics.drawRect(0, 403, 600, 31);
vox.buttonMode = true;
vox.alpha = 0;
vox.addEventListener(MouseEvent.MOUSE_OVER, function ():void{
vox.alpha = 1;
});
vox.addEventListener(MouseEvent.MOUSE_OUT, function ():void{
vox.alpha = 0;
});
vox.addEventListener(MouseEvent.CLICK, clickman);
gfx.addChild(vox);
gfx.addChild(lox);
MochiAd.showPreGameAd({clip:root, id:"6cd43bc56e1516a7", res:"600x600", ad_finished:function ():void{
gfx.visible = true;
}});
}
public function click(_arg1:Event):void{
if (app != null){
app.Clicked(_arg1);
};
}
public function clickman(_arg1:Event):void{
var _local2:Class;
if (loaded){
removeEventListener(Event.ENTER_FRAME, onEnterFrame);
removeChild(gfx);
gfx.removeEventListener(MouseEvent.MOUSE_DOWN, clickman);
nextFrame();
_local2 = Class(getDefinitionByName("Game"));
if (_local2){
app = new (_local2);
addChild((app as DisplayObject));
stage.addEventListener(MouseEvent.CLICK, click);
};
};
}
private function init():void{
txt.htmlText = "<font face='Fonter' size='30'>Game Loaded. Click to play!</font>";
txt.x = (300 - (txt.width / 2));
loaded = true;
}
public function onEnterFrame(_arg1:Event):void{
var _local2:Number;
if (framesLoaded == totalFrames){
init();
} else {
_local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal);
txt.htmlText = (("<font face='Fonter' size='30'>" + (Math.floor((_local2 * 10000)) / 100)) + "%</font>");
txt.x = (300 - (txt.width / 2));
};
}
public static function openWindow(_arg1:String, _arg2:String="", _arg3:String=""):void{
navigateToURL(new URLRequest(_arg1), _arg2);
}
}
}//package Obs
Section 23
//Loader_fonter (Obs.Loader_fonter)
package Obs {
import mx.core.*;
public class Loader_fonter extends FontAsset {
}
}//package Obs
Section 24
//Loader_GLOGO (Obs.Loader_GLOGO)
package Obs {
import mx.core.*;
public class Loader_GLOGO extends BitmapAsset {
}
}//package Obs
Section 25
//Player (Obs.Player)
package Obs {
import mx.core.*;
import flash.display.*;
import flash.media.*;
public class Player {
private var S3:Class;
private var GFC:Class;
private var S1:Class;
private var S2:Class;
public static var movex:int = 0;
public static var PI:Number;
public static var movey:int = 0;
public static var state:uint = 3;
public static var GFX:Sprite = new Sprite();
public static var movestate:int;
public static var SFX1:Sound;
public static var SFX2:Sound;
public static var SFX3:Sound;
public static var pipe:Boolean = false;
public static var x:uint = 0;
public static var y:uint = 0;
public static var z:Number = 2;
public function Player(){
GFC = Player_GFC;
S1 = Player_S1;
S2 = Player_S2;
S3 = Player_S3;
super();
var _local1:BitmapAsset = new GFC();
GFX.addChild(_local1);
_local1.x = -15;
_local1.y = -15;
PI = Math.PI;
SFX1 = new S1();
SFX2 = new S2();
SFX3 = new S3();
Initia();
}
public static function Update():void{
switch (state){
case 0:
GFX.alpha = Math.sin(((PI * z) / 2));
GFX.scaleX = z;
GFX.scaleY = z;
GFX.x = (x + 15);
GFX.y = (y + 15);
if (z > 0){
z = (z - 0.1);
} else {
state = 3;
Game.fillLevel(Game.lid);
pipe = false;
return;
};
if (z <= 1){
if (Game.At((x / 30), (y / 30)) != null){
state = 1;
GFX.alpha = 1;
GFX.scaleX = 1;
GFX.scaleY = 1;
z = 1;
} else {
if (pipe == false){
if (Sounder.on){
SFX3.play();
};
pipe = true;
};
};
};
break;
case 2:
x = (x + (Game.Sign(movex) * 5));
y = (y + (Game.Sign(movey) * 5));
movex = (movex - (Game.Sign(movex) * 5));
movey = (movey - (Game.Sign(movey) * 5));
movestate = (movestate - 5);
z = (1 + (Math.sin(((PI / 30) * movestate)) / 3));
GFX.scaleX = z;
GFX.scaleY = z;
GFX.x = (x + 15);
GFX.y = (y + 15);
if (movestate == 0){
if (Game.At((x / 30), (y / 30)) != null){
if ((((Game.At((x / 30), (y / 30)).type == 3)) && ((Block.count == 0)))){
Game.lid++;
Game.fillLevel(Game.lid);
state = 3;
z = 2;
GFX.alpha = 0;
GFX.scaleX = z;
GFX.scaleY = z;
GFX.x = (x + 15);
GFX.y = (y + 15);
if (Sounder.on){
SFX2.play();
};
return;
};
state = 1;
GFX.alpha = 1;
GFX.scaleX = 1;
GFX.scaleY = 1;
z = 1;
} else {
state = 0;
};
};
break;
};
}
public static function Clicked(_arg1:uint, _arg2:uint):void{
var _local3:Block;
switch (state){
case 3:
state = 0;
x = (_arg1 * 30);
y = (_arg2 * 30);
z = 2;
if (Sounder.on){
SFX3.play();
};
break;
case 1:
if ((((Math.abs((_arg1 - (x / 30))) <= 1)) && ((Math.abs((_arg2 - (y / 30))) <= 1)))){
state = 2;
movex = ((_arg1 * 30) - x);
movey = ((_arg2 * 30) - y);
movestate = 30;
if (Sounder.on){
SFX1.play();
};
if (((!((movex == 0))) || (!((movey == 0))))){
_local3 = Game.At((x / 30), (y / 30));
if (_local3 != null){
_local3.Hit();
};
};
};
};
}
public static function Initia():void{
GFX.x = (x + 15);
GFX.y = (y + 15);
Game.layertop.addChildAt(GFX, 0);
GFX.alpha = 0;
}
}
}//package Obs
Section 26
//Player_GFC (Obs.Player_GFC)
package Obs {
import mx.core.*;
public class Player_GFC extends BitmapAsset {
}
}//package Obs
Section 27
//Player_S1 (Obs.Player_S1)
package Obs {
import mx.core.*;
public class Player_S1 extends SoundAsset {
}
}//package Obs
Section 28
//Player_S2 (Obs.Player_S2)
package Obs {
import mx.core.*;
public class Player_S2 extends SoundAsset {
}
}//package Obs
Section 29
//Player_S3 (Obs.Player_S3)
package Obs {
import mx.core.*;
public class Player_S3 extends SoundAsset {
}
}//package Obs
Section 30
//Pointer (Obs.Pointer)
package Obs {
import mx.core.*;
public class Pointer {
private var GFC:Class;
public static var y:int = 0;
public static var x:int = 0;
public static var GFX:BitmapAsset;
public function Pointer(){
GFC = Pointer_GFC;
super();
GFX = new GFC();
Game.layertop.addChild(GFX);
}
public static function Update(_arg1:uint, _arg2:uint):void{
x = Math.floor((_arg1 / 30));
y = Math.floor((_arg2 / 30));
GFX.x = (30 * x);
GFX.y = (30 * y);
}
public static function Initia():void{
GFX.x = (30 * x);
GFX.y = (30 * y);
}
}
}//package Obs
Section 31
//Pointer_GFC (Obs.Pointer_GFC)
package Obs {
import mx.core.*;
public class Pointer_GFC extends BitmapAsset {
}
}//package Obs
Section 32
//Sounder (Obs.Sounder)
package Obs {
import mx.core.*;
import flash.media.*;
public class Sounder {
private var G1:Class;
private var G2:Class;
private var S1:Class;
public static var mus:Sound;
public static var chan:SoundChannel;
public static var GFX1:BitmapAsset;
public static var GFX2:BitmapAsset;
public static var on:uint = 1;
public function Sounder(){
G1 = Sounder_G1;
G2 = Sounder_G2;
S1 = Sounder_S1;
super();
GFX1 = new G1();
GFX2 = new G2();
mus = new S1();
GFX1.x = (GFX1.y = (GFX2.x = (GFX2.y = 540)));
GFX1.alpha = (GFX2.alpha = 0.6);
Game.layertop.addChild(GFX2);
chan = mus.play(0, 1000);
}
public static function Click():void{
if ((((Pointer.x > 17)) && ((Pointer.y > 17)))){
if (on == 1){
Game.layertop.removeChild(GFX2);
Game.layertop.addChild(GFX1);
chan.stop();
} else {
Game.layertop.removeChild(GFX1);
Game.layertop.addChild(GFX2);
chan = mus.play(0, 1000);
};
on = (1 - on);
};
}
public static function Update():void{
if ((((Pointer.x > 17)) && ((Pointer.y > 17)))){
GFX1.alpha = (GFX2.alpha = 1);
} else {
GFX1.alpha = (GFX2.alpha = 0.6);
};
}
}
}//package Obs
Section 33
//Sounder_G1 (Obs.Sounder_G1)
package Obs {
import mx.core.*;
public class Sounder_G1 extends BitmapAsset {
}
}//package Obs
Section 34
//Sounder_G2 (Obs.Sounder_G2)
package Obs {
import mx.core.*;
public class Sounder_G2 extends BitmapAsset {
}
}//package Obs
Section 35
//Sounder_S1 (Obs.Sounder_S1)
package Obs {
import mx.core.*;
public class Sounder_S1 extends SoundAsset {
}
}//package Obs
Section 36
//Game (Game)
package {
import Obs.*;
import flash.events.*;
import flash.display.*;
public class Game extends Sprite {
private var GFC:Class;
public static var layertop:Sprite = new Sprite();
public static var layerblos:Sprite = new Sprite();
public static var lid:uint = 0;
public static var effects:Array = new Array();
public static var level:Array;
public static var Self:Game;
public static var layerback:Sprite = new Sprite();
public static var flasher:Sprite = new Sprite();
public static var layertext:Sprite = new Sprite();
public function Game(){
var _local3:uint;
GFC = Game_GFC;
super();
new LevStr();
new Sounder();
flasher.graphics.beginFill(0xFFFFFF);
flasher.graphics.drawRect(0, 0, 600, 600);
flasher.graphics.endFill();
flasher.alpha = 0;
var _local1:Sprite = new Sprite();
var _local2:Bitmap = new GFC();
_local1.graphics.beginBitmapFill(_local2.bitmapData, null, true);
_local1.graphics.drawRect(0, 0, 600, 600);
_local1.graphics.endFill();
layerback.addChild(_local1);
addChild(layerback);
addChild(layerblos);
addChild(layertop);
addChild(layertext);
addChild(flasher);
Self = this;
new Pointer();
Pointer.Initia();
new Player();
addEventListener(Event.ENTER_FRAME, Step);
level = new Array(20);
_local3 = 0;
while (_local3 < 20) {
level[_local3] = new Array(20);
_local3++;
};
fillLevel(lid);
}
private function Step(_arg1:Event):void{
Sounder.Update();
if (flasher.alpha > 0){
flasher.alpha = (flasher.alpha - 0.05);
};
Pointer.Update(mouseX, mouseY);
Player.Update();
var _local2:int = (effects.length - 1);
while (_local2 >= 0) {
if ((effects[_local2] is BloEff)){
BloEff(effects[_local2]).Update();
} else {
effects.splice(_local2, 1);
};
_local2--;
};
}
public function Clicked(_arg1:MouseEvent):void{
Player.Clicked(Pointer.x, Pointer.y);
Sounder.Click();
}
public static function fillLevel(_arg1:uint):void{
var _local4:uint;
flasher.alpha = 1;
var _local2:String = LevStr.Get(_arg1);
Block.count = 0;
var _local3:uint;
while (_local3 < 20) {
_local4 = 0;
while (_local4 < 20) {
if (At(_local4, _local3) != null){
At(_local4, _local3).removeGFX();
};
if (_local2.charAt((_local4 + (_local3 * 20))) != "0"){
level[_local4][_local3] = new Block(_local4, _local3, (Number(_local2.charAt((_local4 + (_local3 * 20)))) - 1));
} else {
level[_local4][_local3] = null;
};
_local4++;
};
_local3++;
};
}
public static function Sign(_arg1:Number):int{
if (_arg1 > 0){
return (1);
};
if (_arg1 < 0){
return (-1);
};
return (0);
}
public static function At(_arg1:int, _arg2:int):Block{
if ((((((((_arg1 < 0)) || ((_arg1 > 19)))) || ((_arg2 < 0)))) || ((_arg2 > 19)))){
return (null);
};
return (level[_arg1][_arg2]);
}
}
}//package
Section 37
//Game_GFC (Game_GFC)
package {
import mx.core.*;
public class Game_GFC extends BitmapAsset {
}
}//package