【发布时间】:2011-03-05 15:07:47
【问题描述】:
当切换按钮被选中时,更改其背景颜色的最简单方法是什么?
我尝试为按钮创建自定义外观并将其应用于 downSkin 属性,但我不知道如何从外观中更改背景颜色。另外,如果可能的话,我想避免使用图像作为背景。
【问题讨论】:
标签: apache-flex button skin
当切换按钮被选中时,更改其背景颜色的最简单方法是什么?
我尝试为按钮创建自定义外观并将其应用于 downSkin 属性,但我不知道如何从外观中更改背景颜色。另外,如果可能的话,我想避免使用图像作为背景。
【问题讨论】:
标签: apache-flex button skin
希望我能理解您的需求。
在您的皮肤文件中,状态 upAndSelected 是您在选择切换按钮时需要指定颜色的状态。您可以从 Flex 中复制生成的皮肤代码进行修改或查看下面的代码。在<!--layer 2下的</s:Rect>标签下面添加:填充@private-->`
<s:Rect id="fill2" left="1" right="1" top="1" bottom="1" radiusX="2">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0xFFFFFF"
color.upAndSelected="#333333" // you can modify color here
alpha="0.85"
/>
<s:GradientEntry color="0xD8D8D8"
color.upAndSelected="red" // you can modify color here
alpha.downAndSelected="1" />
</s:LinearGradient>
</s:fill>
</s:Rect>
将上面的代码粘贴到
<!-- layer 2: fill -->
<!--- @private -->
<s:Rect id="fill" left="1" right="1" top="1" bottom="1" radiusX="2">
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0xFFFFFF"
color.selectedUpStates="0xBBBDBD"
color.overStates="0xBBBDBD"
color.downStates="0xAAAAAA"
alpha="0.85"
alpha.overAndSelected="1" />
<s:GradientEntry color="0xD8D8D8"
color.selectedUpStates="0x9FA0A1"
color.over="0x9FA0A1"
color.overAndSelected="0x8E8F90"
color.downStates="0x929496"
alpha="0.85"
alpha.overAndSelected="1" />
</s:LinearGradient>
</s:fill>
</s:Rect>
希望对你有帮助。
【讨论】:
不容易。最好的办法是打开 Flash Professional 并创建一个皮肤;然后使用类似这样的方式将该皮肤作为样式分配给按钮:
MyButton.setStyle('skin', mySkin);
[如果您指的是 Spark ToggleButton 而不是 Halo ToggleButton,则此建议可能不适用[
【讨论】: