home *** CD-ROM | disk | FTP | other *** search
Wrap
package Code.LIB.MOCHIADS { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.StatusEvent; import flash.events.TimerEvent; import flash.net.LocalConnection; import flash.net.URLRequest; import flash.system.Security; import flash.utils.Timer; import flash.utils.getTimer; public class _rg35 { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; private static var _sendChannel:LocalConnection; public static var _vn456:Object; private static var _rcvChannelName:String; private static var _gatewayURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; private static var _timer:Timer; private static var _sendChannelName:String; private static var _startTime:Number; private static var _listenChannelName:String = "__mochiservices"; private static var _connecting:Boolean = false; private static var _rcvChannel:LocalConnection; public function _rg35() { super(); } public static function _qh508(param1:Object = null, param2:Boolean = true) : void { if(param1 != null) { if(param1 is Sprite) { _container = param1; } } if(param2) { if(_container is Sprite) { Sprite(_container).addChild(_clip); } } } public static function send(param1:String, param2:Object = null, param3:Object = null, param4:Object = null) : void { if(_connected) { _sendChannel.send(_sendChannelName,"onReceive",{ "methodName":param1, "args":param2, "callbackID":_clip._nextcallbackID }); } else { if(_clip == null || !_connecting) { _vn456("NotConnected"); handleError(param2,param3,param4); flush(true); return; } _clip._queue.push({ "methodName":param1, "args":param2, "callbackID":_clip._nextcallbackID }); } if(_clip != null) { if(_clip._callbacks != null && _clip._nextcallbackID != null) { _clip._callbacks[_clip._nextcallbackID] = { "callbackObject":param3, "callbackMethod":param4 }; ++_clip._nextcallbackID; } } } public static function get connected() : Boolean { return _connected; } private static function flush(param1:Boolean) : void { var _loc2_:Object = null; var _loc3_:Object = null; if(_clip != null) { if(_clip._queue != null) { while(_clip._queue.length > 0) { _loc2_ = _clip._queue.shift(); _loc3_ = null; if(_loc2_ != null) { if(_loc2_.callbackID != null) { _loc3_ = _clip._callbacks[_loc2_.callbackID]; } delete _clip._callbacks[_loc2_.callbackID]; if(param1 && _loc3_ != null) { handleError(_loc2_.args,_loc3_.callbackObject,_loc3_.callbackMethod); } } } } } } public static function _ia91(param1:Object, param2:String, param3:Number, param4:Boolean = true) : MovieClip { var mc:MovieClip = null; var parent:Object = param1; var name:String = param2; var depth:Number = param3; var doAdd:Boolean = param4; mc = new MovieClip(); if(doAdd) { if(false && Boolean(depth)) { parent.addChildAt(mc,depth); } else { parent.addChild(mc); } } try { parent[name] = mc; } catch(e:Error) { throw new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic."); } mc["_name"] = name; return mc; } private static function init(param1:String, param2:Object) : void { _id = param1; if(param2 != null) { _container = param2; _pv197(param1,_container); } } public static function _bo468() : void { _container.removeEventListener(Event.ENTER_FRAME,_rg35._jq231); if(_clip.parent != null) { Sprite(_clip.parent).removeChild(_clip); } } public static function get id() : String { return _id; } public static function _sl357() : String { return "1.31"; } public static function set _ch299(param1:String) : void { if(param1 != null) { if(param1.length > 3) { _sendChannelName = param1 + "_fromgame"; _rcvChannelName = param1; _gu532(); } } } public static function _ao430() : Boolean { return Security.sandboxType != "localWithFile"; } private static function _gu532() : void { if(!_connected) { _sendChannel.addEventListener(StatusEvent.STATUS,_rg35._kv38); _sendChannel.send(_sendChannelName,"onReceive",{"methodName":"handshakeDone"}); _sendChannel.send(_sendChannelName,"onReceive",{ "methodName":"registerGame", "id":_id, "_nw236":_container, "version":_sl357() }); _rcvChannel.addEventListener(StatusEvent.STATUS,_rg35._kv38); _clip.onReceive = function(param1:Object):void { var cb:String = null; var cblst:Object = null; var method:* = undefined; var methodName:String = null; var obj:Object = null; var pkg:Object = param1; cb = String(pkg.callbackID); cblst = this.client._callbacks[cb]; if(!cblst) { return; } method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if(Boolean(obj) && typeof method == "string") { methodName = method; if(obj[method] != null) { method = obj[method]; } else { trace("Error: Method " + method + " does not exist."); } } if(method != undefined) { try { method.apply(obj,pkg.args); } catch(error:Error) { trace("Error invoking callback method \'" + methodName + "\': " + error.toString()); } } else if(obj != null) { try { obj(pkg.args); } catch(error:Error) { trace("Error invoking method on object: " + error.toString()); } } delete this.client._callbacks[cb]; }; _clip._vn456 = function():void { _rg35._vn456("IOError"); }; _rcvChannel.connect(_rcvChannelName); trace("connected!"); _connecting = false; _connected = true; _listenChannel.close(); while(_clip._queue.length > 0) { _sendChannel.send(_sendChannelName,"onReceive",_clip._queue.shift()); } } } public static function disconnect() : void { if(_connected || _connecting) { if(_clip != null) { if(_clip.parent != null) { if(_clip.parent is Sprite) { Sprite(_clip.parent).removeChild(_clip); _clip = null; } } } _connecting = _connected = false; flush(true); try { _listenChannel.close(); _rcvChannel.close(); } catch(error:Error) { } } if(_timer != null) { try { _timer.stop(); } catch(error:Error) { } } } public static function get _nw236() : Object { return _container; } public static function _bx81(param1:String) : String { var _loc2_:String = null; Security.allowDomain("*"); Security.allowInsecureDomain("*"); if(param1.indexOf("http://") != -1) { _loc2_ = String(param1.split("/")[2].split(":")[0]); Security.allowDomain(_loc2_); Security.allowInsecureDomain(_loc2_); } return _loc2_; } public static function get _wu136() : Object { return _clip; } private static function handleError(param1:Object, param2:Object, param3:Object) : void { var args:Object = param1; var callbackObject:Object = param2; var callbackMethod:Object = param3; if(args != null) { if(args._vn456 != null) { args._vn456.apply(null,["NotConnected"]); } } if(callbackMethod != null) { args = {}; args.error = true; args.errorCode = "NotConnected"; if(callbackObject != null && callbackMethod is String) { try { callbackObject[callbackMethod](args); } catch(error:Error) { } } else if(callbackMethod != null) { try { callbackMethod.apply(args); } catch(error:Error) { } } } } private static function _pv197(param1:String, param2:Object) : MovieClip { var clipname:String = null; var f:Function = null; var req:URLRequest = null; var id:String = param1; var _nw236:Object = param2; clipname = "_mochiservices_com_" + id; if(_clip != null) { return _clip; } if(!_rg35._ao430()) { return null; } _rg35._bx81(_gatewayURL); _clip = _ia91(_nw236,clipname,10336,false); _loader = new Loader(); _timer = new Timer(1000,0); _startTime = getTimer(); _timer.addEventListener(TimerEvent.TIMER,_be235); _timer.start(); f = function(param1:Object):void { _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); _rg35.disconnect(); _rg35._vn456("IOError"); }; _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,f); req = new URLRequest(_gatewayURL); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _rcvChannel = new LocalConnection(); _rcvChannel.allowDomain("*","localhost"); _rcvChannel.allowInsecureDomain("*","localhost"); _rcvChannel.client = _clip; _clip._nextcallbackID = 0; _clip._callbacks = {}; _bc564(); return _clip; } private static function _bc564() : void { _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function(param1:Object):void { _rg35._ch299 = param1.newChannel; }; _listenChannel.allowDomain("*","localhost"); _listenChannel.allowInsecureDomain("*","localhost"); _listenChannel.connect(_listenChannelName); trace("Waiting for MochiAds services to connect..."); } public static function _nb559() : void { _container.addEventListener(Event.ENTER_FRAME,_rg35._jq231,false,0,true); if(_clip != null) { _clip.visible = true; } } public static function _jq231(param1:Event) : void { var e:Event = param1; if(_rg35._nw236 != null) { if(_rg35._wu136 != null) { try { if(_rg35._nw236.numChildren > 1) { _rg35._nw236.setChildIndex(_rg35._wu136,_rg35._nw236.numChildren - 1); } } catch(errorObject:Error) { trace("Warning: Depth sort error."); _container.removeEventListener(Event.ENTER_FRAME,_rg35._jq231); } } } } public static function connect(param1:String, param2:Object, param3:Object = null) : void { var id:String = param1; var _nw236:Object = param2; var _vn456:Object = param3; if(_nw236 is DisplayObject) { if(!_connected && _clip == null) { trace("MochiServices Connecting..."); _connecting = true; init(id,_nw236); } } else { trace("Error, MochiServices requires a Sprite, Movieclip or instance of the stage."); } if(_vn456 != null) { _rg35._vn456 = _vn456; } else if(_rg35._vn456 == null) { _rg35._vn456 = function(param1:String):void { trace(param1); }; } } public static function _be235(param1:TimerEvent) : void { if(getTimer() - _startTime > 10000) { if(!_connected) { _clip._mochiad_ctr_failed = true; trace("MochiServices could not load."); _rg35.disconnect(); _rg35._vn456("IOError"); } _timer.stop(); } } private static function _kv38(param1:StatusEvent) : void { switch(param1.level) { case "error": _connected = false; _listenChannel.connect(_listenChannelName); } } } }