Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 设置不可编辑的textinput和textarea flex组件的样式_Apache Flex_Adobe_Textarea_Textinput - Fatal编程技术网

Apache flex 设置不可编辑的textinput和textarea flex组件的样式

Apache flex 设置不可编辑的textinput和textarea flex组件的样式,apache-flex,adobe,textarea,textinput,Apache Flex,Adobe,Textarea,Textinput,在“可编辑”属性设置为false的flex程序中,是否有方法更改所有textinput和textarea组件的样式(背景色) 谢谢创建自定义皮肤 由于没有特定的样式,因此必须创建自定义蒙皮。只需遵循以下步骤: 为TextInput创建自定义外观。首先创建一个新的mxml文件(例如MyTextInputSkin.mxml)。现在最简单的方法是将spark.skins.spark.TextInputSkin中的所有代码复制到新类中 重写updateDisplayList()方法,并根据宿主组件的e

在“可编辑”属性设置为false的flex程序中,是否有方法更改所有textinput和textarea组件的样式(背景色)

谢谢

创建自定义皮肤 由于没有特定的样式,因此必须创建自定义蒙皮。只需遵循以下步骤:

  • 为TextInput创建自定义外观。首先创建一个新的mxml文件(例如MyTextInputSkin.mxml)。现在最简单的方法是将
    spark.skins.spark.TextInputSkin
    中的所有代码复制到新类中
  • 重写
    updateDisplayList()
    方法,并根据宿主组件的
    editable
    属性对蒙皮的类应用必要的更改。例如:

  • 通过CSS选择器将此皮肤应用于所有文本输入,如下所示:

  • 对TextArea组件重复上述步骤

让它更通用 您可以通过执行以下操作使其更通用。
在updateDisplayList()方法中:

在CSS中:

@namespace s "library://ns.adobe.com/flex/spark";

s|TextInput {
    skinClass: ClassReference("my.skins.MyTextInputSkin");
    backGroundColor: #ff0000;
    nonEditableBackgroundColor: #0000ff;
}
通过这种方式,您可以在任何地方重复使用自定义皮肤,并通过造型应用不同的颜色。

请注意,您将无法通过MXML设置
nonEditableBackgroundColor
,因为主机组件的元数据中没有声明该样式。这不适用于
backGroundColor
,因为它是默认样式,在TextInput的元数据中声明。

请指定:Flex 3或4?问题是,textinputs和区域都是mx组件。我可以剥皮吗?不,反正不是这样的。这就是为什么我问你的问题是关于Flex3还是关于Flex4。你的问题真的应该更具体一些。
@namespace s "library://ns.adobe.com/flex/spark";

s|TextInput {
    skinClass: ClassReference("my.skins.MyTextInputSkin");
}
override protected function updateDisplayList(
    unscaledWidth:Number, unscaledHeight:Number):void {

    super.updateDisplayList(unscaledWidth, unscaledHeight);

    var bgColorStyle:String = "backgroundColor";
    if (!hostComponent.editable) = "nonEditableBackgroundColor";
    background.color = getStyle(bgColorStyle);
}
@namespace s "library://ns.adobe.com/flex/spark";

s|TextInput {
    skinClass: ClassReference("my.skins.MyTextInputSkin");
    backGroundColor: #ff0000;
    nonEditableBackgroundColor: #0000ff;
}