读书人

Flex/AIR个人化ProgressBar

发布时间: 2012-10-08 19:54:56 作者: rapoo

Flex/AIR个性化——ProgressBar

在Spark主题下,ProgressBar 的边框、进度条等都由skin 来控制,主要有4个skin,其默认分别为:

mx.skins.spark.ProgressBarSkin?进度条的样式

mx.skins.spark.ProgressBarTrackSkin 进度条背景的样式

mx.skins.spark.ProgressBarIndeterminateSkin 用于不确定类型的ProgressBar

mx.skins.spark.ProgressBarMaskSkin 暂未研究

可在 FlexSDK 下的 sparkskins.swc 下找到这些类。

?

1. 以这些默认的skin为基础,将其代码copy到新建的skin类,然后修改其中相应的部分即可。

1) ProgressBarSkin 主要有3部分:

a)?片段1 进度条的颜色:

???

??? 0xFFFFFF 是进度条颜色。按需修改即可。

?

??? 除了改颜色,还可以把 <s:LinearGradient rotation="90"> ... </s:LinearGradient>?或?<s:fill> ... </s:fill> 里面改掉使之更个性,如:

?效果如下:
Flex/AIR个人化——ProgressBar
??

b) 片段2 进度条的边框(是进度条的边框,而不是整个 ProgressBar 的边框):

?

??? 按需修改即可。

?

c) 片段3(尚不太清楚有什么作用):

?

?

2) ProgressBarTrackSkin 主要有4部分:

a)?片段1 ProgressBar边框:

???

???

b)?片段2? ProgressBar内边框:

??

?

c)?片段3 ProgressBar背景:

?

??

d)?片段4 内阴影:

???

?

3) ProgressIndeterminateSkin 是AS类形式的,其基类是 mx.skins.Border :

找到 private static var colors:Array = [0xCCCCCC, 0x808080];

这句就是控制斜块颜色的(bar 仍然由 ProgressBarSkin 控制)。

以上只是最简单的修改,要更个性可以修改方法 updateDisplayList 里的内容。

?

?

?

2.?通过 CSS 来控制全局应用或个别应用 ProgressBar 样式(建议:将与样式相关的属性设置都独立到?CSS 文件中)

1) 全局: (建议:将适合应用到全局的(如?fontSize 等?)放在此处)

trackHeight: 整个ProgressBar高度;

themeColor: Halo主题下默认的ProgressBar颜色是蓝条+白底,如果仅需要简单的改变这一组颜色,可使用该属性(该属性 Halo 主题下有效,Spark 下无效);

barSkin: 进度条的皮肤;

trackSkin: 进度条轨迹皮肤(行进时的样式);

indeterminateMoveInterval: 不确定的进度条的斜块间距(从字面看该解释不是特别准确,具体表现为:值越小斜块越密);

indeterminateSkin: 不确定的进度条的皮肤;

?

?

附:《Flex与ActionScript3程序开发》11.8 ProgressBar组件 学习 Mindmap?


Flex/AIR个人化——ProgressBar
?

读书人网 >网络基础

热点推荐