Flex 4 DateChooser
У меня есть массив дней. Я хочу, чтобы в эти дни в компоненте DateChooser был другой цвет фона, скажем, красный.
Как я могу сделать это, пожалуйста?
3 ответа
Решение
DateChooser не так легко настроить!
Что-то близкое к этому будет работать, хотя вам нужно будет немного подстроить его под то, что вы хотите сделать.
public class FancyDateChooser extends DateChooser {
public var fancyStyleName : String;
public var dayToMakeFancy : String;
protected override createChildren() : void {
super.createChildren();
var dateGrid : UIComponent = mx_internal::dateGrid;
for ( var i: int = 0; i < dateGrid.numChidren; i++ ) {
if ( ( dateGrid.getChildAt( i ) as IUITextField ).text == dayToMakeFancy ) {
dateGrid.getChildAt( i ).styleName = fancyStyleName;
}
}
}
}
Спасибо за долю Грегора Кидди. Я немного изменил код Грегора Кидди. Пусть он может вводить несколько дат.
public class MyDateChooser extends DateChooser
{
public var highlightColor : Number = 0xff0000; // sample
public var highlightDate : Array = ["10","20"]; // sample
public function MyDateChooser()
{
super();
}
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
var dateGrid : UIComponent = mx_internal::dateGrid;
for ( var i: int = 0; i < dateGrid.numChildren; i++ ) {
if (dateGrid.getChildAt( i ) is IUITextField) {
var textField:UITextField = dateGrid.getChildAt(i) as UITextField;
for (var j:int = 0; j<highlightDate.length; j++) {
if ( textField.text == highlightDate[j] ) {
textField.textColor = highlightColor;
}
}
}
}
Вы должны использовать disabledRanges и disabledColor. Вот пример "Примеры Flex".