2010-06-04 2 views
1

Примеры, которые я видел, показывают, как изменить цвет, который отображается, когда пользователь на самом деле наводит курсор на поле textinput.Изменение цвета по умолчанию при ошибках проверки Flex

Однако, когда валидация терпит неудачу, общая текстовая граница ввода qill имеет красную линию над ней. Мой CSS-файл использует пограничный скин для textInput, поэтому я не вижу эту строку.

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

Это CSS:

TextInput, TextArea 
{ 
    border-skin: Embed(source='/../assets/images/input_bg.png', scaleGridLeft=8, scaleGridRight=20, scaleGridTop=8,scaleGridBottom=9); 
    padding-top:2; 
    padding-left:2; 
    font-size:11; 
} 

ответ

2

все, что расширяет UIComponent (как TextInput и TextArea делают) имеет стиль под названием errorColor. По умолчанию он красный. Вы можете изменить это так, как хотите.

Кроме того, если у вас есть изображение, которое вы используете в качестве границы, вероятно, вы должны удалить пиксели из середины, чтобы она была фактической границей вместо наложения.

+0

Я не хочу использовать изображение в качестве границы, но это единственный способ изменить цвет области ввода. Я не знаю фактического цвета изображения, поэтому я не могу просто установить цвет фона так же, как цвет изображения. – Babyangle86

+0

Вы можете использовать инструмент eyedrop для любого основного редактора изображений, чтобы получить цвет от изображения. Откройте изображение в виде Paint или Paint.Net или IrfanView, выберите инструмент, а затем щелкните изображение по цвету, который вы хотите. – Jeff

0

Единственный способ, которым мне удалось найти, это то, что валидатор изменит стиль компонента borderColor. Я не думаю, что это может быть достигнуто с помощью изображения - вам нужно будет вставить изображение в базовый подкласс GraphicRectangularBorder или аналогичный. Затем вы можете добавить это в свой класс кожи:

override public function styleChanged(styleProp:String):void 
{ 
    super.styleChanged(styleProp); 

    if (styleProp == "borderColor") 
    { 
     if (getStyle("borderColor") == getStyle("errorColor")) 
     { 
      // show error outline 
     } 
     else 
     { 
      // hide error outline 
     } 
    } 
} 
Смежные вопросы