有时,Flex组件默认的样式不够用,我们得扩展该组件,并在其子类中添加自定义样式属性。

在类中自定义样式属性一般有下面几个步骤:

1.在类声明前插入[Style]元数据标签,语法如下:

[Style(name="style_name"[,property="value",...])]2.定义一个静态初始器,为样式属性设置默认值。

3.覆写styleChanged()方法,检测样式属性是否改变。

4.覆写updateDisplayList() 方法,在显示组件时加入样式。

在下面的实例中,我们为LineSeries添加了一个lineWeight属性,从而实现了在不改变其默认线条颜色的基础上改变其线条粗细。

查看该实例的效果:http://www.riafan.com/flex/definestyleproperty

下载该实例的源码:http://www.riafan.com/flex/definestyleproperty/srcview/definestyleproperty.zip

一般情况下,我们会使用一个状态变量来标识样式是否改变。在updateDisplayList方法中,首先 检测该标识,再基于新样式设定更新组件外观。注意:updateDisplayList方法只更新因为该样式改变而需要重绘或重新计算的部分外观,而不是 整个组件的外观。