2010-01-24 4 views
1

J'ai un xml avec la structure suivante:AS3 xml de lecture, la création d'objets et de les stocker dans un tableau

<NODES>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
<NODE>
<NAME> </NAME>
<IMG> </IMG>
</NODE>
</NODES>

Et im obtenir dans le flash comme si:

 var loader:URLLoader = new URLLoader(); 
     loader.addEventListener(Event.COMPLETE, loadNodes); 
     loader.load(new URLRequest("../resources/xml/nodes.xml")); 
     function loadNodes(e:Event):void 
     { 
      var NodesXml:XML = new XML(e.target.data); 
      trace(NodesXml); 
      //path: resources\xml\nodes.xml 
      } 

I vouloir obtenir chacun des nœuds dans "quelque chose", et c'est ce dont j'avais besoin d'aide. Je veux obtenir chaque « node » sur la scène, alors je dois stocker toutes les propriétés telles que le nom et URL de l'image quelque part. Est-ce fait avec des objets?

Si oui ce que je dois boucler le xml en quelque sorte et pour chaque NODE créer un objet avec les « propriétés »? Et devrais-je les mettre dans un tableau?

Je regardais:

XmlNodeList NODEList = doc.GetElementsByTagName("NODE"); 

foreach (XmlNode NODE in NODEList) 
{ 
//Create an object and store the values 

Répondre

1

vous pouvez simplement utiliser un XMLLIST et itérer sur cette

var pl:XMLList = NodesXml.node; 

cela va créer un XMLList pour chaque élément « noeud » dans votre xml qui peut être accédé via un index comme un tableau. Vous pouvez ensuite en boucle à travers les éléments du XMLList:

for (var p:int=0;p<pl.length();p++){ 

    var nodeimage = pl.img[p]; 

    } 

pour les objets sur la scène que vous pourriez mettre en œuvre une classe qui étend sprite:

public class CustomSprite extends Sprite { 


     public var somevalue:int; 

    } 

vous pouvez ajouter votre CustomSprite à la scène et ont propriétés que vous souhaitez remplir à partir de votre fichier XML tout en faisant défiler la liste des nœuds.

si vous ne savez pas comment créer des classes personnalisées alors voici un tutoriel:

http://www.flashandmath.com/bridge/fractions/example1.html

+0

Merci, pourrais-je vous demander d'écrire un échantillon? Quelque chose de simplifié, j'ai du mal à imaginer la structure dans ma tête. Je ne comprends pas comment je pourrais stocker les valeurs ou les objets individuellement afin que je puisse y accéder plus tard avec toutes les propriétés. – Marvin

+0

Je me inquiéterais un peu sur l'utilisation de « noeud » et « name » dans le fichier XML que même si elles travaillent, ils seront mis en évidence comme des mots réservés en flash – PeanutPower

+0

Ill gardent les noms à l'esprit. Aussi pourriez-vous vérifier le code que j'ai mis dans mon message original? Je n'arrive pas à comprendre votre exemple. – Marvin

Questions connexes