Flex 4:构建具有背景的组

Naf*_*Kay 6 apache-flex mxml actionscript-3 gumbo flex4

我正在尝试构建一个简单的组件,将spark.components.Group扩展为具有背景颜色,更具体地说是一个spark.primitives.Rect组件,它被拉伸以填充背景.

这就是我到目前为止所提出的:

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo"
    <fx:Metadata>
        [DefaultProperty(name="content")]
    </fx:Metadata>

    <s:Rect id="background" width="100%" height="100%">
        <s:fill>
            <s:SolidColor color="#990000"/>
        </s:fill>
    </s:Rect>

    <s:Group id="container"/>

    <s:filters>
        <!-- For good measure ;) -->
        <s:DropShadowFilter color="#000000" strength="0.4" blurX="5" blurY="5" distance="2" angle="90"/>
    </s:filters>

    <fx:Script>
        <![CDATA[
            public function set content(value:Array):void {
                this.container.mxmlContent = value;
            }
        ]]>
    </fx:Script>
</s:Group>
Run Code Online (Sandbox Code Playgroud)

好的,所以这里的逻辑基本上是有道理的,对吧?在MXML中声明的所有子项都转到名为"container"的组中.这工作得很好.但是,当我运行下面的示例时,布局完全是fubar.

<s:VGroup>
    <!-- This is the component described above -->
    <components:MessageContainer id="component" width="100" height="100"/>
    <mx:Slider/>
    <mx:Slider/>
    <mx:ColorPicker/>
</s:VGroup>
Run Code Online (Sandbox Code Playgroud)

这就是它的样子:

flex fubar http://i34.tinypic.com/s4p0tz.jpg

这里有什么我想念的吗?也许我需要覆盖一种方法?

Naf*_*Kay 0

诡异的。我只是诉诸于制作 Skin 实现并将其应用到 SkinnableContainer。我也使用 Flex 4 的 Beta 2 版本进行编译。确实很奇怪。