3.6.在容器内为子组件设置最大、最小尺寸

3.6.1 问题
你需要添加多个子组件到某个组件里,并且保证如果子组件的数量扩大超过一定数量的时候,子组件将添加到容器下一行去。
3.6.2 解决办法
使用maxWidth 或者maxHeight 属性来决定组件内的子组件放置在何处。
3.6.3 讨论
maxWidth 和maxHeight 样式属性定义了组件父亲允许其显示的最大高度和宽度。下面的代码段里,将检查maxWidth 样式属性以保证添加的组件不会引起容器超过其父亲容器所允许的最大宽度。如果即将超过最大宽度,则会生成另一个HBox 组件,并且接下来添加的图片会被添加到新生成的HBox 里。VBox 容器的布局管理器会负责适当的布置新添加的子组件。

代码如下:
+展开
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlheight="400"
xmlns:cookbook="oreilly.cookbook.*backgroundColor="#0000ff">

<cookbook:AddConstraintChildren maxHeight="400maxWidth="800"
horizontalAlign="centerverticalScrollPolicy="off"/>

</mx:Canvas>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Image;
[Embed(source="../../assets/image.png")]
public var image:Class;
private var childCount:int = 0;
private var currentHolder:HBox;
private function addMoreChildren():void
{
var image:Image = new Image();
image.source = image;
if((currentHolder.width + image.width) >=
this.maxWidth)
{
var holder:HBox = new HBox();
addChild(holder);
currentHolder = holder;
}c
urrentHolder.addChild(image);
}

]]>
</mx:Script>
<mx:Button label="addMoreChildren()"
click="addMoreChildren()"/>

<mx:HBox id="topHoldercreationComplete="currentHolder =
topHolder
"/>

</mx:VBox>

加支付宝好友偷能量挖...


评论(0)网络
阅读(94)喜欢(0)flash/flex/fcs/AIR