Расширение пользовательских компонентов MXML через MXML

Что я хотел бы сделать: создайте компонент 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>

а затем распространите его на отдельный компонент 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>

и получить компонент с 2 кнопками.

Я видел различные потоки о том, как это невозможно (1) или обходных методах для этого (2, 3) и задавались вопросом, изменилось ли что-то с появлением Flex 4 или если мы все еще придерживаемся этих обходных путей, последний ответ в потоке 3, похоже, намекает на то, что Flex 4 все это фиксирует?

Ответы

Ответ 1

В Flex 4 вам придется переопределить свой набор свойств "mxmlContent", чтобы сохранить ваши уже определенные дочерние элементы в родительском классе

Одна из возможных реализаций такого переопределения представлена ​​в комментарии к этой записи в блоге

Быстрый отзыв (Flex 4): шаблоны Goodbye - привет mxmlContent

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