私は、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>
さて、ここでのロジックは基本的に理にかなっていますよね?MXMLで宣言されたすべての子は、「コンテナ」と呼ばれるグループに移動します。それはうまく機能しています。ただし、以下の例を実行すると、レイアウトは完全に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>
これはどのように見えるかです:
ここに欠けているものはありますか?多分私がオーバーライドする必要があるメソッド?