package { import com.exanimo.controls.BaseProgressBar; import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; public class SmileyProgressBar extends BaseProgressBar { public var ease:Number = 0.2; private var _minY:Number = 77; private var _maxY:Number = 0; private var _indicator:Sprite; private var _smile:Sprite; private var _frown:Sprite; /** * * * */ public function SmileyProgressBar() { this._frown = this.getChildByName('frown') as Sprite; this._smile = this.getChildByName('smile') as Sprite; this._smile.visible = false; this.addEventListener(Event.COMPLETE, this._completeHandler); this.addEventListener(Event.ENTER_FRAME, this._enterFrameHandler); this._indicator = this.getChildByName('indicator') as Sprite; } // // public methods // /** * * * */ public override function reset():void { this._indicator.y = this._minY; super.reset(); } // // private methods // /** * * * */ private function _completeHandler(e:Event):void { this._smile.visible = true; this._frown.visible = false; } /** * * * */ private function _enterFrameHandler(e:Event):void { var dest:Number = (((this.value / this.maximum) || 0) * (this._maxY - this._minY)) + this._minY; /*var newX:Number = (dest - this._indicator.y) * this.ease + this._indicator.y; this._indicator.y = newX;*/ this._indicator.y = dest; } } }