Flash Builder / Spark :: Mobile Project ::在视图操作栏中更改按钮的颜色

时间:2012-07-12 19:33:03

标签: button mobile view colors flex-spark

FlashBuilder / Spark移动项目视图操作栏。

目前,如果您在操作栏中设置按钮的chromeColor,它只会在按钮的按下状态时显示。它不会更改按钮默认状态的颜色。我找不到任何方式来设计它。

1 个答案:

答案 0 :(得分:1)

经过一番挖掘后,我发现TransparentActionButtonSkin.as覆盖了drawBrackground函数,特别是删除了chromeColor,只允许它在按钮按下状态下显示。

我用自己的班级覆盖了那个“小宝石”。

package view_components
{
    import mx.core.mx_internal; 
    import spark.skins.mobile.TransparentActionButtonSkin;

    use namespace mx_internal;

    public class ActionbarColoredButton extends TransparentActionButtonSkin
    {
        public function ActionbarColoredButton()
        {
            super();
        }

        override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
        {
            // omit super.drawBackground() to drawRect instead
            // only draw chromeColor in down state (transparent hit zone otherwise)

            //NO, I want colored action buttons
            var chromeColor:uint = getStyle(fillColorStyleName);
            var chromeAlpha:Number = 1;

            graphics.beginFill(chromeColor, chromeAlpha);
            graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
            graphics.endFill();
        }
    }
}