package { import mx.containers.Canvas; import mx.containers.HBox; import mx.containers.ViewStack; import mx.controls.Button; import mx.collections.ArrayCollection; import mx.skins.halo.TabSkin; import flash.events.MouseEvent; public class professional_flex_code_13_MultiRowTabs extends Canvas { // declare class properties public var myViewStack:ViewStack; public var tabsPerRow:Number = 4; public var rowHeight:Number = 22; public var tabRows:Array = new Array(); private var _dp:ArrayCollection; private var buttonArray:ArrayCollection; // default constructor public function professional_flex_code_13_MultiRowTabs(){ } // getters and setters public function get dp():ArrayCollection{ return _dp; } public function set dp(a:ArrayCollection):void{ _dp=a; this.removeAllChildren(); buttonArray = new ArrayCollection(); var start:Number = 0; var end:Number = tabsPerRow; var currentY:Number = 0; // add rows for(var i:Number=0; i this.dp.length){ end = this.dp.length; } var myRowNumber:Number = 0; var newCurrentY:Number = 0; // position rows so that selected tab is in bottom row for(var k:Number=0; k