Flex: etiquetas anidadas en MXML == método de ejecución & # 8230; ¿Cómo configurar esto?
-
07-07-2019 - |
Pregunta
Tengo una clase llamada JDChart, y una clase llamada JDLine. Dentro de JDChart hay un método llamado addLine () que espera 1 parámetro de tipo JDLine. Todo esto esta bien. pero quiero poder poner esto en XML así:
<JDChart>
<JDLine/>
<JDLine/>
<JDLine/>
</JDChart>
Y para cada JDLine anidada en un JDChart en el MXML, quiero que se llame al método addLine () en el JDChart con la respectiva JDLine aprobada.
¿Lo que quiero hacer hace desde entonces? No estoy seguro de cómo configurar esto? ¿Asumo que tengo que usar metaetiquetas en la clase JDChart en algún lugar para decirle al compilador que haga esto? ¿Alguien sabe?
¡Gracias!
Solución
Creo que cuando agregas cosas en MXML así, simplemente las construirá y luego llamará a addChild ().
Podría hacer que JDChart anule addChild () y verifique el tipo de lo que se agrega. Si es una JDLine, puede pasarla a su método addLine () antes de pasarla a super.addChild ().
Otros consejos
Si los objetos JDLine van a ser pareados solo por objetos JDChart, use esto.
En el controlador de eventos agregado
de la clase JDLine, agregue el siguiente código:
public function onAdded(e:Event):void
{
var chart:JDChart = this.parent as JDChart;
if(!chart)
throw new Error("Parent is not JDChart");
chart.addLine(this);
}