package comp { import mx.containers.HBox; public class Rating extends HBox { private var _ratingValue: Number; private var _stars: Array; public function Rating() { super(); _stars = new Array(5); } public function set ratingValue(value: Number): void { this._ratingValue = value; invalidateDisplayList(); } override protected function createChildren():void { super.createChildren(); for (var i: uint = 0; i < _stars.length; i++) { var ratingStar: RatingStar = new RatingStar(); _stars[i] = ratingStar; this.addChild(ratingStar); } } override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth, unscaledHeight); var ratingTemp: Number = _ratingValue; var ratingStar: RatingStar; for(var i:uint = 0; i < _stars.length; i++) { ratingStar = _stars[i]; if(ratingTemp >= 1) { ratingStar.currentState = "fullStar"; ratingTemp -= 1; } else if(ratingTemp >= .5) { ratingStar.currentState = "halfStar"; ratingTemp -= .5; } else { ratingStar.currentState = "noStar"; } } } } }