在我的Flex3应用程序中,我有一些浮动窗口,其中包含可变数量的文本。窗口是用户可调整大小的。目前,虽然我可以调整窗口的大小,但是当窗口调整大小时,我无法在窗口的TextArea中获取文本以重新流动。我发现博客帖子中有TextArea中存在一个大小错误,这意味着设置文本内容不会正确地重新调整TextArea的大小,以及建议的解决方法。在我的例子中,内容保持不变,但容器的几何形状发生了变化。似乎正在发生的事情是TextArea在首次渲染时采用固定大小,并且没有调整容器大小的数量会改变它。任何人都可以建议在Flex中创建流畅文本区域的方法吗?
伊恩
答案 0 :(得分:0)
我找到了fluid windows的一个很好的例子,请访问它。它们也提供了源代码,因此您可能会有更好的想法。
答案 1 :(得分:0)
您可以尝试Adobe的Text Layout Framework: http://labs.adobe.com/technologies/textlayout/
答案 2 :(得分:0)
我可以对此嗤之以鼻......但不要笑...... 我不确定您是否需要使用特定容器,但无论如何,请将宽度和高度设置为100%并使用Grid> GridRow和GridItem可以调整文本控件的大小和大小,您可以指定表格的宽度,或者像使用Flex中的HTML表格一样使用它来操纵控件和容器的大小....
希望有所帮助...
答案 3 :(得分:0)
通过将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>