Flex: Есть ли какой-нибудь элемент управления для выбора месяца?

Есть ли какой-либо элемент управления Flex для выбора месяцев (любых)?

Прямо сейчас я использую DateField и позволяю пользователю выбирать любую дату в месяце, чтобы выбрать этот месяц.


person Niels Bosma    schedule 18.06.2009    source источник


Ответы (2)


Может быть, попробовать ComboBox? или Список?

Итак, вот пример с ComboBox:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
    xmlns:controls="radekg.*">
    <mx:Form>
        <mx:FormItem label="Select date:">
            <controls:DateComboBox id="dcb" change="trace(dcb.selectedMonth)" />
        </mx:FormItem>
    </mx:Form>
</mx:WindowedApplication>

И radekg/DateComboBox.as

package radekg {
    import mx.collections.ArrayCollection;
    import mx.controls.ComboBox;
    import mx.formatters.DateFormatter;

    public class DateComboBox extends ComboBox {

        public function DateComboBox() {
            super();
            var formatter:DateFormatter = new DateFormatter();
            formatter.formatString = "MMMM";
            dataProvider = new ArrayCollection();
            for (var i:int=0; i<12; i++) {
                var date:Date = new Date(1971,i,1);
                ArrayCollection(dataProvider).addItem(
                    { label: formatter.format(date), data: date }
                );
            }
            selectedIndex = 0;
        }

        public function get selectedMonth():Number {
            return (selectedItem.data as Date).month;
        }
        public function set selectedMonth(value:Number):void {
            selectedIndex = value;
        }

    }
}

Это всего лишь образец :) Надеюсь, это поможет.

person Community    schedule 18.06.2009
comment
вы могли бы также сделать это, может быть, со списком плиток? - person Ryan Guill; 18.06.2009

Вы также можете использовать сжатый DateChooser, что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml">


    <mx:DateChooser id="dateChooser" height="31"/>

</mx:WindowedApplication>

И в функции Init:

//import com.adobe.fiber.runtime.lib.DateTimeFunc;

public function init():void {
//    var days:int = DateTimeFunc.daysInMonth(new Date() );
    var disabledDays:Array = [ 0, 1, 2, 3 , 4, 5, 6 ];
    this.view.dateChooser.disabledDays = disabledDays;
    this.view.dateChooser.yearNavigationEnabled = true;
    this.view.dateChooser.minYear = 2010;
}

Не уверен, что отключение дней как-то полезно, но так как мы скрываем дни, подпанель бесполезна.

Обратите внимание, что я указал минимальный год и включил селектор года. Оставил в комментариях полезную функцию при работе с календарями :)

person soleshoe    schedule 01.07.2011