如何在Flex中直观地"突破"容器?

时间:2020-03-06 14:57:19  来源:igfitidea点击:

这是我的问题,我有一些这样的代码:

<mx:Canvas width="300" height="300">
     <mx:Button x="800" />
</mx:Canvas>

因此,问题在于,画布内部的Button具有x属性,该属性超出了Canvas的宽度,因为它是Canvas的子代,Canvas会对其进行遮罩并创建一些滚动条供我滚动到该按钮。

我想要的是在Canvas的左侧显示800像素的按钮而没有滚动条,同时仍将按钮保留为Canvas的子代。我怎么做?

解决方案

我发现容器显然具有一个名为clipContent的属性,这是Adobe的描述:

如果此容器子级的位置和/或者大小超出该容器的边界,是否要应用剪贴蒙版。如果为false,则在将其移动或者调整大小到该容器的边界之外时,仍可以看到该容器的子级。如果为true,则将剪切此容器的子级。

如果clipContent为false,则该容器的滚动被禁用,并且滚动条将不会出现。如果clipContent为true,则通常在容器的子项超出容器边界时显示滚动条。有关滚动条外观的其他控制,请参见horizo​​ntalScrollPolicy和verticalScrollPolicy。
默认值是true。

因此,基本上要将按钮显示在容器的边界之外,我需要执行以下操作:

<mx:Canvas width="300" height="300" clipContent="false" >
     <mx:Button x="800" />
</mx:Canvas>

这比我想象的要容易。 :)

这是官方文件...

我们还应该能够使用includeInLayout属性,这将允许我们将其独立地应用于每个子组件。