Текущее расположение текста в Flex3 - PullRequest
2 голосов
/ 20 января 2009

В моем приложении Flex3 у меня есть плавающие окна, которые содержат переменные объемы текста. Окна предназначены для изменения размера пользователя. В настоящее время, несмотря на то, что я могу изменить размеры окон, я не могу получить текст в TextArea в окне для повторного перетекания при изменении размера окна. Я сталкивался с сообщениями в блоге о том, что в TextArea есть ошибка размера, которая означает, что настройка текстового содержимого не корректно изменяет размер TextArea вместе с предлагаемыми обходными путями. В моем случае содержимое остается прежним, но геометрия контейнера изменяется. Кажется, что происходит, что TextArea принимает фиксированный размер при первом отображении, и никакое изменение размера контейнера не изменяет это. Кто-нибудь может предложить способ создания плавной текстовой области во Flex?

Ian

Ответы [ 4 ]

0 голосов
/ 11 апреля 2011

Привязывая ширину textArea к ее контейнеру, вы можете сохранить поля и границы и не иметь дело с процентами.
Кроме того, ваш textArea будет меняться каждый раз, когда его родительский размер изменяется.
Я думаю о чем-то вроде этого:

<fx:Script>
    <![CDATA[
        import spark.layouts.supportClasses.LayoutBase;

        protected function onButtonClicked(event:MouseEvent):void
        {
            currentState = (event.target.selected ? 'largeState' : 'smallState');
        }

    ]]>
</fx:Script>
<s:TitleWindow id="window" width="300" height="200">
    <s:TextArea width="{window.width - 10}" height="{window.height - 60}" 
        text="{IMyConsts.LOREMIPSUM}" borderVisible="false" />
    <s:ToggleButton id="btnEffect" bottom="5"  click="onButtonClicked(event)"
        label="{btnEffect.selected ? 'Go smaller' : 'Go larger'}" />
</s:TitleWindow>
<s:states>
    <s:State name="smallState" />
    <s:State name="largeState" />
</s:states>
<s:transitions>
    <s:Transition fromState="smallState" toState="*">
        <s:Resize target="{window}" widthTo="400" heightTo="300" />
    </s:Transition>
    <s:Transition fromState="largeState" toState="*">
        <s:Resize target="{window}" widthTo="300" heightTo="250" />
    </s:Transition>
</s:transitions>
0 голосов
/ 17 июня 2009

Вы можете попробовать Text Layout Framework от Adobe: http://labs.adobe.com/technologies/textlayout/

0 голосов
/ 07 января 2010

Я могу это сделать ... но не смейся ... Я не уверен, что вам нужно использовать конкретный контейнер, но в любом случае установите ширину и высоту на 100% и используйте Grid> GridRow и GridItem, чтобы изменить размер и изменить размер Text Control. Вы можете указать ширину таблицы или просто использовать ее. так же, как HTML-таблица в Flex для управления размером элементов управления и контейнеров ....

надеюсь, что это помогает ...

0 голосов
/ 16 февраля 2009

Я нашел отличный пример жидких окон , пожалуйста, посетите его. Они также предоставляют исходный код, так что, может быть, вы получите лучшее представление.

http://examples.adobe.com/flex3/devnet/dashboard/main.html

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