1

FlashBuilder/Spark モバイル プロジェクト ビューのアクション バー。

現在、アクションバーでボタンの chromeColor を設定すると、ボタンが押された状態のときにのみ表示されます。ボタンのデフォルト状態の色は変更されません。私はそれをスタイルする方法を見つけることができませんでした。

4

1 に答える 1

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();
        }
    }
}
于 2012-07-12T19:35:08.410 に答える