2011-02-03 15 views
14

Cosa mi piacerebbe fare: creare un componente MXML con alcuni bambini, quindi estenderlo tramite MXML per creare un nuovo componente con più bambini, senza perdere il set originale. In altre paroleEstensione di componenti MXML personalizzati tramite MXML

creare 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> 

e poi estenderla a una mc.mxml componente separato

<?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> 

e ottenere un componente con 2 tasti.

Ho visto diverse discussioni su come questo è o non è possibile (1) o su soluzioni alternative per ottenere questo risultato (2, 3) e si sono chiesti se qualcosa è cambiato con l'avvento di Flex 4 o se siamo ancora bloccato con questi metodi alternativi l'ultima risposta nel thread 3 sembra suggerire a Flex 4 che risolve tutto?

+0

perché non utilizzare un mix di MXML e di azione Script? Crea il tuo secondo pulsante nel metodo createChildren() del secondo componente? – JeffryHouser

+3

sicuro. Sono solo sorpreso che il puro mxml non funzioni ancora. Onestamente, è così bello configurare i componenti tramite mxml, sembra così strano che non sia possibile. –

risposta

11

In Flex 4, si dovrà sostituire il vostro "mxmlContent" setter di proprietà al fine di preservare i vostri figli già definite in una classe genitore

Una delle possibili implementazioni di tale esclusione è presentato nel commento per questo blog entry

punta rapida (Flex 4): Arrivederci modelli - ciao mxmlContent

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

+0

Inoltre, in Flex 4 è molto più elegante usare Skin con più aree di contenuto definite per svolgere l'attività di questo tipo: * Costruire Flex 4 Contenitori con più aree di contenuto * http://saturnboy.com/2010/07/multiple -content-area-containers/ – JabbyPanda

+0

Ho provato questo (compresa l'impostazione del mxmlContent, ma non funziona per me. Qualsiasi indizio sul perché questo sarebbe? – Dan