Flex调整大小Canvas在哪里放这样的代码? (里面的图)

时间:2009-05-21 13:14:26

标签: flex actionscript-3 canvas components resize

我有两个画布A和B,A是B的孩子。 可以通过一些用户操作调整大小,例如向其基础添加一些UI组件。 A由另一个父画布B限制,如果其子A变得太大,它应该显示scolling句柄。

我希望A具有相同的宽度和高度B(或非常接近),而计算出的A的宽度和高度小于B的宽度和高度。

如果A的w或h大于B的那些,则A应该增长,B将显示滚动。 我希望它有点清楚。

我的问题是我在哪里以及如何做这样的逻辑?

canvas diagram http://www.picimg.com/uploads/18cd2277adde7d50da2bc708075f4fac.png

2 个答案:

答案 0 :(得分:1)

Canvas继承的UIComponent类具有minHeight和minWidth属性。您可以将A的minHeight / Width绑定到B的宽度和高度,因此每当调整B的大小时,A的最小尺寸也会改变。还支持绑定到表达式(请参阅下面的示例)。当A变得太大而无法一次显示时,B将自动显示滚动条,您只需要提供固定的高度和宽度(或其他一些尺寸约束)。 A也会在您添加孩子后自动调整大小。

<mx:Canvas id="B" width="..." height="...">
    <mx:Canvas id="A" minHeight="{B.height-20}" minWidth="{B.width-20}">
        <!-- your content widgets -->
    </mx:Canvas>
</mx:Canvas>

答案 1 :(得分:0)

您只需将B上的滚动策略设置为自动。这样,如果A得到太大,B就会有滚动条。这应该在MXML中完成。

<mx:Canvas name="B" width=100 height=100 scrollPolicy="auto">
    <mx:Canvas name="A" width=90 height=90>
        ...
    </mx:Canvas>
</mx:Canvas>