home *** CD-ROM | disk | FTP | other *** search
- package net.xinterface.display
- {
- import flash.display.DisplayObject;
- import flash.display.Sprite;
- import flash.geom.Point;
- import net.xinterface.utils.ArrayUtils;
-
- public class Align
- {
- public static const TOP_LEFT:String = "top_left";
-
- public static const TOP_CENTER:String = "top_center";
-
- public static const TOP_RIGHT:String = "top_right";
-
- public static const CENTER_LEFT:String = "center_left";
-
- public static const CENTER_CENTER:String = "center_center";
-
- public static const CENTER_RIGHT:String = "center_right";
-
- public static const BOTTOM_LEFT:String = "bottom_left";
-
- public static const BOTTOM_CENTER:String = "bottom_center";
-
- public static const BOTTOM_RIGHT:String = "bottom_right";
-
- private static var stack:Array = [];
-
- public function Align()
- {
- super();
- }
-
- public static function AlignObject(param1:DisplayObject, param2:String) : void
- {
- var _loc3_:Point = GetAligningPosition(param2,param1.width,param1.height);
- var _loc4_:Number = _loc3_.x;
- var _loc5_:Number = _loc3_.y;
- param1.x = _loc4_;
- param1.y = _loc5_;
- }
-
- public static function AlignAndCreateParent(param1:DisplayObject, param2:String) : Sprite
- {
- if(stack.indexOf(param1) != -1)
- {
- 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");
- }
- stack.push(param1);
- var _loc3_:Sprite = new Sprite();
- _loc3_.x = param1.x;
- _loc3_.y = param1.y;
- param1.parent.addChild(_loc3_);
- _loc3_.addChild(param1);
- AlignAndMoveParent(param1,param2);
- return _loc3_;
- }
-
- public static function GetAligningPosition(param1:String, param2:Number, param3:Number) : Point
- {
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- switch(param1)
- {
- case Align.BOTTOM_CENTER:
- _loc4_ = -param2 / 2;
- _loc5_ = -param3;
- break;
- case Align.BOTTOM_LEFT:
- _loc4_ = 0;
- _loc5_ = -param3;
- break;
- case Align.BOTTOM_RIGHT:
- _loc4_ = -param2;
- _loc5_ = -param3;
- break;
- case Align.CENTER_CENTER:
- _loc4_ = -param2 / 2;
- _loc5_ = -param3 / 2;
- break;
- case Align.CENTER_LEFT:
- _loc4_ = 0;
- _loc5_ = -param3 / 2;
- break;
- case Align.CENTER_RIGHT:
- _loc4_ = -param2;
- _loc5_ = -param3 / 2;
- break;
- case Align.TOP_CENTER:
- _loc4_ = -param2 / 2;
- _loc5_ = 0;
- break;
- case Align.TOP_LEFT:
- _loc4_ = 0;
- _loc5_ = 0;
- break;
- case Align.TOP_RIGHT:
- _loc4_ = -param2;
- _loc5_ = 0;
- }
- return new Point(_loc4_,_loc5_);
- }
-
- public static function AlignAndMoveParent(param1:DisplayObject, param2:String) : void
- {
- if(!param1.parent)
- {
- throw new Error("Align > El objeto que desea alinear debe encontrarse dentro de un DisplayObjectContainer");
- }
- var _loc3_:Point = GetAligningPosition(param2,param1.width,param1.height);
- var _loc4_:Number = _loc3_.x;
- var _loc5_:Number = _loc3_.y;
- param1.x = _loc4_;
- param1.y = _loc5_;
- var _loc6_:DisplayObject = param1.parent;
- _loc6_.x -= _loc4_;
- _loc6_.y -= _loc5_;
- }
-
- public static function RemoveObjectFromStack(param1:DisplayObject) : void
- {
- ArrayUtils.Pop(stack,param1);
- }
- }
- }
-
-