【问题标题】:Spark container not hiding contents outside of its bodySpark 容器没有将内容隐藏在其主体之外
【发布时间】:2012-02-07 11:57:23
【问题描述】:

这就是我的屏幕的样子:

它是这样组成的:

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 完成的,则中间区域将是 &lt;mx:Canvas&gt;

现在假设我有一个 BorderContainer(125 X 475) 并将其命名为 middleContainerChild。它位于中间区域的右侧。当我将其y 位置设置为-middleContainerChild.height 时,它应该位于容器主体之外的y = -475。如上图所示,它已被放置在那里。

但除了&lt;mx:Canvas&gt; 之外,图像仍然显示,即使它不再位于&lt;s:Group&gt;s 主体内,并且呈现在&lt;s:HGroup&gt; 的“顶部”。

更多说明请参见下图:

如果我使用&lt;mx:Canvas&gt;,它会被正确隐藏,但如果我使用 Spark 容器(不仅是组,还包括任何 Spark 容器),它仍然可见。

有其他人遇到过这个问题吗?

【问题讨论】:

  • 你的问题很难理解,所以我尝试改进措辞并给它一个更准确的标题。我希望我理解正确 - 如果我误解了,请回复!
  • 谢谢 weltraumpirat,当时我在办公室,我有点困惑,人们会如何理解,我想要什么,所以我在这里使用了图像,谢谢这次编辑,我很感激:)
  • 哇,太棒了,你让它很容易理解,gr8 兄弟,我今天学到了一件新东西,谢谢你的帮助,请把你的评论放在我的回答中,我会投票赞成:)
  • 不,谢谢 - 保持一切美好和易于理解是 StackOverflow 的一部分。谢谢你就够了:)
  • 说得好,祝你玩得开心:)

标签: actionscript-3 apache-flex flex4 flash-builder flex4.5


【解决方案1】:

阅读一点关于GroupBase 类的clipAndEnableScrolling 属性。

问候。

【讨论】:

  • thnx 2DH :) 它与我正在寻找的东西有关 :) 实际上我在上述问题中甚至不是很清楚,但你选择了正确的观点,再次感谢 :)
【解决方案2】:

正如 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,问题解决了

感谢堆栈成员:)

【讨论】:

    猜你喜欢
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2010-11-22
    相关资源
    最近更新 更多