Adobe Flex: перенос слов в метке кнопки - PullRequest
6 голосов
/ 31 октября 2009

Стандартная кнопка Flex не позволяет переносить текст надписи на текст. Я прочитал в Интернете, что есть некоторые недокументированные способы справиться с этим, но я не заставил их работать. Если бы кто-нибудь мог опубликовать мне маленький пример, было бы здорово!

Ответы [ 2 ]

15 голосов
/ 31 октября 2009

По сути, вам нужно установить несколько защищенных свойств в элементе управления TextField для кнопки (multiLine и wordWrap), что невозможно сделать без расширения класса Button. Так что, если вы создаете новый класс, который расширяет Button, устанавливает эти свойства и выполняет небольшую работу, чтобы все правильно отмерить:

package
{
    import flash.text.TextFieldAutoSize;
    import mx.controls.Button;

    public class WrappingButton extends Button
    {


        public function WrappingButton()
        {
            super();
        }

        override protected function createChildren():void
        {
            super.createChildren();

            textField.multiline = true;
            textField.wordWrap = true;
            textField.autoSize = TextFieldAutoSize.CENTER;
        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            textField.y = (this.height - textField.height) >> 1;

            height = textField.height + getStyle("paddingTop") + getStyle("paddingBottom");
        }
    }
}

... вы можете поместить этот элемент управления в свой MXML следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">

    <local:WrappingButton label="The quick brown fox jumped over the lazy dog." width="100" paddingTop="10" paddingBottom="10" />

</mx:Application>

Надеюсь, это поможет! Если у вас есть вопросы, отправьте их обратно.

4 голосов
/ 19 октября 2011

Попытка использования &#13;

Я использую

<s:Button label="Top two&#13;states result" height="100%" width="100%" icon="@Embed(source='assets/bar.png')" chromeColor="#A3F4FD"/>

и это делает многострочную метку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...