2009-01-20 72 views
2

在我的Flex3应用程序中,我有一些包含可变数量文本的浮动窗口。这些窗户意味着用户可以调整大小。目前,虽然我可以调整窗口大小,但当窗口重新调整大小时,我无法使窗口中的TextArea中的文本重新流动。我遇到过博客文章,指出TextArea中存在大小错误,这意味着设置文本内容不会正确地重新设置TextArea的大小,以及建议的解决方法。在我的情况下,内容保持不变,但容器的几何形状发生变化。似乎正在发生的事情是TextArea在第一次渲染时采用了固定大小,并且没有任何大小改变容器的大小。任何人都可以提出一种在Flex中创建流体文本区域的方法吗?Flex3中文本的流体布局

伊恩

+0

请发表你的一些代码。它可能有助于了解您的应用程序中发生了什么。 Flex框架有时候会有点太多,并且很容易在某处设置某些属性错误。 – thgie 2009-02-16 08:15:25

+0

你如何调整窗口大小?你使用自定义代码吗?你有代码扩展TextArea的尺寸吗?如果可能的话,您可能需要发布一些示例代码,以便我们帮助您找到问题所在。我只是尝试在应用程序中调整TextArea的大小,似乎工作正常。 – 2009-02-11 20:22:11

回答

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> 
0

我可以在此乘坐失衡......但不要笑.. 我不知道,如果你需要使用特定的容器,但无论如何,将宽度和高度设置为100%,并使用Grid> GridRow和GridItem来调整文本控件的大小和大小,您可以指定表格的宽度,或者只是像使用Flex中的HTML表格一样使用它操纵控件和容器的尺寸....

希望可以帮助...