//椭圆布局 是圆形布局的一种特殊表现 //区别在于具有 x y 两个方向的半径 public class EllipseLayOut extends CircleLayOut { //Y方向半径 protected var radiusY:Number;
public function EllipseLayOut(centerPoint:Point,groupEls:Array,startAngle:Number,radiusX:Number,radiusY:Number) { super(centerPoint,groupEls,startAngle,radiusX); this.radiusY = radiusY;
}
//布局算法 基本和圆形一样 override public function layout():void{ var len:Number = this.layoutEls.length; this.disAngle = 360/len; for(var i:int=0;i<len;i++){ var tempRaian:Number = Tools.angle2Radian(this.startAngle); var node:DisplayObject = this.layoutEls[i] as DisplayObject; node.x = this.centerPoint.x + Math.cos(tempRaian)*this.radiusX; node.y = this.centerPoint.y + Math.sin(tempRaian)*this.radiusY; //角度增加 this.startAngle+=this.disAngle; } }