classes

SelectableButton.as

Stiahnuť SelectableButton.as

package sk.yoz.ui
{
    import flash.display.DisplayObject;
    import flash.display.SimpleButton;
    import flash.events.MouseEvent;
    
    public class SelectableButton extends SimpleButton
    {
        private var _selected:Boolean;
        private var _toggle:Boolean;
        
        private var _upState:DisplayObject;
        private var _overState:DisplayObject;
        
        public function SelectableButton(upState:DisplayObject=null, 
            overState:DisplayObject=null, downState:DisplayObject=null, 
            hitTestState:DisplayObject=null, toggle:Boolean=false)
        {
            super(upState, overState, downState, hitTestState);
            
            this.toggle = toggle;
            _upState = upState;
            _overState = overState;
            
            addEventListener(MouseEvent.CLICK, onClick);
        }
        
        public function set selected(value:Boolean):void
        {
            _selected = value;
            upState = selected ? downState : _upState;
            overState = selected ? downState : _overState;
        }
        
        public function get selected():Boolean
        {
            return _selected;
        }
        
        public function set toggle(value:Boolean):void
        {
            _toggle = value;
        }
        
        public function get toggle():Boolean
        {
            return _toggle;
        }
        
        private function onClick(event:MouseEvent):void
        {
            if(toggle)
                selected = !selected;
        }
    }
}