package com.kingnare.controls { import flash.display.Sprite; public class MyMatrix extends Sprite { private var list:Array; private var maxWidth:uint; private var maxHeight:uint; private var _columnNum:uint; private var _hDis:uint; private var _vDis:uint; public function MyMatrix() { super(); _hDis = 1; _vDis = 1; _columnNum = 50; maxWidth = 1; maxHeight = 1; } private function create(num:uint):void { if(num < 0) return; list = []; for(var i:uint = 0;i= _columnNum-1) { wNum = 0; hNum++; } else { wNum++; } } } maxWidth = _columnNum*(list[0].width + _hDis); maxHeight = (hNum+1)*(list[0].height + _vDis); drawMatrix(); } private function drawMatrix():void { var i:uint = 0; while (list && i < list.length) { var cell:Cell = list[i] as Cell; if(!this.contains(cell)) { addChild(cell); } i++; } } public function clear():void { while(this.numChildren>0) { this.removeChildAt(0); } while(list && list.length>0) { var cell:Cell = list.pop() as Cell; cell = null; } } public function set count(value:uint):void { if(!isNaN(value)) { clear(); if(value > 0) { create(value); } } } public function get count():uint { return list.length; } public function set columnNum(value:uint):void { _columnNum = value; updateLayout(); } public function get columnNum():uint { return _columnNum; } public function set hDis(value:uint):void { _hDis = value; updateLayout(); } public function get hDis():uint { return _hDis; } public function set vDis(value:uint):void { _vDis = value; updateLayout(); } public function get vDis():uint { return _vDis; } } }