home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / filler.swf / scripts / filler.as < prev    next >
Text File  |  2008-09-02  |  58KB  |  1,781 lines

  1. package
  2. {
  3.    import com.kongregate.as3.client.KongregateAPI;
  4.    import com.kongregate.as3.client.events.KongregateEvent;
  5.    import com.mochi.MochiAd;
  6.    import com.mochi.MochiBot;
  7.    import com.mochi.TextScoreTable;
  8.    import com.simianlogic.constantVSprite;
  9.    import com.simianlogic.ezButton;
  10.    import com.simianlogic.growthSprite;
  11.    import com.simianlogic.shadowRectParticle;
  12.    import flash.display.DisplayObject;
  13.    import flash.display.MovieClip;
  14.    import flash.display.Sprite;
  15.    import flash.events.Event;
  16.    import flash.events.MouseEvent;
  17.    import flash.events.TimerEvent;
  18.    import flash.media.Sound;
  19.    import flash.media.SoundChannel;
  20.    import flash.media.SoundTransform;
  21.    import flash.net.URLRequest;
  22.    import flash.net.navigateToURL;
  23.    import flash.text.TextField;
  24.    import flash.text.TextFieldType;
  25.    import flash.text.TextFormat;
  26.    import flash.text.TextFormatAlign;
  27.    import flash.utils.Timer;
  28.    import flash.utils.getTimer;
  29.    import flash.utils.setTimeout;
  30.    import org.cove.ape.APEngine;
  31.    import org.cove.ape.Group;
  32.    import org.cove.ape.Vector;
  33.    
  34.    public dynamic class filler extends Sprite
  35.    {
  36.       
  37.       public static const MAXAREA:int = 230100;
  38.       
  39.       public static const COLORLIST:Array = [3394815,3407718,16763955,13382655,4060416,47349,3997941,10092400,15861];
  40.       
  41.       public static var GAME_OPTIONS:Object = {
  42.          "id":"74eaa3b8c08bf451",
  43.          "res":"600x500"
  44.       };
  45.        
  46.       
  47.       public var verticalMenu:Sprite;
  48.       
  49.       public var percentFilled:Number;
  50.       
  51.       private var splashSprite:DisplayObject;
  52.       
  53.       public var timerText:TextField;
  54.       
  55.       private var modAlert24Mp3:Class;
  56.       
  57.       public var activeBall:growthSprite;
  58.       
  59.       private var playerScore:int = 0;
  60.       
  61.       private var rollOverMp3:Class;
  62.       
  63.       public var soundOverlay:Sprite;
  64.       
  65.       public var pauseText:TextField;
  66.       
  67.       public var bg:Sprite;
  68.       
  69.       private var logoSprite:DisplayObject;
  70.       
  71.       public var timeLeft:Number;
  72.       
  73.       public var ballsLeft:Number;
  74.       
  75.       public var soundOptions:Array;
  76.       
  77.       private var musicMp3:Class;
  78.       
  79.       private var rollOverSound:Sound;
  80.       
  81.       private var Send40K:Boolean = true;
  82.       
  83.       public var fillerBalls:Group;
  84.       
  85.       private var TotalBallsMade:int = 0;
  86.       
  87.       private var thudSound:Sound;
  88.       
  89.       public var levelText:TextField;
  90.       
  91.       public var livesText:TextField;
  92.       
  93.       public var LASTUPDATE:int;
  94.       
  95.       public var player:Group;
  96.       
  97.       public var scoreText:TextField;
  98.       
  99.       public var kongText:TextField;
  100.       
  101.       private var kongSplash:Class;
  102.       
  103.       public var redCount:int = 0;
  104.       
  105.       private var alert24Sound:Sound;
  106.       
  107.       private var flingSound:Sound;
  108.       
  109.       private var playerName:String = "<your name>";
  110.       
  111.       private var musicChannel:SoundChannel;
  112.       
  113.       private var boopMp3:Class;
  114.       
  115.       private var alert05Sound:Sound;
  116.       
  117.       public var bouncyBalls:Group;
  118.       
  119.       public var LASTAD:int = 0;
  120.       
  121.       public var kongSprite:Sprite;
  122.       
  123.       public var SOUNDENABLED:Boolean = true;
  124.       
  125.       private var bounceSound:Sound;
  126.       
  127.       private var kongLogo:Class;
  128.       
  129.       private var modAlert05Mp3:Class;
  130.       
  131.       public var pauseOverlay:Sprite;
  132.       
  133.       public var MUSICENABLED:Boolean = true;
  134.       
  135.       public var world:Group;
  136.       
  137.       public var GAMEPAUSED:Boolean = false;
  138.       
  139.       private var body:MovieClip = null;
  140.       
  141.       public var CURRENTLEVEL:int = 1;
  142.       
  143.       public var livesLeft:Number;
  144.       
  145.       public var pctText:TextField;
  146.       
  147.       public var ballText:TextField;
  148.       
  149.       private var kongregate:KongregateAPI;
  150.       
  151.       public var slideCount:int;
  152.       
  153.       private var HighestPercentFilled:Number = 0;
  154.       
  155.       private var thudMp3:Class;
  156.       
  157.       private var musicSound:Sound;
  158.       
  159.       private var flingMp3:Class;
  160.       
  161.       public function filler()
  162.       {
  163.          kongLogo = filler_kongLogo;
  164.          kongSplash = filler_kongSplash;
  165.          musicMp3 = filler_musicMp3;
  166.          flingMp3 = filler_flingMp3;
  167.          rollOverMp3 = filler_rollOverMp3;
  168.          modAlert05Mp3 = filler_modAlert05Mp3;
  169.          modAlert24Mp3 = filler_modAlert24Mp3;
  170.          boopMp3 = filler_boopMp3;
  171.          thudMp3 = filler_thudMp3;
  172.          TotalBallsMade = 0;
  173.          HighestPercentFilled = 0;
  174.          Send40K = true;
  175.          body = null;
  176.          CURRENTLEVEL = 1;
  177.          GAMEPAUSED = false;
  178.          SOUNDENABLED = true;
  179.          MUSICENABLED = true;
  180.          LASTAD = 0;
  181.          playerName = "<your name>";
  182.          playerScore = 0;
  183.          redCount = 0;
  184.          soundOptions = [1,1,1,1];
  185.          super();
  186.          if(stage != null)
  187.          {
  188.             init(false);
  189.          }
  190.       }
  191.       
  192.       private function showMenu(param1:Event = null) : void
  193.       {
  194.          verticalMenu.visible = true;
  195.       }
  196.       
  197.       private function freezeActiveBall() : void
  198.       {
  199.          var _loc1_:Array = null;
  200.          var _loc2_:growthSprite = null;
  201.          _loc1_ = player.getAll();
  202.          if(_loc1_.length > 0 && _loc1_[0] == activeBall)
  203.          {
  204.             player.removeParticle(activeBall);
  205.          }
  206.          _loc2_ = new growthSprite(activeBall.position.x,activeBall.position.y,activeBall.radius,13421772);
  207.          fillerBalls.addParticle(_loc2_);
  208.          if(!SOUNDENABLED)
  209.          {
  210.          }
  211.          playerScore += Math.round(3.1415 * activeBall.radius * activeBall.radius / 100);
  212.          if(playerScore > 40000 && Send40K)
  213.          {
  214.             Send40K = false;
  215.             kongregate.stats.submit("40K Points",1);
  216.          }
  217.          scoreText.text = "Score: " + playerScore;
  218.          tallyPercent();
  219.          if(percentFilled >= 66.555)
  220.          {
  221.             return;
  222.          }
  223.          ++TotalBallsMade;
  224.          --ballsLeft;
  225.          if(ballsLeft < 0)
  226.          {
  227.             ouch();
  228.          }
  229.          ballsLeft = Math.max(ballsLeft,0);
  230.          ballText.text = "Balls: " + ballsLeft;
  231.       }
  232.       
  233.       private function mouseUp(param1:Event) : void
  234.       {
  235.          var _loc2_:Array = null;
  236.          _loc2_ = player.getAll();
  237.          if(_loc2_.length > 0 && _loc2_[0] == activeBall)
  238.          {
  239.             freezeActiveBall();
  240.          }
  241.       }
  242.       
  243.       public function shrinkKongSprite() : void
  244.       {
  245.          kongSprite.graphics.clear();
  246.          kongSprite.graphics.beginFill(0);
  247.          kongSprite.graphics.lineStyle(1,16777215,1);
  248.          kongSprite.graphics.drawRect(0,15,151,40);
  249.          kongSprite.graphics.endFill();
  250.          kongText.visible = false;
  251.       }
  252.       
  253.       public function fadeBody() : void
  254.       {
  255.          var _loc1_:Timer = null;
  256.          if(!body || !contains(body))
  257.          {
  258.             return;
  259.          }
  260.          _loc1_ = new Timer(10,40);
  261.          _loc1_.addEventListener("timer",fadeHandler);
  262.          _loc1_.addEventListener("timerComplete",fadeHandlerDone);
  263.          slideCount = 0;
  264.          body.alpha = 0;
  265.          _loc1_.start();
  266.       }
  267.       
  268.       private function redTimerHandlerDone(param1:TimerEvent) : void
  269.       {
  270.          bg.graphics.clear();
  271.          bg.graphics.beginFill(5592405);
  272.          bg.graphics.drawRect(0,0,600,500);
  273.          bg.graphics.endFill();
  274.       }
  275.       
  276.       private function startLevel(param1:int) : void
  277.       {
  278.          var _loc2_:int = 0;
  279.          var _loc3_:Array = null;
  280.          var _loc4_:Array = null;
  281.          var _loc5_:int = 0;
  282.          var _loc6_:constantVSprite = null;
  283.          if(body && contains(body))
  284.          {
  285.             removeChild(body);
  286.          }
  287.          if(GAMEPAUSED)
  288.          {
  289.             pause();
  290.          }
  291.          livesLeft = param1 + 1;
  292.          timeLeft = (60 + param1 * 30) * 1000;
  293.          ballsLeft = 18 + 2 * param1;
  294.          _loc2_ = 4.5;
  295.          _loc3_ = [new Vector(-_loc2_,-_loc2_),new Vector(_loc2_,-_loc2_),new Vector(_loc2_,_loc2_),new Vector(-_loc2_,_loc2_)];
  296.          _loc4_ = bouncyBalls.getAll();
  297.          _loc5_ = 0;
  298.          while(_loc5_ < _loc4_.length)
  299.          {
  300.             bouncyBalls.removeParticle(_loc4_[_loc5_]);
  301.             _loc5_++;
  302.          }
  303.          _loc4_ = fillerBalls.getAll();
  304.          _loc5_ = 0;
  305.          while(_loc5_ < _loc4_.length)
  306.          {
  307.             fillerBalls.removeParticle(_loc4_[_loc5_]);
  308.             _loc5_++;
  309.          }
  310.          _loc5_ = 0;
  311.          while(_loc5_ < param1 + 1)
  312.          {
  313.             (_loc6_ = new constantVSprite(Math.random() * 500 + 50,Math.random() * 350 + 125)).setVelocity(_loc3_[int(Math.random() * 3.9999)]);
  314.             bouncyBalls.addParticle(_loc6_);
  315.             _loc5_++;
  316.          }
  317.          pctText.text = "0% cleared";
  318.          levelText.text = "Level: " + param1;
  319.          livesText.text = "Lives: " + livesLeft;
  320.          timerText.text = "Time left: " + Math.round(timeLeft / 100);
  321.          timerText.x = 600 - (timerText.textWidth + 5);
  322.          ballText.text = "Balls: " + ballsLeft;
  323.          LASTUPDATE = getTimer();
  324.       }
  325.       
  326.       public function nextLevel(param1:Event = null) : void
  327.       {
  328.          if(CURRENTLEVEL == 5)
  329.          {
  330.             kongregate.stats.submit("Games Past Level 5",1);
  331.          }
  332.          if(CURRENTLEVEL == 10)
  333.          {
  334.             kongregate.stats.submit("Games Past Level 10",1);
  335.          }
  336.          if(CURRENTLEVEL == 15)
  337.          {
  338.             kongregate.stats.submit("Games Past Level 15",1);
  339.          }
  340.          if(CURRENTLEVEL == 20)
  341.          {
  342.             kongregate.stats.submit("Games Past Level 20",1);
  343.          }
  344.          if(CURRENTLEVEL == 25)
  345.          {
  346.             kongregate.stats.submit("Games Past Level 25",1);
  347.          }
  348.          ++CURRENTLEVEL;
  349.          startLevel(CURRENTLEVEL);
  350.       }
  351.       
  352.       public function dismissOverlay(param1:Event = null) : void
  353.       {
  354.          if(body)
  355.          {
  356.             if(contains(body))
  357.             {
  358.                removeChild(body);
  359.             }
  360.             body = null;
  361.          }
  362.          if(livesLeft == 0)
  363.          {
  364.             newGameButton();
  365.             return;
  366.          }
  367.          if(percentFilled > 65.55)
  368.          {
  369.             nextLevel();
  370.          }
  371.          if(GAMEPAUSED)
  372.          {
  373.             pause();
  374.          }
  375.       }
  376.       
  377.       public function getOptions() : Object
  378.       {
  379.          var _loc1_:Object = null;
  380.          var _loc2_:* = null;
  381.          _loc1_ = {
  382.             "clip":body,
  383.             "id":"74eaa3b8c08bf451"
  384.          };
  385.          for(_loc2_ in GAME_OPTIONS)
  386.          {
  387.             _loc1_[_loc2_] = GAME_OPTIONS[_loc2_];
  388.          }
  389.          return _loc1_;
  390.       }
  391.       
  392.       public function flashRed() : void
  393.       {
  394.          var _loc1_:Timer = null;
  395.          bg.graphics.clear();
  396.          bg.graphics.beginFill(5592405);
  397.          bg.graphics.drawRect(0,0,600,500);
  398.          bg.graphics.endFill();
  399.          bg.graphics.beginFill(5570560);
  400.          bg.graphics.drawRect(0,100,600,400);
  401.          bg.graphics.endFill();
  402.          _loc1_ = new Timer(5,20);
  403.          _loc1_.addEventListener("timer",redTimerHandler);
  404.          _loc1_.addEventListener("timerComplete",redTimerHandlerDone);
  405.          redCount = 0;
  406.          _loc1_.start();
  407.       }
  408.       
  409.       public function getAverageSize() : int
  410.       {
  411.          var _loc1_:Array = null;
  412.          var _loc2_:Number = NaN;
  413.          var _loc3_:int = 0;
  414.          _loc1_ = fillerBalls.getAll();
  415.          _loc2_ = 0;
  416.          _loc3_ = 0;
  417.          while(_loc3_ < _loc1_.length)
  418.          {
  419.             _loc2_ += _loc1_[_loc3_].radius;
  420.             _loc3_++;
  421.          }
  422.          return Math.round(_loc2_ / _loc1_.length);
  423.       }
  424.       
  425.       private function toggleSFX(param1:Event = null) : void
  426.       {
  427.          if(SOUNDENABLED)
  428.          {
  429.             SOUNDENABLED = false;
  430.             param1.target.label = "SFX On";
  431.          }
  432.          else
  433.          {
  434.             SOUNDENABLED = true;
  435.             param1.target.label = "SFX Off";
  436.          }
  437.       }
  438.       
  439.       private function run(param1:Event) : void
  440.       {
  441.          var _loc2_:Array = null;
  442.          var _loc3_:int = 0;
  443.          var _loc4_:Array = null;
  444.          var _loc5_:constantVSprite = null;
  445.          var _loc6_:constantVSprite = null;
  446.          var _loc7_:Array = null;
  447.          var _loc8_:int = 0;
  448.          var _loc9_:SoundTransform = null;
  449.          if(GAMEPAUSED)
  450.          {
  451.             return;
  452.          }
  453.          _loc2_ = bouncyBalls.getAll();
  454.          _loc3_ = 0;
  455.          while(_loc3_ < _loc2_.length)
  456.          {
  457.             if(_loc2_[_loc3_].position.x < 0 || _loc2_[_loc3_].position.x > 600 || _loc2_[_loc3_].position.y > 500 || _loc2_[_loc3_].position.y < 100)
  458.             {
  459.                if(mouseX < 300)
  460.                {
  461.                   (_loc5_ = new constantVSprite(570,130)).setVelocity(new Vector(-4.5,4.5));
  462.                   bouncyBalls.addParticle(_loc5_);
  463.                   bouncyBalls.removeParticle(_loc2_[_loc3_]);
  464.                }
  465.                else
  466.                {
  467.                   (_loc6_ = new constantVSprite(30,130)).setVelocity(new Vector(4.5,4.5));
  468.                   bouncyBalls.addParticle(_loc6_);
  469.                   bouncyBalls.removeParticle(_loc2_[_loc3_]);
  470.                }
  471.             }
  472.             _loc3_++;
  473.          }
  474.          APEngine.step();
  475.          APEngine.paint();
  476.          timeLeft -= getTimer() - LASTUPDATE;
  477.          timeLeft = Math.max(0,timeLeft);
  478.          LASTUPDATE = getTimer();
  479.          timerText.text = "Time left: " + Math.round(timeLeft / 100);
  480.          if((_loc4_ = player.getAll()).length > 0)
  481.          {
  482.             _loc7_ = bouncyBalls.getAll();
  483.             _loc8_ = 0;
  484.             while(_loc8_ < _loc7_.length)
  485.             {
  486.                if(_loc7_[_loc8_].position.distance(activeBall.position) < activeBall.radius + _loc7_[_loc8_].radius + 0.25)
  487.                {
  488.                   player.removeParticle(activeBall);
  489.                   if(SOUNDENABLED)
  490.                   {
  491.                      _loc9_ = new SoundTransform(1.5);
  492.                      thudSound.play(0,0,_loc9_);
  493.                   }
  494.                   ouch();
  495.                   return;
  496.                }
  497.                _loc8_++;
  498.             }
  499.             if(activeBall.radius > 187.5)
  500.             {
  501.                freezeActiveBall();
  502.                return;
  503.             }
  504.             _loc7_ = fillerBalls.getAll();
  505.             _loc8_ = 0;
  506.             while(_loc8_ < _loc7_.length)
  507.             {
  508.                if(_loc7_[_loc8_].position.distance(activeBall.position) < activeBall.radius + _loc7_[_loc8_].radius + 0.25)
  509.                {
  510.                   freezeActiveBall();
  511.                   return;
  512.                }
  513.                _loc8_++;
  514.             }
  515.          }
  516.       }
  517.       
  518.       public function fetchHighScores(param1:Object = null) : void
  519.       {
  520.          var _loc2_:Sprite = null;
  521.          var _loc3_:TextScoreTable = null;
  522.          var _loc4_:TextField = null;
  523.          var _loc5_:Object = null;
  524.          if(percentFilled >= 66.6)
  525.          {
  526.             return;
  527.          }
  528.          if(!GAMEPAUSED)
  529.          {
  530.             pause();
  531.          }
  532.          if(body)
  533.          {
  534.             if(contains(body))
  535.             {
  536.                removeChild(body);
  537.             }
  538.             body = null;
  539.          }
  540.          body = new MovieClip();
  541.          body.x = 0;
  542.          body.y = 0;
  543.          addChild(body);
  544.          fadeBody();
  545.          _loc2_ = new Sprite();
  546.          _loc2_.graphics.beginFill(0);
  547.          _loc2_.graphics.drawRect(100,150,400,300);
  548.          _loc2_.graphics.endFill();
  549.          _loc2_.graphics.beginFill(3355443);
  550.          _loc2_.graphics.drawRect(102,152,396,296);
  551.          _loc2_.graphics.endFill();
  552.          body.addChild(_loc2_);
  553.          _loc3_ = new TextScoreTable();
  554.          trace("table created...");
  555.          body.addChild(_loc3_);
  556.          _loc3_.x = 105;
  557.          _loc3_.y = 155;
  558.          _loc3_.init();
  559.          (_loc4_ = new_tf("center")).x = 235;
  560.          _loc4_.y = 420;
  561.          _loc4_.width = 150;
  562.          _loc4_.htmlText = "<font size=\'size:8px\'>(Click to Continue)</font>";
  563.          body.addChild(_loc4_);
  564.          body.addEventListener("click",dismissOverlay);
  565.          _loc5_ = getOptions();
  566.          _loc3_.reset("Fetching high scores...");
  567.          MochiAd.fetchHighScores(_loc5_,_loc3_,"gotScores");
  568.       }
  569.       
  570.       private function closeScoresNew(param1:Event) : void
  571.       {
  572.          newGameButton();
  573.       }
  574.       
  575.       private function ouch() : void
  576.       {
  577.          var _loc1_:SoundTransform = null;
  578.          flashRed();
  579.          --livesLeft;
  580.          livesText.text = "Lives: " + livesLeft;
  581.          if(livesLeft <= 0)
  582.          {
  583.             GAMEPAUSED = true;
  584.             stopMusic();
  585.             _loc1_ = new SoundTransform(0.5);
  586.             if(SOUNDENABLED)
  587.             {
  588.                alert05Sound.play(0,0,_loc1_);
  589.             }
  590.             setTimeout(sendHighScore,400);
  591.          }
  592.       }
  593.       
  594.       public function outOfBounds(param1:Event = null) : void
  595.       {
  596.          var _loc2_:SoundTransform = null;
  597.          player.removeParticle(activeBall);
  598.          if(SOUNDENABLED)
  599.          {
  600.             _loc2_ = new SoundTransform(1.5);
  601.             thudSound.play(0,0,_loc2_);
  602.          }
  603.          ouch();
  604.       }
  605.       
  606.       public function softBounceSound(param1:Event) : void
  607.       {
  608.          var _loc2_:SoundTransform = null;
  609.          if(!SOUNDENABLED)
  610.          {
  611.             return;
  612.          }
  613.          _loc2_ = new SoundTransform(0.15);
  614.          bounceSound.play(0,0,_loc2_);
  615.       }
  616.       
  617.       public function startMusic() : void
  618.       {
  619.          var _loc1_:SoundTransform = null;
  620.          if(musicChannel)
  621.          {
  622.             musicChannel.stop();
  623.          }
  624.          if(!MUSICENABLED)
  625.          {
  626.             return;
  627.          }
  628.          _loc1_ = new SoundTransform(0.25);
  629.          musicChannel = musicSound.play(0,100,_loc1_);
  630.       }
  631.       
  632.       public function showInterLevel(param1:Object = null) : void
  633.       {
  634.          var opts:Object = null;
  635.          var ev:Object = param1;
  636.          LASTAD = getTimer();
  637.          if(GAMEPAUSED)
  638.          {
  639.             pause();
  640.          }
  641.          GAMEPAUSED = true;
  642.          if(body)
  643.          {
  644.             if(contains(body))
  645.             {
  646.                removeChild(body);
  647.             }
  648.             body = null;
  649.          }
  650.          body = new MovieClip();
  651.          body.x = 0;
  652.          body.y = 0;
  653.          addChild(body);
  654.          fadeBody();
  655.          opts = getOptions();
  656.          opts.ad_started = function():void
  657.          {
  658.          };
  659.          opts.ad_finished = newGame;
  660.          MochiAd.showInterLevelAd(opts);
  661.       }
  662.       
  663.       private function drawUI() : void
  664.       {
  665.          var _loc1_:TextFormat = null;
  666.          var _loc2_:TextField = null;
  667.          var _loc3_:TextField = null;
  668.          var _loc4_:ezButton = null;
  669.          var _loc5_:ezButton = null;
  670.          var _loc6_:ezButton = null;
  671.          var _loc7_:ezButton = null;
  672.          var _loc8_:ezButton = null;
  673.          var _loc9_:ezButton = null;
  674.          _loc1_ = new TextFormat();
  675.          _loc1_.font = "Arial";
  676.          _loc1_.color = 16777215;
  677.          _loc1_.size = 18;
  678.          pauseText = new TextField();
  679.          pauseText.selectable = false;
  680.          pauseText.defaultTextFormat = _loc1_;
  681.          pauseText.text = "Game Paused";
  682.          pauseText.width = 250;
  683.          pauseText.x = 245;
  684.          pauseText.y = 300;
  685.          pauseOverlay = new Sprite();
  686.          pauseOverlay.graphics.beginFill(0,0.5);
  687.          pauseOverlay.graphics.drawRect(0,100,600,400);
  688.          pauseOverlay.graphics.endFill();
  689.          _loc1_.size = 24;
  690.          _loc2_ = new TextField();
  691.          _loc2_.selectable = false;
  692.          _loc2_.defaultTextFormat = _loc1_;
  693.          _loc2_.text = "filler: a game";
  694.          _loc2_.width = 400;
  695.          _loc2_.x = 5;
  696.          _loc2_.y = 5;
  697.          bg.addChild(_loc2_);
  698.          _loc1_.size = 16;
  699.          _loc3_ = new TextField();
  700.          _loc3_.selectable = false;
  701.          _loc3_.defaultTextFormat = _loc1_;
  702.          _loc3_.htmlText = "<a href=\'http://www.simianlogic3d.com/blog\'>by SimianLogic</a>";
  703.          _loc3_.width = 400;
  704.          _loc3_.x = 50;
  705.          _loc3_.y = 35;
  706.          bg.addChild(_loc3_);
  707.          pctText = new TextField();
  708.          pctText.defaultTextFormat = _loc1_;
  709.          pctText.text = "0% cleared";
  710.          pctText.selectable = false;
  711.          pctText.width = 400;
  712.          pctText.x = 260;
  713.          pctText.y = 75;
  714.          bg.addChild(pctText);
  715.          scoreText = new TextField();
  716.          scoreText.defaultTextFormat = _loc1_;
  717.          scoreText.text = "Score: 0";
  718.          scoreText.selectable = false;
  719.          scoreText.width = 400;
  720.          scoreText.x = 300 - scoreText.textWidth / 2;
  721.          scoreText.y = 35;
  722.          bg.addChild(scoreText);
  723.          levelText = new TextField();
  724.          levelText.defaultTextFormat = _loc1_;
  725.          levelText.text = "Level 1";
  726.          levelText.selectable = false;
  727.          levelText.width = 200;
  728.          levelText.x = 5;
  729.          levelText.y = 75;
  730.          bg.addChild(levelText);
  731.          livesText = new TextField();
  732.          livesText.defaultTextFormat = _loc1_;
  733.          livesText.text = "Lives: 22";
  734.          livesText.selectable = false;
  735.          livesText.width = 400;
  736.          livesText.x = 530;
  737.          livesText.y = 75;
  738.          bg.addChild(livesText);
  739.          ballText = new TextField();
  740.          ballText.defaultTextFormat = _loc1_;
  741.          ballText.text = "Balls: 20";
  742.          ballText.selectable = false;
  743.          ballText.width = 400;
  744.          ballText.x = 530;
  745.          ballText.y = 55;
  746.          bg.addChild(ballText);
  747.          timerText = new TextField();
  748.          timerText.defaultTextFormat = _loc1_;
  749.          timerText.text = "Time left: 900";
  750.          timerText.selectable = false;
  751.          timerText.width = 400;
  752.          timerText.x = 500 - (timerText.textWidth + 5);
  753.          timerText.y = 5;
  754.          bg.addChild(timerText);
  755.          (_loc4_ = new ezButton("Pause","pause",100,30)).x = 300;
  756.          _loc4_.y = 5;
  757.          bg.addChild(_loc4_);
  758.          _loc4_.addEventListener("button_pause",pause);
  759.          (_loc5_ = new ezButton("Menu","showMenu",100,30)).addEventListener(MouseEvent.ROLL_OVER,showMenu);
  760.          _loc5_.x = 200;
  761.          _loc5_.y = 5;
  762.          bg.addChild(_loc5_);
  763.          verticalMenu = new Sprite();
  764.          verticalMenu.addEventListener(MouseEvent.ROLL_OUT,hideMenu);
  765.          verticalMenu.x = _loc5_.x - 1;
  766.          verticalMenu.y = 0;
  767.          verticalMenu.visible = false;
  768.          verticalMenu.graphics.beginFill(0);
  769.          verticalMenu.graphics.drawRect(0,0,102,100);
  770.          verticalMenu.graphics.endFill();
  771.          (_loc6_ = new ezButton("NewGame","newGame",100,25)).x = 1;
  772.          _loc6_.y = 2;
  773.          verticalMenu.addChild(_loc6_);
  774.          _loc6_.addEventListener("button_newGame",newGameButton);
  775.          (_loc7_ = new ezButton("Instructions","help",100,25)).x = 1;
  776.          _loc7_.y = 26;
  777.          verticalMenu.addChild(_loc7_);
  778.          _loc7_.addEventListener("button_help",showInstructions);
  779.          (_loc8_ = new ezButton("SFX Off","sfx",100,25)).x = 1;
  780.          _loc8_.y = 50;
  781.          verticalMenu.addChild(_loc8_);
  782.          _loc8_.addEventListener("button_sfx",toggleSFX);
  783.          (_loc9_ = new ezButton("Music Off","music",100,25)).x = 1;
  784.          _loc9_.y = 74;
  785.          verticalMenu.addChild(_loc9_);
  786.          _loc9_.addEventListener("button_music",toggleMusic);
  787.          bg.addChild(verticalMenu);
  788.       }
  789.       
  790.       private function mouseDown(param1:Event) : void
  791.       {
  792.          var _loc2_:Array = null;
  793.          if(GAMEPAUSED)
  794.          {
  795.             return;
  796.          }
  797.          _loc2_ = player.getAll();
  798.          if(_loc2_.length > 0 && _loc2_[0] == activeBall)
  799.          {
  800.             player.removeParticle(activeBall);
  801.          }
  802.          if(mouseY > 105)
  803.          {
  804.             activeBall = new growthSprite(mouseX,mouseY,10,16777215,true);
  805.             activeBall.sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  806.             activeBall.sprite.addEventListener("outOfBoundsEvent",outOfBounds);
  807.             player.addParticle(activeBall);
  808.          }
  809.       }
  810.       
  811.       public function buttonSound(param1:Event) : void
  812.       {
  813.          var _loc2_:SoundTransform = null;
  814.          if(!SOUNDENABLED)
  815.          {
  816.             return;
  817.          }
  818.          _loc2_ = new SoundTransform(0.1);
  819.          rollOverSound.play(0,0,_loc2_);
  820.       }
  821.       
  822.       public function showInstruction2(param1:Event) : void
  823.       {
  824.          var _loc2_:Sprite = null;
  825.          var _loc3_:TextField = null;
  826.          var _loc4_:TextField = null;
  827.          var _loc5_:String = null;
  828.          var _loc6_:constantVSprite = null;
  829.          var _loc7_:Sprite = null;
  830.          var _loc8_:growthSprite = null;
  831.          var _loc9_:Sprite = null;
  832.          var _loc10_:growthSprite = null;
  833.          var _loc11_:Sprite = null;
  834.          var _loc12_:growthSprite = null;
  835.          var _loc13_:Sprite = null;
  836.          var _loc14_:growthSprite = null;
  837.          var _loc15_:Sprite = null;
  838.          var _loc16_:TextField = null;
  839.          var _loc17_:TextField = null;
  840.          var _loc18_:TextField = null;
  841.          var _loc19_:TextField = null;
  842.          var _loc20_:ezButton = null;
  843.          var _loc21_:ezButton = null;
  844.          if(!GAMEPAUSED)
  845.          {
  846.             pause();
  847.          }
  848.          if(body && contains(body))
  849.          {
  850.             removeChild(body);
  851.          }
  852.          body = new MovieClip();
  853.          _loc2_ = new Sprite();
  854.          _loc2_.graphics.beginFill(0);
  855.          _loc2_.graphics.drawRect(0,0,400,300);
  856.          _loc2_.graphics.endFill();
  857.          _loc2_.graphics.beginFill(3355443);
  858.          _loc2_.graphics.drawRect(2,2,396,296);
  859.          _loc2_.graphics.endFill();
  860.          _loc2_.x = 100;
  861.          _loc2_.y = 150;
  862.          _loc3_ = new_tf("title");
  863.          _loc3_.x = 70;
  864.          _loc3_.y = 30;
  865.          _loc3_.width = 275;
  866.          _loc3_.text = "Instructions";
  867.          _loc2_.addChild(_loc3_);
  868.          (_loc4_ = new_tf("left")).defaultTextFormat.align = "justify";
  869.          _loc4_.x = 25;
  870.          _loc4_.y = 90;
  871.          _loc4_.width = 350;
  872.          _loc4_.height = 250;
  873.          _loc4_.multiline = true;
  874.          _loc4_.wordWrap = true;
  875.          _loc5_ = "Press down on the mouse to create a filler ball. It will continue to grow until...";
  876.          _loc4_.htmlText = _loc5_;
  877.          _loc2_.addChild(_loc4_);
  878.          addChild(body);
  879.          body.addChild(_loc2_);
  880.          _loc7_ = (_loc6_ = new constantVSprite(0,0)).sprite;
  881.          _loc9_ = (_loc8_ = new growthSprite(0,0,30,16777215)).sprite;
  882.          _loc2_.addChild(_loc7_);
  883.          _loc2_.addChild(_loc9_);
  884.          _loc7_.x = 320;
  885.          _loc9_.x = 80;
  886.          _loc7_.y = 175;
  887.          _loc9_.y = 175;
  888.          _loc11_ = (_loc10_ = new growthSprite(0,0,20,16777215)).sprite;
  889.          _loc13_ = (_loc12_ = new growthSprite(0,0,20,16777215)).sprite;
  890.          _loc15_ = (_loc14_ = new growthSprite(0,0,20,16777215)).sprite;
  891.          _loc2_.addChild(_loc11_);
  892.          _loc2_.addChild(_loc13_);
  893.          _loc11_.x = 180;
  894.          _loc11_.y = 205;
  895.          _loc13_.x = 220;
  896.          _loc13_.y = 205;
  897.          _loc2_.addChild(_loc15_);
  898.          _loc15_.x = 290;
  899.          _loc15_.y = 175;
  900.          (_loc16_ = new_tf("center")).x = 5;
  901.          _loc16_.y = 205;
  902.          _loc16_.width = 150;
  903.          _loc16_.text = "...you release\nthe mouse";
  904.          _loc2_.addChild(_loc16_);
  905.          (_loc17_ = new_tf("center")).x = 230;
  906.          _loc17_.y = 205;
  907.          _loc17_.width = 150;
  908.          _loc17_.text = "...you run into\na bouncy ball";
  909.          _loc2_.addChild(_loc17_);
  910.          (_loc18_ = new_tf("center")).x = 125;
  911.          _loc18_.y = 145;
  912.          _loc18_.width = 150;
  913.          _loc18_.text = "...you run into\na filler ball";
  914.          _loc2_.addChild(_loc18_);
  915.          (_loc19_ = new_tf("center")).x = 260;
  916.          _loc19_.y = 145;
  917.          _loc19_.width = 150;
  918.          _loc19_.text = "OUCH!";
  919.          _loc2_.addChild(_loc19_);
  920.          _loc2_.graphics.lineStyle(1,0,1);
  921.          _loc2_.graphics.beginFill(7798784);
  922.          _loc2_.graphics.drawRect(260,135,100,70);
  923.          _loc2_.graphics.endFill();
  924.          _loc20_ = new ezButton("Next","inst_2",80,25);
  925.          _loc21_ = new ezButton("Start","skip_instructions",80,25);
  926.          _loc2_.addChild(_loc20_);
  927.          _loc20_.x = 200;
  928.          _loc20_.y = 260;
  929.          _loc2_.addChild(_loc21_);
  930.          _loc21_.x = 115;
  931.          _loc21_.y = 260;
  932.          _loc21_.addEventListener("button_skip_instructions",dismissOverlay);
  933.          _loc20_.addEventListener("button_inst_2",showInstructions3);
  934.       }
  935.       
  936.       private function showRoundup(param1:Event = null) : void
  937.       {
  938.       }
  939.       
  940.       public function init(param1:Boolean) : void
  941.       {
  942.          var _loc2_:shadowRectParticle = null;
  943.          var _loc3_:shadowRectParticle = null;
  944.          var _loc4_:shadowRectParticle = null;
  945.          var _loc5_:shadowRectParticle = null;
  946.          MochiBot.track(this,"446d3202");
  947.          kongregate = new KongregateAPI();
  948.          addChild(kongregate);
  949.          kongregate.addEventListener(KongregateEvent.COMPLETE,kongConnected);
  950.          bg = new Sprite();
  951.          bg.graphics.beginFill(5592405);
  952.          bg.graphics.drawRect(0,0,600,500);
  953.          bg.graphics.endFill();
  954.          addChild(bg);
  955.          stage.frameRate = 45;
  956.          addEventListener(Event.ENTER_FRAME,run);
  957.          rollOverSound = new rollOverMp3();
  958.          addEventListener("sound_rollover",buttonSound);
  959.          alert05Sound = new modAlert05Mp3();
  960.          alert24Sound = new modAlert24Mp3();
  961.          bounceSound = new boopMp3();
  962.          thudSound = new thudMp3();
  963.          flingSound = new flingMp3();
  964.          APEngine.init(1 / 4);
  965.          APEngine.damping = 1;
  966.          APEngine.container = this;
  967.          world = new Group();
  968.          player = new Group();
  969.          bouncyBalls = new Group();
  970.          fillerBalls = new Group();
  971.          _loc2_ = new shadowRectParticle(595,300,10,400,0,true,1,0.25);
  972.          _loc3_ = new shadowRectParticle(300,495,600,10,0,true,1,0.25);
  973.          _loc4_ = new shadowRectParticle(300,105,600,10,0,true,1,0.25);
  974.          _loc5_ = new shadowRectParticle(5,300,10,400,0,true,1,0.25);
  975.          _loc2_.sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  976.          _loc5_.sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  977.          _loc3_.sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  978.          _loc4_.sprite.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  979.          world.addParticle(_loc2_);
  980.          world.addParticle(_loc5_);
  981.          world.addParticle(_loc4_);
  982.          world.addParticle(_loc3_);
  983.          player.addCollidable(world);
  984.          bouncyBalls.addCollidable(world);
  985.          fillerBalls.addCollidable(world);
  986.          bouncyBalls.addCollidable(fillerBalls);
  987.          bouncyBalls.collideInternal = true;
  988.          fillerBalls.collideInternal = true;
  989.          APEngine.addGroup(world);
  990.          APEngine.addGroup(player);
  991.          APEngine.addGroup(bouncyBalls);
  992.          APEngine.addGroup(fillerBalls);
  993.          bg.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
  994.          bg.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
  995.          drawUI();
  996.          musicSound = new musicMp3();
  997.          logoSprite = new kongLogo() as DisplayObject;
  998.          splashSprite = new kongSplash() as DisplayObject;
  999.          showKongSplash();
  1000.       }
  1001.       
  1002.       public function configureOverlays() : void
  1003.       {
  1004.          var _loc1_:Sprite = null;
  1005.          var _loc2_:TextField = null;
  1006.          var _loc3_:TextField = null;
  1007.          var _loc4_:int = 0;
  1008.          var _loc5_:int = 0;
  1009.          var _loc6_:int = 0;
  1010.          var _loc7_:int = 0;
  1011.          var _loc8_:int = 0;
  1012.          var _loc9_:TextField = null;
  1013.          var _loc10_:TextField = null;
  1014.          if(body && contains(body))
  1015.          {
  1016.             removeChild(body);
  1017.          }
  1018.          body = new MovieClip();
  1019.          _loc1_ = new Sprite();
  1020.          _loc1_.graphics.beginFill(0);
  1021.          _loc1_.graphics.drawRect(0,0,360,300);
  1022.          _loc1_.graphics.endFill();
  1023.          _loc1_.graphics.beginFill(3355443);
  1024.          _loc1_.graphics.drawRect(2,2,356,296);
  1025.          _loc1_.graphics.endFill();
  1026.          _loc1_.x = 130;
  1027.          _loc1_.y = 150;
  1028.          _loc2_ = new_tf("title");
  1029.          _loc2_.x = 50;
  1030.          _loc2_.y = 30;
  1031.          _loc2_.width = 275;
  1032.          _loc2_.text = "Level Complete!";
  1033.          _loc1_.addChild(_loc2_);
  1034.          _loc3_ = new_tf("right");
  1035.          _loc3_.x = 10;
  1036.          _loc3_.y = 90;
  1037.          _loc3_.width = 200;
  1038.          _loc3_.height = 300;
  1039.          _loc3_.htmlText = "Completion Bonus:\n Lives Bonus:\n Time Bonus:\n Balls Left Bonus: \n\n <b>Total Bonus:";
  1040.          _loc1_.addChild(_loc3_);
  1041.          _loc4_ = Math.max(0,Math.round((percentFilled - 66.6) * (CURRENTLEVEL + 5) * 4));
  1042.          _loc5_ = livesLeft * 25;
  1043.          _loc6_ = Math.floor(timeLeft / 1000);
  1044.          _loc7_ = ballsLeft * 5;
  1045.          _loc8_ = _loc4_ + _loc5_ + _loc6_ + _loc7_;
  1046.          playerScore += _loc8_;
  1047.          if(playerScore > 40000 && Send40K)
  1048.          {
  1049.             Send40K = false;
  1050.             kongregate.stats.submit("40K Points",1);
  1051.          }
  1052.          scoreText.text = "Score: " + playerScore;
  1053.          (_loc9_ = new_tf("right")).x = 160;
  1054.          _loc9_.y = 90;
  1055.          _loc9_.width = 100;
  1056.          _loc9_.height = 300;
  1057.          _loc9_.htmlText = _loc4_ + "\n" + _loc5_ + "\n" + _loc6_ + "\n" + _loc7_ + "\n\n<b>" + _loc8_ + "</b>";
  1058.          _loc1_.addChild(_loc9_);
  1059.          addChild(body);
  1060.          body.addChild(_loc1_);
  1061.          (_loc10_ = new_tf("center")).x = 115;
  1062.          _loc10_.y = 200;
  1063.          _loc10_.width = 150;
  1064.          _loc10_.htmlText = "<font size=\'size:8px\'>(Click to Continue)</font>";
  1065.          _loc1_.addChild(_loc10_);
  1066.          createKongSprite();
  1067.          body.addChild(kongSprite);
  1068.          kongSprite.x = _loc1_.x + 10;
  1069.          kongSprite.y = _loc1_.y + 235;
  1070.          kongSprite.buttonMode = true;
  1071.          kongSprite.addEventListener("click",goToKongregate);
  1072.          _loc1_.mouseChildren = false;
  1073.          _loc1_.addEventListener("click",nextLevel);
  1074.          fadeBody();
  1075.       }
  1076.       
  1077.       public function showInstructions3(param1:Event = null) : void
  1078.       {
  1079.          var _loc2_:Sprite = null;
  1080.          var _loc3_:TextField = null;
  1081.          var _loc4_:TextField = null;
  1082.          var _loc5_:String = null;
  1083.          var _loc6_:TextField = null;
  1084.          var _loc7_:String = null;
  1085.          var _loc8_:int = 0;
  1086.          var _loc9_:ezButton = null;
  1087.          var _loc10_:ezButton = null;
  1088.          var _loc11_:growthSprite = null;
  1089.          var _loc12_:Sprite = null;
  1090.          var _loc13_:growthSprite = null;
  1091.          var _loc14_:Sprite = null;
  1092.          if(!GAMEPAUSED)
  1093.          {
  1094.             pause();
  1095.          }
  1096.          if(body && contains(body))
  1097.          {
  1098.             removeChild(body);
  1099.          }
  1100.          body = new MovieClip();
  1101.          _loc2_ = new Sprite();
  1102.          _loc2_.graphics.beginFill(0);
  1103.          _loc2_.graphics.drawRect(0,0,400,300);
  1104.          _loc2_.graphics.endFill();
  1105.          _loc2_.graphics.beginFill(3355443);
  1106.          _loc2_.graphics.drawRect(2,2,396,296);
  1107.          _loc2_.graphics.endFill();
  1108.          _loc2_.x = 100;
  1109.          _loc2_.y = 150;
  1110.          _loc3_ = new_tf("title");
  1111.          _loc3_.x = 70;
  1112.          _loc3_.y = 30;
  1113.          _loc3_.width = 275;
  1114.          _loc3_.text = "Instructions";
  1115.          _loc2_.addChild(_loc3_);
  1116.          (_loc4_ = new_tf("left")).defaultTextFormat.align = "justify";
  1117.          _loc4_.x = 25;
  1118.          _loc4_.y = 90;
  1119.          _loc4_.width = 350;
  1120.          _loc4_.height = 250;
  1121.          _loc4_.multiline = true;
  1122.          _loc4_.wordWrap = true;
  1123.          _loc5_ = "You get a limited number of both lives and balls each round.";
  1124.          _loc4_.htmlText = _loc5_;
  1125.          _loc2_.addChild(_loc4_);
  1126.          (_loc6_ = new_tf("left")).defaultTextFormat.align = "justify";
  1127.          _loc6_.x = 25;
  1128.          _loc6_.y = 220;
  1129.          _loc6_.width = 350;
  1130.          _loc6_.height = 250;
  1131.          _loc6_.multiline = true;
  1132.          _loc6_.wordWrap = true;
  1133.          _loc7_ = "If you run out of balls, each new ball will cost you a life.";
  1134.          _loc6_.htmlText = _loc7_;
  1135.          _loc2_.addChild(_loc6_);
  1136.          addChild(body);
  1137.          body.addChild(_loc2_);
  1138.          _loc8_ = 0;
  1139.          while(_loc8_ < 9)
  1140.          {
  1141.             _loc12_ = (_loc11_ = new growthSprite(0,0,20,16777215)).sprite;
  1142.             _loc2_.addChild(_loc12_);
  1143.             _loc12_.x = 40 + 40 * _loc8_;
  1144.             _loc12_.y = 190;
  1145.             _loc14_ = (_loc13_ = new growthSprite(0,0,20,16777215)).sprite;
  1146.             _loc2_.addChild(_loc14_);
  1147.             _loc14_.x = 40 + 40 * _loc8_;
  1148.             _loc14_.y = 150;
  1149.             _loc8_++;
  1150.          }
  1151.          _loc9_ = new ezButton("Next","inst_2",80,25);
  1152.          _loc10_ = new ezButton("Start","skip_instructions",80,25);
  1153.          _loc2_.addChild(_loc9_);
  1154.          _loc9_.x = 200;
  1155.          _loc9_.y = 260;
  1156.          _loc2_.addChild(_loc10_);
  1157.          _loc10_.x = 115;
  1158.          _loc10_.y = 260;
  1159.          _loc10_.addEventListener("button_skip_instructions",dismissOverlay);
  1160.          _loc9_.addEventListener("button_inst_2",showInstructions4);
  1161.       }
  1162.       
  1163.       public function showInstructions4(param1:Event = null) : void
  1164.       {
  1165.          var _loc2_:Sprite = null;
  1166.          var _loc3_:TextField = null;
  1167.          var _loc4_:TextField = null;
  1168.          var _loc5_:String = null;
  1169.          var _loc6_:ezButton = null;
  1170.          if(!GAMEPAUSED)
  1171.          {
  1172.             pause();
  1173.          }
  1174.          if(body && contains(body))
  1175.          {
  1176.             removeChild(body);
  1177.          }
  1178.          body = new MovieClip();
  1179.          _loc2_ = new Sprite();
  1180.          _loc2_.graphics.beginFill(0);
  1181.          _loc2_.graphics.drawRect(0,0,400,300);
  1182.          _loc2_.graphics.endFill();
  1183.          _loc2_.graphics.beginFill(3355443);
  1184.          _loc2_.graphics.drawRect(2,2,396,296);
  1185.          _loc2_.graphics.endFill();
  1186.          _loc2_.x = 100;
  1187.          _loc2_.y = 150;
  1188.          _loc3_ = new_tf("title");
  1189.          _loc3_.x = 70;
  1190.          _loc3_.y = 30;
  1191.          _loc3_.width = 275;
  1192.          _loc3_.text = "Instructions";
  1193.          _loc2_.addChild(_loc3_);
  1194.          (_loc4_ = new_tf("left")).defaultTextFormat.align = "justify";
  1195.          _loc4_.x = 25;
  1196.          _loc4_.y = 90;
  1197.          _loc4_.width = 350;
  1198.          _loc4_.height = 250;
  1199.          _loc4_.multiline = true;
  1200.          _loc4_.wordWrap = true;
  1201.          _loc5_ = "At the end of each level, you will earn bonuses for: \n\n          *Filling more than 2/3 of the level\n          *Number of lives remaining\n          *Time remaining\n          *Balls remaining\n\nThe timer is only used for bonus, so don\'t worry about it running down to zero!";
  1202.          _loc4_.htmlText = _loc5_;
  1203.          _loc2_.addChild(_loc4_);
  1204.          addChild(body);
  1205.          body.addChild(_loc2_);
  1206.          _loc6_ = new ezButton("Start","skip_instructions",80,25);
  1207.          _loc2_.addChild(_loc6_);
  1208.          _loc6_.x = 155;
  1209.          _loc6_.y = 260;
  1210.          _loc6_.addEventListener("button_skip_instructions",dismissOverlay);
  1211.       }
  1212.       
  1213.       private function fadeHandler(param1:TimerEvent) : void
  1214.       {
  1215.          ++slideCount;
  1216.          body.alpha = slideCount / 40;
  1217.       }
  1218.       
  1219.       public function postSplash() : void
  1220.       {
  1221.          startLevel(1);
  1222.          showInstructions();
  1223.          bg.removeChild(pauseText);
  1224.       }
  1225.       
  1226.       private function toggleMusic(param1:Event = null) : void
  1227.       {
  1228.          if(MUSICENABLED)
  1229.          {
  1230.             MUSICENABLED = false;
  1231.             stopMusic();
  1232.             param1.target.label = "Music On";
  1233.          }
  1234.          else
  1235.          {
  1236.             MUSICENABLED = true;
  1237.             startMusic();
  1238.             param1.target.label = "Music Off";
  1239.          }
  1240.       }
  1241.       
  1242.       private function checkSponsorLock() : void
  1243.       {
  1244.          var _loc1_:Sprite = null;
  1245.          var _loc2_:TextField = null;
  1246.          if(GAMEPAUSED)
  1247.          {
  1248.             return;
  1249.          }
  1250.          if(getTimer() < 300000)
  1251.          {
  1252.             return;
  1253.          }
  1254.          GAMEPAUSED = true;
  1255.          if(body && contains(body))
  1256.          {
  1257.             removeChild(body);
  1258.          }
  1259.          body = new MovieClip();
  1260.          body.x = 0;
  1261.          body.y = 0;
  1262.          addChild(body);
  1263.          _loc1_ = new Sprite();
  1264.          _loc1_.graphics.beginFill(0,0.5);
  1265.          _loc1_.graphics.drawRect(0,0,600,500);
  1266.          _loc1_.graphics.endFill();
  1267.          body.addChild(_loc1_);
  1268.          _loc2_ = new_tf("center");
  1269.          _loc2_.text = "This game has not yet been released.  If you would like \n";
  1270.          _loc2_.appendText("to sponsor it, send an email to learnyourabcs@gmail.com.");
  1271.          _loc2_.width = 400;
  1272.          _loc2_.x = 100;
  1273.          _loc2_.y = 200;
  1274.          body.addChild(_loc2_);
  1275.          fadeBody();
  1276.       }
  1277.       
  1278.       public function showInstructions(param1:Event = null) : void
  1279.       {
  1280.          var _loc2_:Sprite = null;
  1281.          var _loc3_:TextField = null;
  1282.          var _loc4_:TextField = null;
  1283.          var _loc5_:* = null;
  1284.          var _loc6_:constantVSprite = null;
  1285.          var _loc7_:Sprite = null;
  1286.          var _loc8_:growthSprite = null;
  1287.          var _loc9_:Sprite = null;
  1288.          var _loc10_:TextField = null;
  1289.          var _loc11_:TextField = null;
  1290.          var _loc12_:ezButton = null;
  1291.          var _loc13_:ezButton = null;
  1292.          if(!GAMEPAUSED)
  1293.          {
  1294.             pause();
  1295.          }
  1296.          if(body && contains(body))
  1297.          {
  1298.             removeChild(body);
  1299.          }
  1300.          body = new MovieClip();
  1301.          _loc2_ = new Sprite();
  1302.          _loc2_.graphics.beginFill(0);
  1303.          _loc2_.graphics.drawRect(0,0,400,300);
  1304.          _loc2_.graphics.endFill();
  1305.          _loc2_.graphics.beginFill(3355443);
  1306.          _loc2_.graphics.drawRect(2,2,396,296);
  1307.          _loc2_.graphics.endFill();
  1308.          _loc2_.x = 100;
  1309.          _loc2_.y = 150;
  1310.          _loc3_ = new_tf("title");
  1311.          _loc3_.x = 70;
  1312.          _loc3_.y = 30;
  1313.          _loc3_.width = 275;
  1314.          _loc3_.text = "Instructions";
  1315.          _loc2_.addChild(_loc3_);
  1316.          (_loc4_ = new_tf("left")).defaultTextFormat.align = "justify";
  1317.          _loc4_.x = 25;
  1318.          _loc4_.y = 90;
  1319.          _loc4_.width = 350;
  1320.          _loc4_.height = 250;
  1321.          _loc4_.multiline = true;
  1322.          _loc4_.wordWrap = true;
  1323.          _loc5_ = (_loc5_ = "The goal of <b>filler</b> is to fill up 2/3 of the screen while ") + "avoiding the bouncing balls.";
  1324.          _loc4_.htmlText = _loc5_;
  1325.          _loc2_.addChild(_loc4_);
  1326.          addChild(body);
  1327.          body.addChild(_loc2_);
  1328.          _loc7_ = (_loc6_ = new constantVSprite(0,0)).sprite;
  1329.          _loc9_ = (_loc8_ = new growthSprite(0,0,30,16777215)).sprite;
  1330.          _loc2_.addChild(_loc7_);
  1331.          _loc2_.addChild(_loc9_);
  1332.          _loc7_.x = 290;
  1333.          _loc9_.x = 100;
  1334.          _loc7_.y = 185;
  1335.          _loc9_.y = 185;
  1336.          (_loc10_ = new_tf("center")).x = 25;
  1337.          _loc10_.y = 225;
  1338.          _loc10_.width = 150;
  1339.          _loc10_.text = "filler ball = good";
  1340.          _loc2_.addChild(_loc10_);
  1341.          (_loc11_ = new_tf("center")).x = 210;
  1342.          _loc11_.y = 225;
  1343.          _loc11_.width = 150;
  1344.          _loc11_.text = "bouncy ball = bad";
  1345.          _loc2_.addChild(_loc11_);
  1346.          _loc12_ = new ezButton("Next","inst_2",80,25);
  1347.          _loc13_ = new ezButton("Start","skip_instructions",80,25);
  1348.          _loc2_.addChild(_loc12_);
  1349.          _loc12_.x = 200;
  1350.          _loc12_.y = 260;
  1351.          _loc2_.addChild(_loc13_);
  1352.          _loc13_.x = 115;
  1353.          _loc13_.y = 260;
  1354.          _loc13_.addEventListener("button_skip_instructions",dismissOverlay);
  1355.          _loc12_.addEventListener("button_inst_2",showInstruction2);
  1356.          if(getTimer() > 30000)
  1357.          {
  1358.             fadeBody();
  1359.          }
  1360.       }
  1361.       
  1362.       public function stopMusic() : void
  1363.       {
  1364.          if(musicChannel)
  1365.          {
  1366.             musicChannel.stop();
  1367.          }
  1368.       }
  1369.       
  1370.       public function tallyPercent() : void
  1371.       {
  1372.          var _loc1_:Array = null;
  1373.          var _loc2_:Number = NaN;
  1374.          var _loc3_:int = 0;
  1375.          var _loc4_:* = null;
  1376.          var _loc5_:SoundTransform = null;
  1377.          _loc1_ = fillerBalls.getAll();
  1378.          _loc2_ = 0;
  1379.          _loc3_ = 0;
  1380.          while(_loc3_ < _loc1_.length)
  1381.          {
  1382.             _loc2_ += 3.1415 * _loc1_[_loc3_].radius * _loc1_[_loc3_].radius;
  1383.             _loc3_++;
  1384.          }
  1385.          percentFilled = _loc2_ / MAXAREA * 100;
  1386.          if((_loc4_ = Math.round(_loc2_ / MAXAREA * 1000) / 10 + "").indexOf(".") == -1)
  1387.          {
  1388.             _loc4_ += ".0";
  1389.          }
  1390.          pctText.text = _loc4_ + "% cleared";
  1391.          if(_loc2_ / MAXAREA * 100 >= 66.555)
  1392.          {
  1393.             if(CURRENTLEVEL == 3)
  1394.             {
  1395.                kongregate.stats.submit("Cleared Level 3",1);
  1396.             }
  1397.             HighestPercentFilled = Math.max(HighestPercentFilled,_loc2_ / MAXAREA * 100);
  1398.             GAMEPAUSED = true;
  1399.             configureOverlays();
  1400.             _loc5_ = new SoundTransform(0.5);
  1401.             if(SOUNDENABLED)
  1402.             {
  1403.                alert24Sound.play(0,0,_loc5_);
  1404.             }
  1405.          }
  1406.       }
  1407.       
  1408.       public function createKongSprite() : void
  1409.       {
  1410.          var _loc1_:TextFormat = null;
  1411.          var _loc2_:Sprite = null;
  1412.          var _loc3_:TextField = null;
  1413.          _loc1_ = new TextFormat();
  1414.          _loc1_.font = "Arial";
  1415.          _loc1_.color = 16777215;
  1416.          _loc1_.size = 10;
  1417.          _loc2_ = new Sprite();
  1418.          _loc2_.mouseChildren = false;
  1419.          _loc2_.graphics.beginFill(0);
  1420.          _loc2_.graphics.lineStyle(1,16777215,1);
  1421.          _loc2_.graphics.drawRect(0,15,340,40);
  1422.          _loc2_.graphics.endFill();
  1423.          _loc2_.addChild(logoSprite);
  1424.          logoSprite.x = 0;
  1425.          logoSprite.y = 0;
  1426.          _loc3_ = new_tf("left");
  1427.          _loc3_.defaultTextFormat = _loc1_;
  1428.          _loc3_.text = "Sponsored by:";
  1429.          _loc2_.addChild(_loc3_);
  1430.          _loc3_.x = 0;
  1431.          _loc3_.y = 16;
  1432.          _loc1_.size = 12;
  1433.          kongText = new_tf("left");
  1434.          kongText.width = 300;
  1435.          kongText.defaultTextFormat = _loc1_;
  1436.          kongText.text = "Play more games on Kongregate\nto chat and earn badges!";
  1437.          _loc2_.addChild(kongText);
  1438.          kongText.x = 155;
  1439.          kongText.y = 19;
  1440.          kongSprite = _loc2_;
  1441.       }
  1442.       
  1443.       public function kongConnected(param1:KongregateEvent) : void
  1444.       {
  1445.          trace("Succesfully connected to Kongregate API");
  1446.       }
  1447.       
  1448.       private function redTimerHandler(param1:TimerEvent) : void
  1449.       {
  1450.          var _loc2_:Number = NaN;
  1451.          var _loc3_:int = 0;
  1452.          var _loc4_:uint = 0;
  1453.          var _loc5_:uint = 0;
  1454.          var _loc6_:uint = 0;
  1455.          ++redCount;
  1456.          _loc2_ = redCount / 20;
  1457.          _loc3_ = _loc2_ * 85;
  1458.          bg.graphics.clear();
  1459.          _loc4_ = 85 << 16;
  1460.          _loc5_ = _loc3_ << 8;
  1461.          _loc6_ = _loc3_;
  1462.          bg.graphics.beginFill(_loc4_ + _loc5_ + _loc6_);
  1463.          bg.graphics.drawRect(0,0,600,500);
  1464.          bg.graphics.endFill();
  1465.       }
  1466.       
  1467.       public function sendHighScore(param1:Object = null) : void
  1468.       {
  1469.          var TX:int = 0;
  1470.          var scoreBG:Sprite = null;
  1471.          var table:TextScoreTable = null;
  1472.          var format:TextFormat = null;
  1473.          var scoreLabel:TextField = null;
  1474.          var nameLabel:TextField = null;
  1475.          var scoreText:TextField = null;
  1476.          var nameField:TextField = null;
  1477.          var submit:ezButton = null;
  1478.          var ng:ezButton = null;
  1479.          var doneWithScores:ezButton = null;
  1480.          var sendScore:Function = null;
  1481.          var ev:Object = param1;
  1482.          if(GAMEPAUSED)
  1483.          {
  1484.             pause();
  1485.          }
  1486.          GAMEPAUSED = true;
  1487.          stopMusic();
  1488.          kongregate.scores.submit(playerScore);
  1489.          kongregate.stats.submit("Filler Balls Created",TotalBallsMade);
  1490.          kongregate.stats.submit("Highest Level",CURRENTLEVEL);
  1491.          kongregate.stats.submit("Highest Percent",HighestPercentFilled);
  1492.          if(body)
  1493.          {
  1494.             if(contains(body))
  1495.             {
  1496.                removeChild(body);
  1497.             }
  1498.             body = null;
  1499.          }
  1500.          body = new MovieClip();
  1501.          body.x = 0;
  1502.          body.y = 0;
  1503.          addChild(body);
  1504.          TX = 125;
  1505.          scoreBG = new Sprite();
  1506.          scoreBG.graphics.beginFill(0);
  1507.          scoreBG.graphics.drawRect(TX - 5,150,360,300);
  1508.          scoreBG.graphics.endFill();
  1509.          scoreBG.graphics.beginFill(3355443);
  1510.          scoreBG.graphics.drawRect(TX - 3,152,356,296);
  1511.          scoreBG.graphics.endFill();
  1512.          body.addChild(scoreBG);
  1513.          table = new TextScoreTable();
  1514.          trace("table created...");
  1515.          body.addChild(table);
  1516.          table.x = TX;
  1517.          table.y = 155;
  1518.          table.init();
  1519.          table.title.text = " Game Over! ";
  1520.          format = new TextFormat();
  1521.          format.font = "Arial";
  1522.          format.color = 16777215;
  1523.          format.size = 16;
  1524.          scoreLabel = new TextField();
  1525.          scoreLabel.defaultTextFormat = format;
  1526.          scoreLabel.selectable = false;
  1527.          scoreLabel.text = "Your Score:";
  1528.          scoreLabel.x = TX + 55;
  1529.          scoreLabel.y = 260;
  1530.          body.addChild(scoreLabel);
  1531.          nameLabel = new TextField();
  1532.          nameLabel.defaultTextFormat = format;
  1533.          nameLabel.selectable = false;
  1534.          nameLabel.text = "Your Name:";
  1535.          nameLabel.x = TX + 55;
  1536.          nameLabel.y = 280;
  1537.          body.addChild(nameLabel);
  1538.          scoreText = new TextField();
  1539.          scoreText.defaultTextFormat = format;
  1540.          scoreText.selectable = false;
  1541.          scoreText.text = TextScoreTable.commafy(playerScore);
  1542.          scoreText.x = TX + 158;
  1543.          scoreText.y = 260;
  1544.          scoreText.width = 120;
  1545.          body.addChild(scoreText);
  1546.          nameField = new TextField();
  1547.          nameField.defaultTextFormat = format;
  1548.          nameField.text = playerName;
  1549.          nameField.x = TX + 158;
  1550.          nameField.y = 280;
  1551.          nameField.width = 120;
  1552.          nameField.height = 22;
  1553.          nameField.border = true;
  1554.          nameField.type = TextFieldType.INPUT;
  1555.          body.addChild(nameField);
  1556.          submit = new ezButton("Submit","hsSubmit",100,36);
  1557.          submit.x = TX + 176;
  1558.          submit.y = 340;
  1559.          body.addChild(submit);
  1560.          ng = new ezButton("New Game","newGame",100,36);
  1561.          ng.x = TX + 74;
  1562.          ng.y = 340;
  1563.          body.addChild(ng);
  1564.          ng.addEventListener("button_newGame",newGameButton);
  1565.          doneWithScores = new ezButton("New Game","closeScoresAndNew",100,36);
  1566.          doneWithScores.x = TX + 245;
  1567.          doneWithScores.y = 405;
  1568.          doneWithScores.visible = false;
  1569.          body.addChild(doneWithScores);
  1570.          doneWithScores.addEventListener("button_closeScoresAndNew",closeScoresNew);
  1571.          sendScore = function(param1:Event):void
  1572.          {
  1573.             var opts:Object = null;
  1574.             var hs:String = null;
  1575.             var params:Object = null;
  1576.             var event:Event = param1;
  1577.             shrinkKongSprite();
  1578.             submit.visible = false;
  1579.             ng.visible = false;
  1580.             nameField.visible = false;
  1581.             nameLabel.visible = false;
  1582.             scoreLabel.visible = false;
  1583.             scoreText.visible = false;
  1584.             doneWithScores.visible = true;
  1585.             playerName = nameField.text;
  1586.             opts = getOptions();
  1587.             hs = "/kong2";
  1588.             try
  1589.             {
  1590.                params = root.loaderInfo.parameters;
  1591.                if(params["hsname"])
  1592.                {
  1593.                   hs = params["hsname"];
  1594.                }
  1595.             }
  1596.             catch(error:Error)
  1597.             {
  1598.                trace("Whoops!");
  1599.             }
  1600.             opts.id += hs;
  1601.             opts.name = playerName;
  1602.             opts.score = playerScore;
  1603.             table.reset("Sending high score...");
  1604.             MochiAd.sendHighScore(opts,table,"gotScores");
  1605.          };
  1606.          submit.addEventListener("button_hsSubmit",sendScore);
  1607.          createKongSprite();
  1608.          kongSprite.x = TX + 5;
  1609.          kongSprite.y = 385;
  1610.          kongSprite.buttonMode = true;
  1611.          kongSprite.addEventListener("click",goToKongregate);
  1612.          body.addChild(kongSprite);
  1613.       }
  1614.       
  1615.       public function new_tf(param1:String) : TextField
  1616.       {
  1617.          var _loc2_:TextField = null;
  1618.          _loc2_ = new TextField();
  1619.          _loc2_.defaultTextFormat = scoreTextFormat(param1);
  1620.          _loc2_.selectable = false;
  1621.          return _loc2_;
  1622.       }
  1623.       
  1624.       public function hardBounceSound(param1:Event) : void
  1625.       {
  1626.          var _loc2_:SoundTransform = null;
  1627.          if(!SOUNDENABLED)
  1628.          {
  1629.             return;
  1630.          }
  1631.          _loc2_ = new SoundTransform(0.75);
  1632.          bounceSound.play(0,0,_loc2_);
  1633.       }
  1634.       
  1635.       private function newGameButton(param1:Event = null) : void
  1636.       {
  1637.          hideMenu();
  1638.          if(body && contains(body))
  1639.          {
  1640.             removeChild(body);
  1641.          }
  1642.          if(getTimer() - LASTAD > 900000)
  1643.          {
  1644.             showInterLevel();
  1645.          }
  1646.          else
  1647.          {
  1648.             newGame();
  1649.          }
  1650.       }
  1651.       
  1652.       public function playBounceSound(param1:Event) : void
  1653.       {
  1654.          var _loc2_:SoundTransform = null;
  1655.          if(!SOUNDENABLED)
  1656.          {
  1657.             return;
  1658.          }
  1659.          _loc2_ = new SoundTransform(0.4);
  1660.          bounceSound.play(0,0,_loc2_);
  1661.       }
  1662.       
  1663.       public function newGame(param1:Event = null) : void
  1664.       {
  1665.          if(GAMEPAUSED)
  1666.          {
  1667.             pause();
  1668.          }
  1669.          startMusic();
  1670.          playerScore = 0;
  1671.          scoreText.text = "Score: 0";
  1672.          CURRENTLEVEL = 1;
  1673.          TotalBallsMade = 0;
  1674.          startLevel(1);
  1675.       }
  1676.       
  1677.       public function showKongSplash() : void
  1678.       {
  1679.          var _loc1_:Sprite = null;
  1680.          if(body && contains(body))
  1681.          {
  1682.             removeChild(body);
  1683.          }
  1684.          body = new MovieClip();
  1685.          body.x = 0;
  1686.          body.y = 0;
  1687.          addChild(body);
  1688.          _loc1_ = new Sprite();
  1689.          _loc1_.graphics.beginFill(0,1);
  1690.          _loc1_.graphics.drawRect(0,0,600,500);
  1691.          _loc1_.graphics.endFill();
  1692.          _loc1_.buttonMode = true;
  1693.          body.addChild(_loc1_);
  1694.          _loc1_.addChild(splashSprite);
  1695.          splashSprite.width = 600;
  1696.          splashSprite.height = 500;
  1697.          _loc1_.mouseChildren = false;
  1698.          _loc1_.addEventListener("click",goToKongregate);
  1699.          setTimeout(postSplash,3250);
  1700.       }
  1701.       
  1702.       private function scoreTextFormat(param1:String) : TextFormat
  1703.       {
  1704.          var _loc2_:TextFormat = null;
  1705.          _loc2_ = new TextFormat();
  1706.          _loc2_.font = "_sans";
  1707.          _loc2_.color = 13421772;
  1708.          _loc2_.size = 14;
  1709.          if(param1 == "left")
  1710.          {
  1711.             _loc2_.align = TextFormatAlign.LEFT;
  1712.          }
  1713.          else if(param1 == "right")
  1714.          {
  1715.             _loc2_.align = TextFormatAlign.RIGHT;
  1716.          }
  1717.          else if(param1 == "center")
  1718.          {
  1719.             _loc2_.align = TextFormatAlign.CENTER;
  1720.          }
  1721.          else
  1722.          {
  1723.             if(param1 != "title")
  1724.             {
  1725.                throw new Error("Invalid text format " + param1);
  1726.             }
  1727.             _loc2_.align = TextFormatAlign.CENTER;
  1728.             _loc2_.color = 16777215;
  1729.             _loc2_.size = 32;
  1730.          }
  1731.          return _loc2_;
  1732.       }
  1733.       
  1734.       private function fadeHandlerDone(param1:TimerEvent) : void
  1735.       {
  1736.          body.alpha = 100;
  1737.       }
  1738.       
  1739.       public function goToKongregate(param1:Event) : void
  1740.       {
  1741.          var _loc2_:URLRequest = null;
  1742.          _loc2_ = new URLRequest("http://www.kongregate.com/?gamereferral=filler");
  1743.          navigateToURL(_loc2_,"_blank");
  1744.       }
  1745.       
  1746.       private function hideMenu(param1:Event = null) : void
  1747.       {
  1748.          verticalMenu.visible = false;
  1749.       }
  1750.       
  1751.       private function pause(param1:Event = null) : void
  1752.       {
  1753.          if(GAMEPAUSED)
  1754.          {
  1755.             if(body && contains(body))
  1756.             {
  1757.                return;
  1758.             }
  1759.             GAMEPAUSED = false;
  1760.             LASTUPDATE = getTimer();
  1761.             if(bg.contains(pauseOverlay))
  1762.             {
  1763.                bg.removeChild(pauseOverlay);
  1764.             }
  1765.             if(bg.contains(pauseText))
  1766.             {
  1767.                bg.removeChild(pauseText);
  1768.             }
  1769.             startMusic();
  1770.          }
  1771.          else
  1772.          {
  1773.             GAMEPAUSED = true;
  1774.             bg.addChild(pauseOverlay);
  1775.             bg.addChild(pauseText);
  1776.             stopMusic();
  1777.          }
  1778.       }
  1779.    }
  1780. }
  1781.