【问题标题】:Change the background color of a Flex toggle button更改 Flex 切换按钮的背景颜色
【发布时间】:2011-03-05 15:07:47
【问题描述】:

当切换按钮被选中时,更改其背景颜色的最简单方法是什么?

我尝试为按钮创建自定义外观并将其应用于 downSkin 属性,但我不知道如何从外观中更改背景颜色。另外,如果可能的话,我想避免使用图像作为背景。

【问题讨论】:

    标签: apache-flex button skin


    【解决方案1】:

    希望我能理解您的需求。

    在您的皮肤文件中,状态 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>
    

    希望对你有帮助。

    【讨论】:

    • 我不确定您所说的“生成的皮肤代码”是什么意思。 Rect 定义是在 元素下还是在皮肤 UIComponent 的主体中?
    • 很抱歉给您带来了困惑。我刚刚意识到我的反应被切断了......在你的 组件中,输入 skinclass 并点击 Ctrl+Enter (PC) 会给你一个带有一堆选项的弹出窗口。单击创建皮肤将为您生成一个皮肤文件。您可以根据需要对其进行修改。另外,请参阅上面的更新代码。
    【解决方案2】:

    不容易。最好的办法是打开 Flash Professional 并创建一个皮肤;然后使用类似这样的方式将该皮肤作为样式分配给按钮:

    MyButton.setStyle('skin', mySkin);
    

    [如果您指的是 Spark ToggleButton 而不是 Halo ToggleButton,则此建议可能不适用[

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 2021-02-10
      • 2013-06-07
      • 2012-09-05
      • 2021-04-27
      • 2011-12-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      相关资源
      最近更新 更多