这就是我的屏幕的样子:
它是这样组成的:
First container <s:HGroup>(900 X 100)--top black area
Second container <s:Group> (900 X 475)--middle white area
Third container <s:HGroup>--(900 X 100)--bottom black area
如果项目是使用Flex 3完成的,则中间区域为<mx:Canvas>
。
现在假设我有一个BorderContainer(125 X 475)并将其命名为 middleContainerChild 。它位于中间区域的右侧。当我将y
位置设置为-middleContainerChild.height
时,它应该位于容器正文外的y = -475
。正如您在上图中所看到的那样,它已被放置在那里。
但除了<mx:Canvas>
之外,图片仍会显示,即使它不再位于<s:Group>
正文中,也会显示在<s:HGroup>
的“顶部”。
有关详细说明,请参阅下图:
如果我使用<mx:Canvas>
,它会被隐藏起来,但如果我使用Spark容器(不仅是一个组,而是任何Spark容器),它仍然可见。
还有其他人有这个问题吗?
答案 0 :(得分:4)
阅读clipAndEnableScrolling
类的GroupBase
属性。
问候。
答案 1 :(得分:1)
由于2DH给了我提示,我准备了这个样本,
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="900" minHeight="672">
<fx:Declarations>
<s:Move
id="moveUp"
yFrom="0"
yTo="-475"
target="{helpWindow}"/>
<s:Move
id="moveDown"
yFrom="-475"
yTo="0"
target="{helpWindow}"/>
</fx:Declarations>
<fx:Script>
<![CDATA[
private function buttonUp_clickHandler(event:MouseEvent):void
{
moveUp.play();
}
private function buttonDown_clickHandler(event:MouseEvent):void
{
moveDown.play();
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout gap="0"/>
</s:layout>
<s:BorderContainer
backgroundColor="#000000"
height="100"
width="100%"/>
<s:Group
height="475"
width="100%"
clipAndEnableScrolling="true">
<s:VGroup
left="0"
top="0">
<s:Button
label="Play Effect UP"
click="buttonUp_clickHandler(event)"/>
<s:Button
label="Play Effect DOWN"
click="buttonDown_clickHandler(event)"/>
</s:VGroup>
<s:BorderContainer
id="helpWindow"
backgroundColor="#CCCCCC"
y="{-helpWindow.height}"
right="0"
height="475"
width="125"
/>
</s:Group>
<s:BorderContainer
backgroundColor="#000000"
height="100"
width="100%"/>
</s:Application>
所以现在我已将我的中心容器的 clipAndEnableScrolling 设置为 true ,问题已解决
感谢堆叠成员:)