圓角TabNavigator:RoundTabNavigator

package com.sybuild.sdxt.core.component.syTabNavigator.component
{
    import mx.containers.TabNavigator;
    /**
     * 用於定義選項卡的默認顏色  */
    [Style(name="upSkinColors",type="Array",format="Color",inherit="yes",theme="spark")]
    /**
     * 用於定義選項卡鼠標覆蓋顏色  */
    [Style(name="RollColors",type="Array",format="Color",inherit="yes",theme="spark")]
    /**
     * 用於定義選項卡被選中時顏色  */
    [Style(name="SelectColors",type="Array",format="Color",inherit="yes",theme="spark")]
    
    [Style(name="borderAlpha", type="Number", inherit="no", defaultValue="1")]
    
    public class MyTabNavigator extends TabNavigator
    {
        private var _showBorder:Boolean=true;
        
        public function MyTabNavigator()
        {
            super();
        }
        
        [Inspectable(category="General", enumeration="true,false", defaultValue="true")]
        
        public function set showBorder(value:Boolean):void
            
        {
            
            this._showBorder=value;
            
        }
        
        public function get showBorder():Boolean
            
        {
            
            return this._showBorder;
            
        }
        
        
        
        override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void
            
        {
            
            super.updateDisplayList(unscaledWidth,unscaledHeight);
            
            this.drawOutline();
            
        }
        
        
        
        public function drawOutline():void
            
        {
            
            var cornerRadius:Number=this.getStyle("cornerRadius");
            
            if(cornerRadius>0)
                
            {
                
                this.setStyle("backgroundAlpha", 0);
                
                this.setStyle("borderStyle", "none");
                
                
                
                var borderColor:uint=this.getStyle("borderColor");
                
                var borderAlpha:Number=this.getStyle("borderAlpha");
                
                var backgroundColor:uint=this.getStyle("backgroundColor");
                
                
                
                graphics.clear();
                
                if(showBorder)
                    
                    graphics.lineStyle(1,borderColor,borderAlpha,true);
                
                graphics.beginFill(backgroundColor,1);
                
                graphics.drawRoundRectComplex(0,this.tabBar.height-2,this.width,this.height-this.tabBar.height+1,0,cornerRadius,cornerRadius,cornerRadius);
                
                graphics.endFill();
                
            }
            
        }
        
    }
    

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章