通过MXML扩展MXML自定义组件

fre*_*ust 14 apache-flex mxml flex4

我想做的事情:创建一个包含一些子节点的MXML组件,然后通过MXML扩展它以创建一个包含更多子节点的新组件,而不会丢失原始集合.换一种说法

创建一个组件bc.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">

    <s:Button id="b1" label="button1"/>
</s:BorderContainer>
Run Code Online (Sandbox Code Playgroud)

然后将其扩展到单独的组件mc.mxml

<?xml version="1.0" encoding="utf-8"?>
<borderContainerX:bc xmlns:fx="http://ns.adobe.com/mxml/2009" 
                     xmlns:s="library://ns.adobe.com/flex/spark" 
                     xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:borderContainerX="borderContainerX.*">

    <s:Button id="b2" y="100" label="button2"/>
</borderContainerX:bc>
Run Code Online (Sandbox Code Playgroud)

并获得一个带有2个按钮的组件.

我已经看到了这是怎么不同的线程要么不可能,(1)或变通办法来做到这一点(2,3)如果事情已经使用Flex 4的出现改变,或者如果我们仍然坚持这些一直想知道解决方案3线程中的最后一个回复似乎提示Flex 4修复它?

Jab*_*nda 11

在Flex 4中,您必须覆盖"mxmlContent"属性setter,以便在父类中保留已定义的子级

此博客条目的评论中提供了此类覆盖的可​​能实现之一

快速提示(Flex 4):再见模板 - 你好mxmlContent

http://www.websector.de/blog/2009/10/02/quick-tip-flex-4-goodbye-templates-hello-mxmlcontent/