home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / clickfest3.swf / scripts / __Packages / MochiAd.as
Encoding:
Text File  |  2008-09-16  |  18.0 KB  |  603 lines

  1. class MochiAd
  2. {
  3.    var clip;
  4.    var fadeout_start;
  5.    var fadeout_time;
  6.    var _parent;
  7.    var onEnterFrame;
  8.    var mc;
  9.    var started;
  10.    var _mochiad_bar;
  11.    var last_pcnt;
  12.    var server_control;
  13.    var fadeFunction;
  14.    var _callbacks;
  15.    var _endpoint;
  16.    var _queue;
  17.    var doSend;
  18.    var _id;
  19.    var _mochiad_ctr;
  20.    var _url;
  21.    function MochiAd()
  22.    {
  23.    }
  24.    static function getVersion()
  25.    {
  26.       return "2.3";
  27.    }
  28.    static function showPreGameAd(options)
  29.    {
  30.       var _loc27_ = {clip:_root,ad_timeout:3000,fadeout_time:250,regpt:"o",method:"showPreloaderAd",color:16747008,background:16777161,outline:13994812,ad_started:function()
  31.       {
  32.          this.clip.stop();
  33.       },ad_finished:function()
  34.       {
  35.          this.clip.maxgames.play();
  36.       },ad_failed:function()
  37.       {
  38.          trace("[MochAd] Couldn\'t load an ad, make sure that your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
  39.       },ad_loaded:function(width, height)
  40.       {
  41.       }};
  42.       options = MochiAd._parseOptions(options,_loc27_);
  43.       if("5cc6f7dfb67f2f08341c831480f7c2a7".length == 0)
  44.       {
  45.          options.ad_started();
  46.          options.ad_finished();
  47.          return undefined;
  48.       }
  49.       var clip = options.clip;
  50.       var _loc23_ = 11000;
  51.       var _loc26_ = options.ad_timeout;
  52.       delete options.ad_timeout;
  53.       var fadeout_time = options.fadeout_time;
  54.       delete options.fadeout_time;
  55.       if(!MochiAd.load(options))
  56.       {
  57.          options.ad_failed();
  58.          options.ad_finished();
  59.          return undefined;
  60.       }
  61.       options.ad_started();
  62.       var mc = clip._mochiad;
  63.       mc.onUnload = function()
  64.       {
  65.          options.ad_finished();
  66.       };
  67.       var _loc14_ = MochiAd._getRes(options);
  68.       var _loc4_ = _loc14_[0];
  69.       var _loc13_ = _loc14_[1];
  70.       mc._x = _loc4_ * 0.5;
  71.       mc._y = _loc13_ * 0.5;
  72.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  73.       chk._x = _loc4_ * -0.5;
  74.       chk._y = _loc13_ * -0.5;
  75.       var _loc7_ = chk.createEmptyMovieClip("_mochiad_bar",4);
  76.       _loc7_._x = 10;
  77.       _loc7_._y = _loc13_ - 20;
  78.       var _loc22_ = options.color;
  79.       delete options.color;
  80.       var _loc19_ = options.background;
  81.       delete options.background;
  82.       var _loc24_ = options.outline;
  83.       delete options.outline;
  84.       var _loc5_ = _loc7_.createEmptyMovieClip("_outline",1);
  85.       _loc5_.beginFill(_loc19_);
  86.       _loc5_.moveTo(0,0);
  87.       _loc5_.lineTo(_loc4_ - 20,0);
  88.       _loc5_.lineTo(_loc4_ - 20,10);
  89.       _loc5_.lineTo(0,10);
  90.       _loc5_.lineTo(0,0);
  91.       _loc5_.endFill();
  92.       var _loc3_ = _loc7_.createEmptyMovieClip("_inside",2);
  93.       _loc3_.beginFill(_loc22_);
  94.       _loc3_.moveTo(0,0);
  95.       _loc3_.lineTo(_loc4_ - 20,0);
  96.       _loc3_.lineTo(_loc4_ - 20,10);
  97.       _loc3_.lineTo(0,10);
  98.       _loc3_.lineTo(0,0);
  99.       _loc3_.endFill();
  100.       _loc3_._xscale = 0;
  101.       var _loc6_ = _loc7_.createEmptyMovieClip("_outline",3);
  102.       _loc6_.lineStyle(0,_loc24_,100);
  103.       _loc6_.moveTo(0,0);
  104.       _loc6_.lineTo(_loc4_ - 20,0);
  105.       _loc6_.lineTo(_loc4_ - 20,10);
  106.       _loc6_.lineTo(0,10);
  107.       _loc6_.lineTo(0,0);
  108.       chk.ad_msec = _loc23_;
  109.       chk.ad_timeout = _loc26_;
  110.       chk.started = getTimer();
  111.       chk.showing = false;
  112.       chk.last_pcnt = 0;
  113.       chk.fadeout_time = fadeout_time;
  114.       chk.fadeFunction = function()
  115.       {
  116.          var _loc2_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  117.          if(_loc2_ > 0)
  118.          {
  119.             this._parent._alpha = _loc2_;
  120.          }
  121.          else
  122.          {
  123.             var _loc3_ = this._parent._parent;
  124.             MochiAd.unload(_loc3_);
  125.             delete this.onEnterFrame;
  126.          }
  127.       };
  128.       mc.lc.adLoaded = options.ad_loaded;
  129.       mc.lc.adjustProgress = function(msec)
  130.       {
  131.          var _loc2_ = this.mc._mochiad_wait;
  132.          _loc2_.server_control = true;
  133.          _loc2_.started = getTimer();
  134.          _loc2_.ad_msec = msec;
  135.       };
  136.       chk.onEnterFrame = function()
  137.       {
  138.          var _loc6_ = this._parent._parent;
  139.          var _loc12_ = this._parent._mochiad_ctr;
  140.          var _loc5_ = getTimer() - this.started;
  141.          var _loc3_ = false;
  142.          var _loc4_ = _loc6_.getBytesTotal();
  143.          var _loc8_ = _loc6_.getBytesLoaded();
  144.          var _loc10_ = 100 * _loc8_ / _loc4_;
  145.          var _loc11_ = 100 * _loc5_ / chk.ad_msec;
  146.          var _loc9_ = this._mochiad_bar._inside;
  147.          var _loc2_ = Math.min(100,Math.min(_loc10_ || 0,_loc11_));
  148.          _loc2_ = Math.max(this.last_pcnt,_loc2_);
  149.          this.last_pcnt = _loc2_;
  150.          _loc9_._xscale = _loc2_;
  151.          if(!chk.showing)
  152.          {
  153.             var _loc7_ = _loc12_.getBytesTotal();
  154.             if(_loc7_ > 0 || typeof _loc7_ == "undefined")
  155.             {
  156.                chk.showing = true;
  157.                chk.started = getTimer();
  158.             }
  159.             else if(_loc5_ > chk.ad_timeout)
  160.             {
  161.                options.ad_failed();
  162.                _loc3_ = true;
  163.             }
  164.          }
  165.          if(_loc5_ > chk.ad_msec)
  166.          {
  167.             _loc3_ = true;
  168.          }
  169.          if(_loc4_ > 0 && _loc8_ >= _loc4_ && _loc3_)
  170.          {
  171.             if(this.server_control)
  172.             {
  173.                delete this.onEnterFrame;
  174.             }
  175.             else
  176.             {
  177.                this.fadeout_start = getTimer();
  178.                this.onEnterFrame = chk.fadeFunction;
  179.             }
  180.          }
  181.       };
  182.    }
  183.    static function showInterLevelAd(options)
  184.    {
  185.       var _loc13_ = {clip:_root,ad_timeout:2000,fadeout_time:250,regpt:"o",method:"showTimedAd",ad_started:function()
  186.       {
  187.          this.clip.stop();
  188.       },ad_finished:function()
  189.       {
  190.          this.clip.play();
  191.       },ad_failed:function()
  192.       {
  193.          trace("[MochAd] Couldn\'t load an ad, make sure that your game\'s local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
  194.       },ad_loaded:function(width, height)
  195.       {
  196.       }};
  197.       options = MochiAd._parseOptions(options,_loc13_);
  198.       var clip = options.clip;
  199.       var _loc10_ = 11000;
  200.       var _loc12_ = options.ad_timeout;
  201.       delete options.ad_timeout;
  202.       var fadeout_time = options.fadeout_time;
  203.       delete options.fadeout_time;
  204.       if(!MochiAd.load(options))
  205.       {
  206.          options.ad_failed();
  207.          options.ad_finished();
  208.          return undefined;
  209.       }
  210.       options.ad_started();
  211.       var mc = clip._mochiad;
  212.       mc.onUnload = function()
  213.       {
  214.          options.ad_finished();
  215.       };
  216.       var _loc5_ = MochiAd._getRes(options);
  217.       var _loc14_ = _loc5_[0];
  218.       var _loc11_ = _loc5_[1];
  219.       mc._x = _loc14_ * 0.5;
  220.       mc._y = _loc11_ * 0.5;
  221.       var chk = mc.createEmptyMovieClip("_mochiad_wait",3);
  222.       chk.ad_msec = _loc10_;
  223.       chk.ad_timeout = _loc12_;
  224.       chk.started = getTimer();
  225.       chk.showing = false;
  226.       chk.fadeout_time = fadeout_time;
  227.       chk.fadeFunction = function()
  228.       {
  229.          var _loc2_ = 100 * (1 - (getTimer() - this.fadeout_start) / this.fadeout_time);
  230.          if(_loc2_ > 0)
  231.          {
  232.             this._parent._alpha = _loc2_;
  233.          }
  234.          else
  235.          {
  236.             var _loc3_ = this._parent._parent;
  237.             MochiAd.unload(_loc3_);
  238.             delete this.onEnterFrame;
  239.          }
  240.       };
  241.       mc.lc.adLoaded = options.ad_loaded;
  242.       mc.lc.adjustProgress = function(msec)
  243.       {
  244.          var _loc2_ = this.mc._mochiad_wait;
  245.          _loc2_.server_control = true;
  246.          _loc2_.started = getTimer();
  247.          _loc2_.ad_msec = msec - 250;
  248.       };
  249.       chk.onEnterFrame = function()
  250.       {
  251.          var _loc5_ = this._parent._mochiad_ctr;
  252.          var _loc4_ = getTimer() - this.started;
  253.          var _loc2_ = false;
  254.          if(!chk.showing)
  255.          {
  256.             var _loc3_ = _loc5_.getBytesTotal();
  257.             if(_loc3_ > 0 || typeof _loc3_ == "undefined")
  258.             {
  259.                chk.showing = true;
  260.                chk.started = getTimer();
  261.             }
  262.             else if(_loc4_ > chk.ad_timeout)
  263.             {
  264.                options.ad_failed();
  265.                _loc2_ = true;
  266.             }
  267.          }
  268.          if(_loc4_ > chk.ad_msec)
  269.          {
  270.             _loc2_ = true;
  271.          }
  272.          if(_loc2_)
  273.          {
  274.             if(this.server_control)
  275.             {
  276.                delete this.onEnterFrame;
  277.             }
  278.             else
  279.             {
  280.                this.fadeout_start = getTimer();
  281.                this.onEnterFrame = this.fadeFunction;
  282.             }
  283.          }
  284.       };
  285.    }
  286.    static function showTimedAd(options)
  287.    {
  288.       trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
  289.       MochiAd.showInterLevelAd(options);
  290.    }
  291.    static function showPreloaderAd(options)
  292.    {
  293.       trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
  294.       MochiAd.showPreGameAd(options);
  295.    }
  296.    static function _allowDomains(server)
  297.    {
  298.       var _loc1_ = server.split("/")[2].split(":")[0];
  299.       if(System.security)
  300.       {
  301.          if(System.security.allowDomain)
  302.          {
  303.             System.security.allowDomain("*");
  304.             System.security.allowDomain(_loc1_);
  305.          }
  306.          if(System.security.allowInsecureDomain)
  307.          {
  308.             System.security.allowInsecureDomain("*");
  309.             System.security.allowInsecureDomain(_loc1_);
  310.          }
  311.       }
  312.       return _loc1_;
  313.    }
  314.    static function _loadCommunicator(options)
  315.    {
  316.       var _loc26_ = {clip:_root,com_server:"http://x.mochiads.com/com/1/",method:"loadCommunicator",depth:10337,id:"_UNKNOWN_"};
  317.       options = MochiAd._parseOptions(options,_loc26_);
  318.       options.swfv = options.clip.getSWFVersion() || 6;
  319.       options.mav = MochiAd.getVersion();
  320.       var _loc18_ = options.clip;
  321.       var _loc20_ = "_mochiad_com_" + options.id;
  322.       if(!MochiAd._isNetworkAvailable())
  323.       {
  324.          return null;
  325.       }
  326.       if(_loc18_[_loc20_])
  327.       {
  328.          return _loc18_[_loc20_].lc;
  329.       }
  330.       var _loc21_ = options.com_server + options.id;
  331.       MochiAd._allowDomains(_loc21_);
  332.       delete options.id;
  333.       delete options.com_server;
  334.       var _loc25_ = options.depth;
  335.       delete options.depth;
  336.       var _loc17_ = _loc18_.createEmptyMovieClip(_loc20_,_loc25_);
  337.       var _loc11_ = _loc17_.createEmptyMovieClip("_mochiad_com",1);
  338.       for(var _loc15_ in options)
  339.       {
  340.          _loc11_[_loc15_] = options[_loc15_];
  341.       }
  342.       var _loc6_ = new LocalConnection();
  343.       var _loc16_ = ["",Math.floor(new Date().getTime()),random(999999)].join("_");
  344.       _loc6_.mc = _loc17_;
  345.       _loc6_.name = _loc16_;
  346.       _loc6_.allowDomain = function(d)
  347.       {
  348.          return true;
  349.       };
  350.       _loc6_.allowInsecureDomain = _loc6_.allowDomain;
  351.       _loc6_.connect(_loc16_);
  352.       _loc17_.lc = _loc6_;
  353.       _loc11_.lc = _loc16_;
  354.       _loc6_._id = 0;
  355.       _loc6_._queue = [];
  356.       _loc6_.rpcResult = function(cb_arg)
  357.       {
  358.          var _loc8_ = parseInt(cb_arg);
  359.          var _loc4_ = this._callbacks[_loc8_];
  360.          if(!_loc4_)
  361.          {
  362.             return undefined;
  363.          }
  364.          delete this._callbacks[_loc8_];
  365.          var _loc5_ = [];
  366.          var _loc3_ = 2;
  367.          while(_loc3_ < _loc4_.length)
  368.          {
  369.             _loc5_.push(_loc4_[_loc3_]);
  370.             _loc3_ = _loc3_ + 1;
  371.          }
  372.          _loc3_ = 1;
  373.          while(_loc3_ < arguments.length)
  374.          {
  375.             _loc5_.push(arguments[_loc3_]);
  376.             _loc3_ = _loc3_ + 1;
  377.          }
  378.          var _loc6_ = _loc4_[1];
  379.          var _loc7_ = _loc4_[0];
  380.          if(_loc7_ && typeof _loc6_ == "string")
  381.          {
  382.             _loc6_ = _loc7_[_loc6_];
  383.          }
  384.          if(_loc6_)
  385.          {
  386.             _loc6_.apply(_loc7_,_loc5_);
  387.          }
  388.       };
  389.       _loc6_._didConnect = function(endpoint)
  390.       {
  391.          this._endpoint = endpoint;
  392.          var _loc4_ = this._queue;
  393.          delete this._queue;
  394.          var _loc5_ = this.doSend;
  395.          var _loc2_ = 0;
  396.          while(_loc2_ < _loc4_.length)
  397.          {
  398.             var _loc3_ = _loc4_[_loc2_];
  399.             _loc5_.apply(this,_loc3_);
  400.             _loc2_ = _loc2_ + 1;
  401.          }
  402.       };
  403.       _loc6_.doSend = function(args, cbobj, cbfn)
  404.       {
  405.          if(this._endpoint == null)
  406.          {
  407.             var _loc4_ = [];
  408.             var _loc3_ = 0;
  409.             while(_loc3_ < arguments.length)
  410.             {
  411.                _loc4_.push(arguments[_loc3_]);
  412.                _loc3_ = _loc3_ + 1;
  413.             }
  414.             this._queue.push(_loc4_);
  415.             return undefined;
  416.          }
  417.          this._id += 1;
  418.          var _loc5_ = this._id;
  419.          if(cbfn === undefined || cbfn === null)
  420.          {
  421.             cbfn = cbobj;
  422.          }
  423.          this._callbacks[_loc5_] = [cbobj,cbfn];
  424.          var _loc7_ = new LocalConnection();
  425.          var _loc9_ = _loc7_.send(this._endpoint,"rpc",_loc5_,args);
  426.       };
  427.       _loc6_._callbacks = {};
  428.       _loc6_._callbacks[0] = [_loc6_,"_didConnect"];
  429.       _loc11_.st = getTimer();
  430.       _loc11_.loadMovie(_loc21_ + ".swf","POST");
  431.       return _loc6_;
  432.    }
  433.    static function fetchHighScores(options, callbackObj, callbackMethod)
  434.    {
  435.       var _loc1_ = MochiAd._loadCommunicator({id:options.id});
  436.       if(!_loc1_)
  437.       {
  438.          return false;
  439.       }
  440.       var _loc4_ = ["fetchHighScores",options];
  441.       _loc1_.doSend(["fetchHighScores",options],callbackObj,callbackMethod);
  442.       return true;
  443.    }
  444.    static function sendHighScore(options, callbackObj, callbackMethod)
  445.    {
  446.       var _loc1_ = MochiAd._loadCommunicator({id:options.id});
  447.       if(!_loc1_)
  448.       {
  449.          return false;
  450.       }
  451.       var _loc4_ = ["sendHighScore",options];
  452.       _loc1_.doSend(["sendHighScore",options],callbackObj,callbackMethod);
  453.       return true;
  454.    }
  455.    static function load(options)
  456.    {
  457.       var _loc13_ = {clip:_root,server:"http://x.mochiads.com/srv/1/",method:"load",depth:10333,id:"_UNKNOWN_"};
  458.       options = MochiAd._parseOptions(options,_loc13_);
  459.       options.swfv = options.clip.getSWFVersion() || 6;
  460.       options.mav = MochiAd.getVersion();
  461.       var _loc9_ = options.clip;
  462.       if(!MochiAd._isNetworkAvailable())
  463.       {
  464.          return null;
  465.       }
  466.       if(_loc9_._mochiad_loaded)
  467.       {
  468.          return null;
  469.       }
  470.       var _loc12_ = options.depth;
  471.       delete options.depth;
  472.       var _loc6_ = _loc9_.createEmptyMovieClip("_mochiad",_loc12_);
  473.       var _loc11_ = MochiAd._getRes(options);
  474.       options.res = _loc11_[0] + "x" + _loc11_[1];
  475.       options.server += options.id;
  476.       delete options.id;
  477.       _loc9_._mochiad_loaded = true;
  478.       var _loc4_ = _loc6_.createEmptyMovieClip("_mochiad_ctr",1);
  479.       for(var _loc7_ in options)
  480.       {
  481.          _loc4_[_loc7_] = options[_loc7_];
  482.       }
  483.       var _loc10_ = _loc4_.server;
  484.       delete _loc4_.server;
  485.       var _loc14_ = MochiAd._allowDomains(_loc10_);
  486.       _loc6_.onEnterFrame = function()
  487.       {
  488.          if(this._mochiad_ctr._url != this._url)
  489.          {
  490.             this.onEnterFrame = function()
  491.             {
  492.                if(!this._mochiad_ctr)
  493.                {
  494.                   delete this.onEnterFrame;
  495.                   MochiAd.unload(this._parent);
  496.                }
  497.             };
  498.          }
  499.       };
  500.       var _loc5_ = new LocalConnection();
  501.       var _loc8_ = ["",Math.floor(new Date().getTime()),random(999999)].join("_");
  502.       _loc5_.mc = _loc6_;
  503.       _loc5_.name = _loc8_;
  504.       _loc5_.hostname = _loc14_;
  505.       _loc5_.allowDomain = function(d)
  506.       {
  507.          return true;
  508.       };
  509.       _loc5_.allowInsecureDomain = _loc5_.allowDomain;
  510.       _loc5_.connect(_loc8_);
  511.       _loc6_.lc = _loc5_;
  512.       _loc4_.lc = _loc8_;
  513.       _loc4_.st = getTimer();
  514.       _loc4_.loadMovie(_loc10_ + ".swf","POST");
  515.       return _loc6_;
  516.    }
  517.    static function unload(clip)
  518.    {
  519.       if(typeof clip == "undefined")
  520.       {
  521.          clip = _root;
  522.       }
  523.       if(clip.clip && clip.clip._mochiad)
  524.       {
  525.          clip = clip.clip;
  526.       }
  527.       if(!clip._mochiad)
  528.       {
  529.          return false;
  530.       }
  531.       clip._mochiad.removeMovieClip();
  532.       delete clip._mochiad_loaded;
  533.       delete clip._mochiad;
  534.       return true;
  535.    }
  536.    static function _isNetworkAvailable()
  537.    {
  538.       if(System.security)
  539.       {
  540.          var _loc1_ = System.security;
  541.          if(_loc1_.sandboxType == "localWithFile")
  542.          {
  543.             return false;
  544.          }
  545.       }
  546.       return true;
  547.    }
  548.    static function _getRes(options)
  549.    {
  550.       var _loc3_ = options.clip.getBounds();
  551.       var _loc2_ = 0;
  552.       var _loc1_ = 0;
  553.       if(typeof options.res != "undefined")
  554.       {
  555.          var _loc4_ = options.res.split("x");
  556.          _loc2_ = parseFloat(_loc4_[0]);
  557.          _loc1_ = parseFloat(_loc4_[1]);
  558.       }
  559.       else
  560.       {
  561.          _loc2_ = _loc3_.xMax - _loc3_.xMin;
  562.          _loc1_ = _loc3_.yMax - _loc3_.yMin;
  563.       }
  564.       if(_loc2_ == 0 || _loc1_ == 0)
  565.       {
  566.          _loc2_ = Stage.width;
  567.          _loc1_ = Stage.height;
  568.       }
  569.       return [_loc2_,_loc1_];
  570.    }
  571.    static function _parseOptions(options, defaults)
  572.    {
  573.       var _loc4_ = {};
  574.       for(var _loc8_ in defaults)
  575.       {
  576.          _loc4_[_loc8_] = defaults[_loc8_];
  577.       }
  578.       if(options)
  579.       {
  580.          for(_loc8_ in options)
  581.          {
  582.             _loc4_[_loc8_] = options[_loc8_];
  583.          }
  584.       }
  585.       if(_root.mochiad_options)
  586.       {
  587.          var _loc5_ = _root.mochiad_options.split("&");
  588.          var _loc2_ = 0;
  589.          while(_loc2_ < _loc5_.length)
  590.          {
  591.             var _loc3_ = _loc5_[_loc2_].split("=");
  592.             _loc4_[unescape(_loc3_[0])] = unescape(_loc3_[1]);
  593.             _loc2_ = _loc2_ + 1;
  594.          }
  595.       }
  596.       if(_loc4_.id == "test")
  597.       {
  598.          trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
  599.       }
  600.       return _loc4_;
  601.    }
  602. }
  603.