home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Puzzle / HexiomConnect.swf / scripts / Background.as < prev    next >
Text File  |  2008-08-29  |  5KB  |  181 lines

  1. package
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.Graphics;
  5.    import flash.display.Sprite;
  6.    import flash.events.Event;
  7.    import flash.geom.ColorTransform;
  8.    import flash.geom.Matrix;
  9.    
  10.    public class Background extends Sprite
  11.    {
  12.       
  13.       public static var GREEN:ColorTransform;
  14.       
  15.       private static var StarField:Class = Background_StarField;
  16.       
  17.       public static var ORANGE:ColorTransform;
  18.       
  19.       public static var RED:ColorTransform;
  20.       
  21.       public static var BLUE:ColorTransform;
  22.       
  23.       public static var YELLOW:ColorTransform;
  24.        
  25.       
  26.       public var matrix:Matrix;
  27.       
  28.       public var lq:Boolean = false;
  29.       
  30.       public var speed:Number;
  31.       
  32.       public var stars:Array;
  33.       
  34.       public var from:ColorTransform;
  35.       
  36.       public var progress:Number;
  37.       
  38.       public var playing:Boolean = true;
  39.       
  40.       public var targetSpeed:Number;
  41.       
  42.       public var current:ColorTransform;
  43.       
  44.       public var to:ColorTransform;
  45.       
  46.       public function Background()
  47.       {
  48.          var _loc3_:DisplayObject = null;
  49.          super();
  50.          progress = 1;
  51.          from = new ColorTransform();
  52.          to = new ColorTransform();
  53.          current = new ColorTransform();
  54.          BLUE = new ColorTransform();
  55.          RED = new ColorTransform();
  56.          GREEN = new ColorTransform();
  57.          YELLOW = new ColorTransform();
  58.          ORANGE = new ColorTransform();
  59.          BLUE.color = 73095;
  60.          RED.color = 8912896;
  61.          GREEN.color = 2254370;
  62.          YELLOW.color = 12303138;
  63.          ORANGE.color = 11171635;
  64.          from.color = to.color = current.color = BLUE.color;
  65.          speed = 1;
  66.          targetSpeed = 1;
  67.          stars = new Array();
  68.          var _loc1_:int = 0;
  69.          while(_loc1_ < 10)
  70.          {
  71.             _loc3_ = new StarField();
  72.             _loc3_.scaleX = _loc3_.scaleY = _loc1_ / 10 * 3;
  73.             _loc3_.rotation = Math.random() * 360;
  74.             _loc3_.x = _loc3_.y = 200;
  75.             stars.push(_loc3_);
  76.             addChild(_loc3_);
  77.             _loc1_++;
  78.          }
  79.          matrix = new Matrix();
  80.          var _loc2_:Number = 400 * Math.sqrt(2);
  81.          matrix.createGradientBox(_loc2_,_loc2_,0,(400 - _loc2_) / 2,(400 - _loc2_) / 2);
  82.          draw();
  83.          addEventListener(Event.ENTER_FRAME,update,false,0,true);
  84.       }
  85.       
  86.       public function draw() : void
  87.       {
  88.          var _loc1_:Graphics = this.graphics;
  89.          _loc1_.clear();
  90.          _loc1_.beginGradientFill("radial",[current.color,0],[1,1],[0,255],matrix);
  91.          _loc1_.moveTo(0,0);
  92.          _loc1_.lineTo(0,400);
  93.          _loc1_.lineTo(400,400);
  94.          _loc1_.lineTo(400,0);
  95.          _loc1_.lineTo(0,0);
  96.          _loc1_.endFill();
  97.       }
  98.       
  99.       public function update(param1:Event) : void
  100.       {
  101.          var _loc3_:DisplayObject = null;
  102.          if(!playing)
  103.          {
  104.             return;
  105.          }
  106.          if(speed != targetSpeed)
  107.          {
  108.             if(speed < targetSpeed)
  109.             {
  110.                speed = Math.min(targetSpeed,speed + 0.05);
  111.             }
  112.             else
  113.             {
  114.                speed = Math.max(targetSpeed,speed - 0.05);
  115.             }
  116.          }
  117.          if(progress < 1)
  118.          {
  119.             progress += 0.05;
  120.             updateColor();
  121.          }
  122.          if(lq)
  123.          {
  124.             return;
  125.          }
  126.          var _loc2_:int = 0;
  127.          while(_loc2_ < stars.length)
  128.          {
  129.             _loc3_ = stars[_loc2_];
  130.             _loc3_.rotation += 0.01 * speed;
  131.             _loc3_.scaleX -= 0.003 * speed;
  132.             _loc3_.scaleY -= 0.003 * speed;
  133.             if(_loc3_.scaleX < 0.05)
  134.             {
  135.                _loc3_.scaleX = _loc3_.scaleY = 3;
  136.             }
  137.             _loc2_++;
  138.          }
  139.       }
  140.       
  141.       public function updateColor() : void
  142.       {
  143.          current = interpolateColor(from,to,progress);
  144.          draw();
  145.       }
  146.       
  147.       public function interpolateColor(param1:ColorTransform, param2:ColorTransform, param3:Number) : ColorTransform
  148.       {
  149.          var _loc4_:Number = param1.redOffset + (param2.redOffset - param1.redOffset) * param3;
  150.          var _loc5_:Number = param1.greenOffset + (param2.greenOffset - param1.greenOffset) * param3;
  151.          var _loc6_:Number = param1.blueOffset + (param2.blueOffset - param1.blueOffset) * param3;
  152.          return new ColorTransform(0,0,0,1,_loc4_,_loc5_,_loc6_);
  153.       }
  154.       
  155.       public function setColor(param1:ColorTransform) : void
  156.       {
  157.          progress = 0;
  158.          from.color = current.color;
  159.          to.color = param1.color;
  160.          targetSpeed = 1;
  161.          updateColor();
  162.       }
  163.       
  164.       public function setDifficulty(param1:Number) : void
  165.       {
  166.          progress = 0;
  167.          from.color = current.color;
  168.          if(param1 < 0)
  169.          {
  170.             to.color = GREEN.color;
  171.          }
  172.          else
  173.          {
  174.             to = interpolateColor(BLUE,RED,param1);
  175.          }
  176.          targetSpeed = Math.max(1,1 + param1 * 2);
  177.          updateColor();
  178.       }
  179.    }
  180. }
  181.