2010-03-16 5 views
0

Je suis capable de charger mon fichier XML dans les résultats de flash et de suivi. Vous souhaitez remplir la zone de liste avec des informations provenant du fichier XML.Flash AS3 chargement XML dans la liste

Structure du fichier xml:

<eBorders> 
    <item> 
     <thumb>borderTh/blank_th.jpg</thumb> 
     <file>border/blank.jpg</file>  
    </item> 
    <item> 
     <thumb>borderTh/border1_th.jpg</thumb> 
     <file>border/border1.jpg</file>  
    </item> 
</eBorders> 

code AS3:

var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("xml/borders.xml")); 

var dp:DataProvider = new DataProvider("borders.xml"); 

border_lb.dataProvider = dp; 
border_lb.iconField = "iconSource"; 
border_lb.rowHeight = 45; 

function processXML(e:Event):void { 
myXML = new XML(e.target.data); 
for(var i:int=0;i<myXML.*.length(); i++){ 
    dp.addItem({iconSource:myXML.item.thumb.[i]}); 
    } 
} 
code

est produit erreur que je ne trouve pas.

Merci d'avance pour toute aide que vous pourriez offrir.

Annie

Répondre

1

Je pense qu'il ya des éléments manquants de votre explanatiion qui aiderait à clarifier votre problème.

Par exemple, la fonction processXML est déclenchée par un événement (e: Event) mais cet événement n'est pas affiché.

En outre, on ne sait pas exactement ce qu'est border_lb (c'est-à-dire un objet, un dictionnaire?).

Cela étant dit, je pense que la ligne pour changer est:

iconSource:. MyXML.item.thumb [i]

à

iconSource: myXML.item.thumb.text() [i]

OU

iconSource: myXML.item.thumb [i] // moins la période

Voir l'exemple:

import fl.data.DataProvider; 


var myXML:XML = <eBorders> 
    <item> 
     <thumb>borderTh/blank_th.jpg</thumb> 
     <file>border/blank.jpg</file>  
    </item> 
    <item> 
     <thumb>borderTh/border1_th.jpg</thumb> 
     <file>border/border1.jpg</file>  
    </item> 
</eBorders>; 

var dp:DataProvider = new DataProvider(); 
var border_lb:Dictionary = new Dictionary(); 
border_lb.dataProvider = dp; 
border_lb.iconField = "iconSource"; 
border_lb.rowHeight = 45; 

function processXML():void { 

for(var i:int=0;i < myXML.*.length(); i++){ 

    trace(myXML.item.thumb.text()[i]); 
    dp.addItem({iconSource:myXML.item.thumb.text()[i]}); 
    } 
} 

processXML(); 
+0

border_lb est listbox. processXML déclenché par le chargement complet du document xml - code changé: var dp: DataProvider = new DataProvider(); border_lb.dataProvider = dp; border_lb.iconField = "iconSource"; border_lb.rowHeight = 45; var myXML: XML; var myLoader6: URLLoader = new URLLoader(); MyLoader6.load (new URLRequest ("xml/borders.xml")); myLoader6.addEventListener (Event.COMPLETE, processXML); function processXML (e: Evénement): void { myXML = nouveau fichier XML (e.target.data); pour (var i: int = 0; i Anne

+0

Vous souhaitez ajouter des icônes ou des miniatures à une zone de liste nommée border_lb. Les icônes sont stockées dans le dossier borderTh et le nom de fichier est border1_th.jpg. Dans le fichier XML qui est l'élément enfant . L'image réelle représentée par l'icône se trouve dans le dossier Bordure et le nom du fichier est border1.jpg. Dans le fichier XML qui est l'élément enfant . Maintenant, j'ai besoin de remplir le border_lb avec l'icône et les données. Merci pour votre temps. Annie – Anne