Buona sera, devo caricare dei dati da un file xml a seconda dello "stato" in cui mi trovo in flash builder 4.6.
il mio file xml si presenta così:
<firstAppElement id="3" titolo="Esempio 3" img="fotoProva3.jpg">
</firstAppElement>>
<firstAppElement id="4" titolo="Esempio 4" img="fotoProva4.jpg">
</firstAppElement>
<firstAppElement id="5" titolo="Esempio 5" img="fotoProva5.jpg">
</firstAppElement>
<secondAppElement id="6" titolo="Esempio 1" img="fotoProva1.jpg">
</secondAppElement>
<secondAppElement id="7" titolo="Esempio 2" img="fotoProva2.jpg">
</secondAppElement>
etc...
quello generale invece si presenta così
public function onCreationComplete():void {
path.url="data/firstApp.xml";
loader.load(path);
loader.addEventListener(Event.COMPLETE, showData);
removeElement(lista);
}
protected function showData(event:Event):void {
var datiXML:XML;
var ar:Array=new Array();
datiXML=XML(loader.data);
for each(var nodo:XML in datiXML.firstAppElement) {
ar.push({titolo:nodo.@titolo, img:nodo.@img, id:nodo.@id});
}
lista.dataProvider=ar;
}
In questo esempio io dico che la lista, che poi è una lista, deve caricarmi tutti i valori che rientrano in firstAppElement. Ora io vorrei che a seconda dello "stato" in cui mi trovo mi venissero caricati quelli di first, di second, o di thirdAppElement.
Io ho provato a fare una cosa di questo tipo ma non mi veniva fuori nulla
switch(nodo) {
case currentState = "firstApp":
for each(var nodo:XML in datiXML.firstAppElement) {
ar.push({titolo:nodo.@titolo, img:nodo.@img, id:nodo.@id});
}
break;
case currentState = "secondElement":
for each(var nodo:XML in datiXML.secondAppElement) {
ar.push({titolo:nodo.@titolo, img:nodo.@img, id:nodo.@id});
}
break;
} ecc
O meglio non è che non mi viene fuori niente. Mi viene fuori subito ad esempio lo stato firstApp ma io all'init() ho specificato che si parte dallo "stato uno" e non solo, non mi legge niente dentro la casella di lista.
Qual'è l'errore? Non devo fare lo switch su var:XML nodo?
Grazie...