关于皮肤 “施加皮肤”是通过改变或者替换组件的可视化元素来改变组件外观的过程。这些可视化元素包括位图、SWF 文件,或者包含画矢量图的绘图方法的类文件。 皮肤能够定义组件在不同状态下的全部或部分外观。例如,Button 控件有八种可能的状态,并有八个与之相关的皮肤属性,如下面李子所示: 状态(State) 皮肤属性(Skin property)缺省的皮肤类(Default skin class)down downSkin mx.skins.halo.ButtonSkin over overSkin mx.skins.halo.ButtonSkin up upSkin mx.skins.halo.ButtonSkin disabled disabledSkin mx.skins.halo.ButtonSkin selectedDisabled selectedDisabledSkin mx.skins.halo.ButtonSkin selectedDown selectedDownSkin mx.skins.halo.ButtonSkin selectedOver selectedOverSkin mx.skins.halo.ButtonSkin selectedUp selectedUpSkin mx.skins.halo.ButtonSkin up, over, 和 down 状态的缺省皮肤如下所示: A. up B. over C. down 其他的空间也类似地有相关皮肤的状态。比如,RadioButton控件,它是 Button 控件的子类,也有 up, down, 以及 over 皮肤。ComboBox 控件也有皮肤来定义它在 disabled,down 和over 状态下的外观。 可以用位图,SWF 文件,或 ActionScript 及 MXML 所定义的类来创建皮肤。所有 Flex 组件都有一个缺省的皮肤类来表示组件的多个状态。正如你在上表所见的那样,Button控件的八个状态使用同一个皮肤类,mx.skins.halo.ButtonSkin来画出皮肤。类内的逻辑根据 Button 控件当前状态来确定它的外观。 使用样式属性可以为组件指定皮肤。可以通过 MXML 标记属性,StyleManager 类,块或“样式表(style Sheet)”等方式来设置样式属性。大多数应用使用样式表来组织和应用皮肤。样式表可以在编译期或者运行期载入。更多有关运行期载入样式表的信息见 Loading style sheets at run time。 皮肤类型 通常用位图或者矢量图来定义皮肤。位图在 Flex 中被称为“图片类型(graphical)”皮肤,它由构成图像的独立的象素点组成。Bitmap 图片的缺点就是它通常为特定的解决方案定制。如果要缩放或者变换图像,那么图片将可能失真。 矢量图,在 Flex 被称为“程序类型(programmatic)”皮肤,包含一系列线(line)的定义,这些定义指定了线的开始和结束点,粗细,颜色以及其他Adobe® Flash® Player 画 线时 ...