home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / net / xinterface / display / Align.as next >
Encoding:
Text File  |  2010-06-23  |  4.0 KB  |  128 lines

  1. package net.xinterface.display
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.Sprite;
  5.    import flash.geom.Point;
  6.    import net.xinterface.utils.ArrayUtils;
  7.    
  8.    public class Align
  9.    {
  10.       public static const TOP_LEFT:String = "top_left";
  11.       
  12.       public static const TOP_CENTER:String = "top_center";
  13.       
  14.       public static const TOP_RIGHT:String = "top_right";
  15.       
  16.       public static const CENTER_LEFT:String = "center_left";
  17.       
  18.       public static const CENTER_CENTER:String = "center_center";
  19.       
  20.       public static const CENTER_RIGHT:String = "center_right";
  21.       
  22.       public static const BOTTOM_LEFT:String = "bottom_left";
  23.       
  24.       public static const BOTTOM_CENTER:String = "bottom_center";
  25.       
  26.       public static const BOTTOM_RIGHT:String = "bottom_right";
  27.       
  28.       private static var stack:Array = [];
  29.       
  30.       public function Align()
  31.       {
  32.          super();
  33.       }
  34.       
  35.       public static function AlignObject(param1:DisplayObject, param2:String) : void
  36.       {
  37.          var _loc3_:Point = GetAligningPosition(param2,param1.width,param1.height);
  38.          var _loc4_:Number = _loc3_.x;
  39.          var _loc5_:Number = _loc3_.y;
  40.          param1.x = _loc4_;
  41.          param1.y = _loc5_;
  42.       }
  43.       
  44.       public static function AlignAndCreateParent(param1:DisplayObject, param2:String) : Sprite
  45.       {
  46.          if(stack.indexOf(param1) != -1)
  47.          {
  48.             throw new Error("Align > ya se ha creado el parent de este objeto antes, no se puede llamar esta funci├│n m├ís de una vez para un mismo objeto");
  49.          }
  50.          stack.push(param1);
  51.          var _loc3_:Sprite = new Sprite();
  52.          _loc3_.x = param1.x;
  53.          _loc3_.y = param1.y;
  54.          param1.parent.addChild(_loc3_);
  55.          _loc3_.addChild(param1);
  56.          AlignAndMoveParent(param1,param2);
  57.          return _loc3_;
  58.       }
  59.       
  60.       public static function GetAligningPosition(param1:String, param2:Number, param3:Number) : Point
  61.       {
  62.          var _loc4_:Number = NaN;
  63.          var _loc5_:Number = NaN;
  64.          switch(param1)
  65.          {
  66.             case Align.BOTTOM_CENTER:
  67.                _loc4_ = -param2 / 2;
  68.                _loc5_ = -param3;
  69.                break;
  70.             case Align.BOTTOM_LEFT:
  71.                _loc4_ = 0;
  72.                _loc5_ = -param3;
  73.                break;
  74.             case Align.BOTTOM_RIGHT:
  75.                _loc4_ = -param2;
  76.                _loc5_ = -param3;
  77.                break;
  78.             case Align.CENTER_CENTER:
  79.                _loc4_ = -param2 / 2;
  80.                _loc5_ = -param3 / 2;
  81.                break;
  82.             case Align.CENTER_LEFT:
  83.                _loc4_ = 0;
  84.                _loc5_ = -param3 / 2;
  85.                break;
  86.             case Align.CENTER_RIGHT:
  87.                _loc4_ = -param2;
  88.                _loc5_ = -param3 / 2;
  89.                break;
  90.             case Align.TOP_CENTER:
  91.                _loc4_ = -param2 / 2;
  92.                _loc5_ = 0;
  93.                break;
  94.             case Align.TOP_LEFT:
  95.                _loc4_ = 0;
  96.                _loc5_ = 0;
  97.                break;
  98.             case Align.TOP_RIGHT:
  99.                _loc4_ = -param2;
  100.                _loc5_ = 0;
  101.          }
  102.          return new Point(_loc4_,_loc5_);
  103.       }
  104.       
  105.       public static function AlignAndMoveParent(param1:DisplayObject, param2:String) : void
  106.       {
  107.          if(!param1.parent)
  108.          {
  109.             throw new Error("Align > El objeto que desea alinear debe encontrarse dentro de un DisplayObjectContainer");
  110.          }
  111.          var _loc3_:Point = GetAligningPosition(param2,param1.width,param1.height);
  112.          var _loc4_:Number = _loc3_.x;
  113.          var _loc5_:Number = _loc3_.y;
  114.          param1.x = _loc4_;
  115.          param1.y = _loc5_;
  116.          var _loc6_:DisplayObject = param1.parent;
  117.          _loc6_.x -= _loc4_;
  118.          _loc6_.y -= _loc5_;
  119.       }
  120.       
  121.       public static function RemoveObjectFromStack(param1:DisplayObject) : void
  122.       {
  123.          ArrayUtils.Pop(stack,param1);
  124.       }
  125.    }
  126. }
  127.  
  128.