【问题标题】:Flex DividedBox children are displayed outsideFlex DividedBox 子项显示在外面
【发布时间】:2012-06-28 09:35:50
【问题描述】:

我在 Flex 中使用 DividedBox,它最初只包含一个数据网格。当我点击 Datagrid 上的一个 Item 时,第二个宽度为 0% 的元素(Spark Group)被添加到分割框中以显示图像。

问题是,当第二个元素添加到DividedBox时,图像部分显示在DividedBox之外,我不希望有这种行为。

这是有趣的代码:

<mx:DividedBox direction="horizontal" id="divider" borderColor="red" borderStyle="solid" borderVisible="true" right="10" left="10" top="10" bottom="10">
    <s:Group width="100%" height="100%">
        <!--datagrid-->
    </s:Group>
</mx:DividedBox>

这是添加divideBox的第二个孩子的代码(简化代码):

private var _pdf_preview:Group = new Group();
[Bindable]
[Embed(source="assets/image/llama.jpg")]
private var imgClass:Class;

protected function itemOnClickHandler(event:MouseEvent):void
{
    _pdf_preview = new Group();
    var img:Image = new Image();
    img.source = imgClass;
    _pdf_preview.addElement(img);
    _pdf_preview.percentWidth = 0;
    divider.addElement(_pdf_preview);
}

这是问题的屏幕(顺便说一句,不要注意到我在 Gimp 上的技能 :))。作为新用户,我无法将图像绑定到我的帖子:screen showing my problem 红色边框显示了分框的限制

谢谢。 我希望没有太多的错,英语不是我的母语。很抱歉有任何英文错误。

PS:我无法添加“DividedBox”标签,因为它之前不存在,而且我是“新用户”,所以我无法创建新标签。

【问题讨论】:

    标签: apache-flex children


    【解决方案1】:

    您可以使用clipContent属性在DividedBox的边缘截断图像:

    <mx:DividedBox clipContent="true" />
    

    使用 Spark 容器时,clipAndEnableScrolling 是您实现相同目标所需的属性。

    我还想指出,您通常不需要通过 ActionScript 动态添加组件。您可以改用“状态”。例如:

    <s:states>
        <s:State name="normal" />
        <s:State name="image" />
    </s:states>
    
    <mx:DividedBox clipContent="true">
        <s:DataGrid />
        <s:Image includeIn="image" />
    </mx:DividedBox>
    

    现在显示图像所需要做的就是将currentState 设置为image

    【讨论】:

    • 谢谢你,clipContent 属性成功了!关于我可以在 mxml 中做到这一点的事实。也许我做错了,但我不是 Flex 的 mxml 部分的忠实粉丝,我宁愿在 ActionScript 中做大部分事情。
    • @pataprout 我曾经分享过你的担忧,但我不再这样做了。在 AS 中做这件事,就是让自己过得很艰难。 MXML 实际上确实使一些事情变得容易得多。您只需要学习如何将 MXML 视图声明与 ActionScript 行为代码很好地分开。
    • 有时它可以完成工作,有时却不行。特别是,当他们在 mxml 中配置时,我有很多关于事件的问题,但是当它是完整的 AS 时,我在它们上添加一个监听器没有问题。我确信我正在处理的问题完全是我对mxml的误解,但我无法找到如何在MXML中管理它。
    • @pataprout 我完全同意。我几乎没有在 MXML 中连接事件侦听器,因为我们在那里徘徊在行为代码领域。我认为您应该研究 Spark 蒙皮机制。或者你可以阅读我最近写的this answer,这说明了我的意思。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多