首页 > 代码库 > Flex 日期选择器控件

Flex 日期选择器控件

        在构建用户界面时,经常用到日期的输入和选择。

        输入日期时,用户可以使用键盘输入,也可以在类似于日历的弹出式对话框中,通过鼠标单击所选日期。

        在Flex中可以通过日期输入控件实现输入和选择日期。Flex内置了两种日期输入控件:日期选择器控件(DateChooser Control)和日期区域控件(DateField Control).

     一、日期选择器控件(DateChooser Control)

       

 

      日期选择器控件类似于日历。利用年、月、日和星期来表示一个日期。该控件,即可以选择日期,也可以根据需求限制日期的选择范围,或者禁止选择某一特殊日期。选择日期后,还可以单击已选择日期取消选定。

     对应的MXML标签为<mx:DateChooser>.

   1  常用属性:           

 

注意:日期选择器控件中的月份是从0开始计算的,所以2006.0.23表示2006年1月23日。

 

2.事件

用户与空间交互时,可触发两种事件

change:改变选择日期时会触发change事件。事件对象:mx.event.Calendar LayoutChangeEvent.

scroll:在控件上改变月份时会触发scroll事件。事件对象:mx.event.DateChooserEvent .

 

3.创建日期选择器控件

 1 <?xml version="1.0" encoding="utf-8"?> 2 <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"  3                        xmlns:s="library://ns.adobe.com/flex/spark"  4                        xmlns:mx="library://ns.adobe.com/flex/mx"> 5     <fx:Declarations> 6         <!-- 将非可视元素(例如服务、值对象)放在此处 --> 7     </fx:Declarations> 8     <fx:Script> 9         <![CDATA[10             import mx.controls.Alert;11             import mx.events.CalendarLayoutChangeEvent;12             import mx.events.DateChooserEvent;13             //定义改变选择日期时发生的事件,在文本控件中显示当前选择的日期14             public function changeDate(event:CalendarLayoutChangeEvent):void{15             var showDate:String = event.currentTarget.selectedDate.getFullYear() + "年"16                 + event.currentTarget.selectedDate.getMonth() + "月" +17                 event.currentTarget.selectedDate.getDay()+"日";18                 19                 showDateText.text = showDate;20             21             }22             23             //定义改变当前显示月份时发生的事件24             private function changeMonth(event:DateChooserEvent):void{25               mx.controls.Alert.show(event.detail);26             }27         ]]>28     </fx:Script>29     <mx:Panel title="日期选择器控件" width="239" height="273" layout="vertical" horizontalAlign="center">30         <!-- 控件定义,选择日期从2006年1月1日到2007年9月15日,月份从0开始计数-->31         <mx:DateChooser id="date1"32             selectableRange="{{rangeStart:new Date(2006,0,1),rangeEnd:new Date(2007,9,15)}}"33             scroll="changeMonth(event)"34             change = "changeDate(event)">35         </mx:DateChooser>36         <mx:Text id="showDateText" width="174" height="24"/>37     </mx:Panel>38     39     40     41 </s:WindowedApplication>

 

Flex 日期选择器控件