Как отключить значок на кнопке Flex3 - PullRequest
1 голос
/ 09 июня 2011

У меня есть кнопка, которую я использую для отправки сообщения.Когда текст сообщения пуст, не должно быть возможности нажать кнопку.

Это нормально, и это не проблема.Единственное, что меня беспокоит, это то, что я могу отключить кнопку отправки, но изображение не отключается (как я и ожидал).

Есть ли способ сделать это элегантно, потому что я не делаюхочу предоставить sendicon_disabled.png и изменить его сам (я не думаю, что это должно быть моей работой).

1 Ответ

3 голосов
/ 09 июня 2011

Для этого вы можете использовать следующую кнопку:

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 или переместить его в отдельный стиль.

...