package com.oxylusflash.book { import flash.display.DisplayObject; import flash.display.Sprite; public class BarGroup extends Sprite { // Group background. public var bgMc:Sprite; // Separators array. public var separators:Array = []; // Left/right padding and x spacing. private static var PADDING:Number = 4; private static var SPACING:Number = 3; // last x positon used for positioning new added elements private var lastX:Number = PADDING; public function BarGroup() { bgMc.cacheAsBitmap = true; this.width = 2 * PADDING; } /** * Add item. * @param item Display object. * @return The added item. */ public function addItem(item:DisplayObject):* { this.addChild(item); item.x = lastX; item.y = Math.round((this.height - item.height) * 0.5); this.width = item.x + item.width + PADDING; lastX = item.x + item.width + SPACING; return item; } /** * Add separator. */ public function addSeparator():void { separators.push(addItem(new LibBarGroupSeparator)); } /** * Add spacing. * @param size Size in pixels. */ public function addSpacing(size:Number = 10):void { lastX += size; this.width += size; } /** * Overrides. */ override public function get width():Number { return bgMc.width; } override public function set width(value:Number):void { if (bgMc.width != value) { bgMc.width = value; } } override public function get height():Number { return bgMc.height; } override public function set height(value:Number):void { } } }