2011-02-03 15 views
14

Lo que me gustaría hacer: crear un componente MXML con algunos elementos secundarios, luego extenderlo a través de MXML para crear un nuevo componente con más elementos secundarios, sin perder el conjunto original. En otras palabrasAmpliación de componentes personalizados MXML a través de MXML

crear un componente 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> 

y luego se extienden a un componente separado 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> 

y obtener un componente con 2 botones.

he visto varios hilos sobre la forma o bien no es posible (1) o en soluciones para lograr esto (2, 3) y se han preguntado si algo ha cambiado con la llegada de Flex 4 o si estamos Todavía estancado con estas soluciones, la última respuesta en el hilo 3 parece insinuar que Flex 4 lo solucionó todo?

+0

por qué no utilizar una mezcla de MXML y la acción ¿Guión? Cree su segundo botón en el método createChildren() del segundo componente? – JeffryHouser

+3

seguro. Me sorprende que el mxml puro todavía no funcione. Honestamente, es tan agradable configurar componentes a través de mxml, parece tan extraño que esto no es posible. –

Respuesta

11

En Flex 4, tendrá que anular su "mxmlContent" colocador propiedad con el fin de preservar sus hijos ya definidos en una clase padre

Uno de posibles implementaciones de una anulación de tal se presenta en el comentario para este entrada de blog

consejo rápido (Flex 4): plantillas de Goodbye - hola mxmlContent

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

+0

Además, en Flex 4 es mucho más elegante usar Skin con múltiples áreas de contenido definidas para realizar la tarea de este tipo: * Creación de contenedores Flex 4 con múltiples áreas de contenido * http://saturnboy.com/2010/07/multiple -content-area-containers/ – JabbyPanda

+0

Intenté esto (incluida la configuración de mxmlContent, pero no funciona para mí. ¿Alguna pista de por qué sería esto? – Dan

Cuestiones relacionadas