【问题标题】:Changing the default color on flex validation errors更改 flex 验证错误的默认颜色
【发布时间】:2010-06-04 23:24:47
【问题描述】:

我看到的示例似乎显示了如何更改用户实际将鼠标悬停在 textinput 字段上时显示的颜色。

但是,当验证失败时,通用 textInput 边框会在其上显示一条红线。我的 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;
}

【问题讨论】:

    标签: css apache-flex actionscript-3 validation


    【解决方案1】:

    任何扩展 UIComponent(TextInput 和 TextArea 都有)的东西都有一个名为 errorColor 的样式。它默认为红色。您可以将其更改为您想要的任何内容。

    此外,如果您将图像用作边框,则可能应该从中间移除像素,使其成为实际边框而不是叠加层。

    【讨论】:

    • 我真的不想将图像用作边框,但这是我可以更改输入区域颜色的唯一方法。我不知道图像的实际颜色,这就是为什么我不能将背景颜色设置为与图像颜色相同。
    • 您应该能够使用任何基本图像编辑器的滴眼工具从图像中获取颜色。在 Paint、Paint.Net 或 IrfanView 等工具中打开图像,选择工具,然后在图像上单击所需颜色。
    【解决方案2】:

    我设法找到的唯一方法是 Validator 将更改组件的 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
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多