我试图建立一个简单的组件扩展Spark。组件。组有一个背景颜色,更具体地说是Spark。图元。矩形组件拉伸,以填补背景。
这是我目前的想法:
<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中声明的子元素都将进入名为“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>
它看起来是这样的:
我是不是遗漏了什么?可能是需要重写的方法?
2条答案
按热度按时间ngynwnxp1#
奇怪。我只是做了一个皮肤实现,并将其应用到一个SkinnableContainer。我也是用Flex 4的Beta 2版本编译的。确实很奇怪。
hrysbysz2#
你使用的是什么版本的flex 4?我刚刚完全复制了你的代码,输出看起来和你期望的一样。
我运行的是最近几周发布的beta 2版本,版本号为4.0.0.253292。如果你没有运行最新版本,你可以升级你的版本,但是你也可以尝试清理项目。它可能只是变得混乱了。还要确保你的浏览器没有缓存swf,当文件大小没有显著变化时,有时会发生这种情况。