Расширение пользовательских компонентов 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/