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





Я нашел отличный пример жидкие окна, пожалуйста, посетите его. Они также предоставляют исходный код, так что, возможно, вы получите лучшее представление.
Вы можете попробовать Text Layout Framework от Adobe: http://labs.adobe.com/technologies/textlayout/
Я могу это нанести удар ... но не смейтесь .. Я не уверен, нужно ли вам использовать конкретный контейнер, но в любом случае установите ширину и высоту на 100% и используйте Grid> GridRow и GridItem для размера и изменения размера Text Control, вы можете указать ширину таблицы или просто использовать ее точно так же, как таблица HTML в Flex, чтобы управлять размером элементов управления и контейнеров ....
надеюсь, это поможет...
Связывая ширину 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>
Кажется, это хорошее решение проблемы, так что спасибо за это. Я фактически перестал использовать Flex - теперь нам нужны Javascript и HTML5! Но, надеюсь, ваш ответ поможет другим решить ту же проблему.
Пожалуйста, опубликуйте часть своего кода. Это может помочь понять, что именно происходит в вашем приложении. Фреймворк Flex иногда бывает чересчур, и легко где-то неправильно задать какое-то свойство.