【问题标题】:How to disable the icon on a Flex3 Button如何禁用 Flex3 按钮上的图标
【发布时间】:2011-06-09 14:52:39
【问题描述】:

我有一个用于发送消息的按钮。当消息文本为空时,应该无法点击按钮。

这一切都很好,不是问题。唯一困扰我的是,我可以禁用发送按钮,但图像并没有被禁用(如我所料)。

有没有办法优雅地做到这一点,因为我不想提供sendicon_disabled.png 并自己更改它(我认为这不应该是我的工作)。

【问题讨论】:

    标签: apache-flex button flex3 icons


    【解决方案1】:

    您可以使用以下按钮:

    package
    {
        import mx.controls.Button;
        import mx.core.mx_internal;
    
        use namespace mx_internal;
    
        public class IconButton extends Button
        {
            private var enabledChanged:Boolean = false;
    
            override public function set enabled(value:Boolean):void
            {
                if (super.enabled == value)
                {
                    return;
                }
                super.enabled = value;
                enabledChanged = true;
                invalidateDisplayList();
            }
    
            override protected function updateDisplayList(unscaledWidth:Number,
                                                          unscaledHeight:Number):void
            {
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                if (enabledChanged)
                {
                    if (!enabled && currentIcon)
                    {
                        currentIcon.alpha = 0.5;
                    }
                    enabledChanged = false;
                }
            }
        }
    }
    

    您可以使用您的自定义 alpha 值或将其移动到单独的样式。

    【讨论】:

    • +1 不错的康斯坦丁。这也是过去困扰我的事情。我一定要保留这个以备将来使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    相关资源
    最近更新 更多