Flex自定义只显示时分秒的控件

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx"
   width="118" height="24" creationComplete="groupCreationCompleteHandler(event)">
 <fx:Script>
  <![CDATA[
   import mx.events.FlexEvent;
   
   private var lblSelected:Label;
   
      [Bindable]
   private var strMinute:String;
   [Bindable]
   private var strHour:String;
   [Bindable]
   private var strSeconds:String;
   
   protected function groupCreationCompleteHandler(event:FlexEvent):void
   {
    // TODO Auto-generated method stub
    InitControl();
   }
   
   private function InitControl():void
   {
       lblHour.text ="00";
    lblMinute.text = "00";
    lblSeconds.text = "00";
    lblSelected = lblHour;
    
    setShowMinute.visible =false;
    setShowSeconds.visible = false;
    
    setShowHour.minimum = 0;
    setShowHour.allowValueWrap = true;
    setShowHour.stepSize  = 1;
    setShowHour.maximum = 23;
    
    setShowMinute.minimum = 0;
    setShowMinute.allowValueWrap = true;
    setShowMinute.stepSize  = 1;
    setShowMinute.maximum = 59;
    
    setShowSeconds.minimum = 0;
    setShowSeconds.allowValueWrap = true;
    setShowSeconds.stepSize  = 1;
    setShowSeconds.maximum = 59;
    
    lblHour.addEventListener(MouseEvent.CLICK,setHMSValue);
    lblMinute.addEventListener(MouseEvent.CLICK,setHMSValue);
    lblSeconds.addEventListener(MouseEvent.CLICK,setHMSValue);
   }
   
   private function setHMSValue(event:MouseEvent):void
   {
    
       if(lblSelected == event.target as Label )
       {
       lblSelected.setStyle("backgroundColor","#AFD2E8");
       return;
       }
       else
       {
       lblSelected.setStyle("backgroundColor","white");
       lblSelected =  event.target as Label;
       lblSelected.setStyle("backgroundColor","#AFD2E8");
      
       }
    
      
    
    if(lblSelected.id == "lblHour")
    {
     setShowHour.visible = true;
     setShowMinute.visible =false;
     setShowSeconds.visible = false;
     setShowHour.value = int(lblHour.text);
     
    }
    else if(lblSelected.id == "lblMinute")
    {
     setShowHour.visible = false;
     setShowMinute.visible =true;
     setShowSeconds.visible = false;
     setShowMinute.value = int(lblMinute.text);
     
    }
    else if(lblSelected.id == "lblSeconds")
    {
     setShowHour.visible = false;
     setShowMinute.visible =false;
     setShowSeconds.visible = true;
     setShowSeconds.value = int(lblSeconds.text);
     
    }

   }
   
   public function getTimeStr():String
   {
       var strTime:String = "";
       if(setShowHour.value<10)
    {
       strTime +="0"+setShowHour.value+":";
    }
    else
    {
       strTime +=setShowHour.value+":";
    }
    
    if(setShowMinute.value<10)
    {
     strTime +="0"+setShowMinute.value+":";
    }
    else
    {
     strTime +=setShowMinute.value+":";
    }
    
    if(setShowSeconds.value<10)
    {
     strTime +="0"+setShowSeconds.value;
    }
    else
    {
     strTime +=setShowSeconds.value+"";
    }
    
    return strTime;
   }
   
  
   
   protected function setShowHour_clickHandler(event:MouseEvent):void
   {
    // TODO Auto-generated method stub
    if(lblSelected == lblHour){
        strHour ="";
        if(setShowHour.value<10)
        {
        strHour +="0"+setShowHour.value;
        }
        else
        {
        strHour +=setShowHour.value+"";
        }
    }
   }
   
   protected function setShowMinute_clickHandler(event:MouseEvent):void
   {
    // TODO Auto-generated method stub
    if(lblSelected == lblMinute){
          strMinute = "";
        if(setShowMinute.value<10)
        {
        strMinute +="0"+setShowMinute.value;
        }
        else
       {
        strMinute +=setShowMinute.value+"";
       }
    }
   }
   
   protected function setShowSeconds_clickHandler(event:MouseEvent):void
   {
    // TODO Auto-generated method stub
    if(lblSelected == lblSeconds){
        strSeconds ="";
        if(setShowSeconds.value<10)
        {
       strSeconds +="0"+setShowSeconds.value;
        }
        else
        {
       strSeconds +=setShowSeconds.value+"";
        }
    }
   }
   
  ]]>
 </fx:Script>
 <fx:Declarations>
  <!-- 将非可视元素(例如服务、值对象)放在此处 -->
 </fx:Declarations>
 <s:BorderContainer id="showTime" x="1" y="1" width="118" height="24">
 <s:Label id="lblHour" x="7" y="7" text="{strHour}"/>
 <s:Label x="28" y="6" fontWeight="bold" text=":"/>
 <s:Label id="lblMinute" x="39" y="7" text="{strMinute}"/>
 <s:Label x="60" y="6" fontWeight="bold" text=":"/>
 <s:Label id="lblSeconds" x="68" y="7" text="{strSeconds}"/>
  <s:Spinner id="setShowHour" x="97" y="0" click="setShowHour_clickHandler(event)"/>
 </s:BorderContainer>
 <s:Spinner id="setShowSeconds" x="97" y="0" click="setShowSeconds_clickHandler(event)"/>
 <s:Spinner id="setShowMinute" x="97" y="0" click="setShowMinute_clickHandler(event)"/>
</s:Group>

 

posted @ 2012-11-15 11:03  刀锋浪  阅读(412)  评论(0编辑  收藏  举报